diff mbox series

[v5,2/2] board/qemu/m68k-virt: Add virt-m68k linux config

Message ID 20220904095237.1401885-3-laurent@vivier.eu
State Superseded
Headers show
Series package: add petitboot to use with qemu-system-m68k | expand

Commit Message

Laurent Vivier Sept. 4, 2022, 9:52 a.m. UTC
Build a 5.19 (first version with the m68k virt machine) kernel
for "qemu-system-m68k -M virt" machine.

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 DEVELOPERS                                 |  2 +
 board/qemu/m68k-virt/config.linux          | 89 ++++++++++++++++++++++
 board/qemu/m68k-virt/readme.txt            |  5 ++
 configs/qemu_m68k_virt_petitboot_defconfig | 25 ++++++
 4 files changed, 121 insertions(+)
 create mode 100644 board/qemu/m68k-virt/config.linux
 create mode 100644 board/qemu/m68k-virt/readme.txt
 create mode 100644 configs/qemu_m68k_virt_petitboot_defconfig

Comments

Cédric Le Goater Nov. 17, 2022, 6 p.m. UTC | #1
Hello Laurent,

On 9/4/22 11:52, Laurent Vivier wrote:
> Build a 5.19 (first version with the m68k virt machine) kernel
> for "qemu-system-m68k -M virt" machine.
> 
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> ---
>   DEVELOPERS                                 |  2 +
>   board/qemu/m68k-virt/config.linux          | 89 ++++++++++++++++++++++

Why not use the linux virt_defconfig ?

>   board/qemu/m68k-virt/readme.txt            |  5 ++
>   configs/qemu_m68k_virt_petitboot_defconfig | 25 ++++++
>   4 files changed, 121 insertions(+)
>   create mode 100644 board/qemu/m68k-virt/config.linux
>   create mode 100644 board/qemu/m68k-virt/readme.txt
>   create mode 100644 configs/qemu_m68k_virt_petitboot_defconfig
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 45fa4c7e0686..fb500c706543 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -1744,6 +1744,8 @@ F:	package/open-lldp/
>   
>   N:	Laurent Vivier <laurent@vivier.eu>
>   F:	package/petitboot/
> +F:	board/qemu/m68k-virt/
> +F:	configs/qemu_m68k_virt_petitboot_defconfig
>   
>   N:	Lee Jones <lee.jones@linaro.org>
>   F:	boot/afboot-stm32/
> diff --git a/board/qemu/m68k-virt/config.linux b/board/qemu/m68k-virt/config.linux
> new file mode 100644
> index 000000000000..88edb9b1eb3f
> --- /dev/null
> +++ b/board/qemu/m68k-virt/config.linux
> @@ -0,0 +1,89 @@
> +CONFIG_LOCALVERSION="-virt"
> +CONFIG_SYSVIPC=y
> +CONFIG_CGROUPS=y
> +CONFIG_BLK_CGROUP=y
> +CONFIG_CGROUP_SCHED=y
> +CONFIG_CGROUP_PIDS=y
> +CONFIG_CGROUP_RDMA=y
> +CONFIG_CGROUP_FREEZER=y
> +CONFIG_CGROUP_DEVICE=y
> +CONFIG_CGROUP_CPUACCT=y
> +CONFIG_BLK_DEV_INITRD=y
> +CONFIG_KEXEC=y
> +CONFIG_BOOTINFO_PROC=y
> +CONFIG_VIRT=y
> +CONFIG_PROC_HARDWARE=y
> +CONFIG_PARTITION_ADVANCED=y
> +CONFIG_AMIGA_PARTITION=y
> +CONFIG_ATARI_PARTITION=y
> +CONFIG_MAC_PARTITION=y
> +CONFIG_BSD_DISKLABEL=y
> +CONFIG_MINIX_SUBPARTITION=y
> +CONFIG_SOLARIS_X86_PARTITION=y
> +CONFIG_UNIXWARE_DISKLABEL=y
> +CONFIG_LDM_PARTITION=y
> +CONFIG_LDM_DEBUG=y
> +CONFIG_SUN_PARTITION=y
> +CONFIG_SYSV68_PARTITION=y
> +CONFIG_NET=y
> +CONFIG_PACKET=y
> +CONFIG_UNIX=y
> +CONFIG_INET=y
> +CONFIG_IP_PNP=y
> +CONFIG_IP_PNP_DHCP=y
> +CONFIG_IP_PNP_BOOTP=y
> +CONFIG_CGROUP_NET_PRIO=y
> +CONFIG_CGROUP_NET_CLASSID=y
> +CONFIG_NET_9P=y
> +CONFIG_NET_9P_VIRTIO=y
> +CONFIG_DEVTMPFS=y
> +CONFIG_DEVTMPFS_MOUNT=y
> +CONFIG_BLK_DEV_LOOP=y
> +CONFIG_BLK_DEV_RAM=y
> +CONFIG_VIRTIO_BLK=y
> +CONFIG_SCSI=y
> +CONFIG_BLK_DEV_SR=y
> +CONFIG_SCSI_VIRTIO=y
> +CONFIG_MD=y
> +CONFIG_MD_LINEAR=y
> +CONFIG_MD_MULTIPATH=y
> +CONFIG_MD_FAULTY=y
> +CONFIG_BLK_DEV_DM=y
> +CONFIG_DM_UNSTRIPED=y
> +CONFIG_DM_CRYPT=y
> +CONFIG_DM_SNAPSHOT=y
> +CONFIG_DM_THIN_PROVISIONING=y
> +CONFIG_DM_CACHE=y
> +CONFIG_DM_WRITECACHE=y
> +CONFIG_DM_EBS=y
> +CONFIG_DM_ERA=y
> +CONFIG_DM_CLONE=y
> +CONFIG_DM_MIRROR=y
> +CONFIG_DM_RAID=y
> +CONFIG_DM_ZERO=y
> +CONFIG_NETDEVICES=y
> +CONFIG_VIRTIO_NET=y
> +CONFIG_INPUT_MOUSEDEV=y
> +CONFIG_INPUT_EVDEV=y
> +CONFIG_VIRTIO_CONSOLE=y
> +CONFIG_HW_RANDOM_VIRTIO=y
> +CONFIG_DRM=y
> +CONFIG_DRM_VIRTIO_GPU=y
> +CONFIG_FB=y
> +CONFIG_SOUND=y
> +CONFIG_SND=y
> +CONFIG_SND_VIRTIO=y
> +CONFIG_VIRT_DRIVERS=y
> +CONFIG_VIRTIO_INPUT=y
> +CONFIG_EXT4_FS=y
> +CONFIG_AUTOFS_FS=y
> +CONFIG_ISO9660_FS=y
> +CONFIG_JOLIET=y
> +CONFIG_ZISOFS=y
> +CONFIG_UDF_FS=y
> +CONFIG_TMPFS=y
> +CONFIG_TMPFS_POSIX_ACL=y
> +CONFIG_9P_FS=y
> +CONFIG_9P_FS_POSIX_ACL=y
> +CONFIG_9P_FS_SECURITY=y
> +CONFIG_EARLY_PRINTK=y
> diff --git a/board/qemu/m68k-virt/readme.txt b/board/qemu/m68k-virt/readme.txt
> new file mode 100644
> index 000000000000..30803d403a4c
> --- /dev/null
> +++ b/board/qemu/m68k-virt/readme.txt
> @@ -0,0 +1,5 @@
> +Run the emulation with:
> +
> + qemu-system-m68k -M virt -kernel output/images/vmlinux -initrd output/images/rootfs.cpio.xz -append "console=ttyGF0" --nographic # /qemu_m68k_virt_petitboot_defconfig
> +
> +The petiboot menu will appear in the terminal where QEMU has been started.
> diff --git a/configs/qemu_m68k_virt_petitboot_defconfig b/configs/qemu_m68k_virt_petitboot_defconfig
> new file mode 100644
> index 000000000000..4f289fb7a667
> --- /dev/null
> +++ b/configs/qemu_m68k_virt_petitboot_defconfig
> @@ -0,0 +1,25 @@
> +BR2_m68k=y
> +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
> +BR2_CCACHE=y
> +BR2_RELRO_NONE=y
> +BR2_TARGET_GENERIC_ISSUE="Welcome to Petitboot"
> +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
> +BR2_ROOTFS_MERGED_USR=y
> +BR2_TARGET_GENERIC_GETTY_PORT="ttyGF0"
> +BR2_ROOTFS_OVERLAY="package/petitboot/fs-overlay"

You could add :

BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"

> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_VERSION=y
> +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19"
> +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
> +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/m68k-virt/config.linux"
> +BR2_LINUX_KERNEL_XZ=y
> +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
> +BR2_PACKAGE_KEXEC=y
> +BR2_PACKAGE_KEXEC_ZLIB=y
> +BR2_PACKAGE_ETHTOOL=y
> +BR2_PACKAGE_NET_TOOLS=y
> +BR2_PACKAGE_NETCAT=y
> +BR2_PACKAGE_RSYNC=y
> +BR2_PACKAGE_PETITBOOT=y
> +BR2_TARGET_ROOTFS_CPIO=y
> +BR2_TARGET_ROOTFS_CPIO_XZ=y

and  :

# host-qemu for gitlab testing
BR2_PACKAGE_HOST_QEMU=y
BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y


Thanks,

C.
Laurent Vivier Nov. 17, 2022, 7:19 p.m. UTC | #2
Le 17/11/2022 à 19:00, Cédric Le Goater a écrit :
> Hello Laurent,
> 
> On 9/4/22 11:52, Laurent Vivier wrote:
>> Build a 5.19 (first version with the m68k virt machine) kernel
>> for "qemu-system-m68k -M virt" machine.
>>
>> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
>> ---
>>   DEVELOPERS                                 |  2 +
>>   board/qemu/m68k-virt/config.linux          | 89 ++++++++++++++++++++++
> 
> Why not use the linux virt_defconfig ?

Because it doesn't have all the needed options to kexec a kernel and to use RAID/LVM/Device Mapper

Thanks,
Laurent
Thomas Petazzoni Nov. 20, 2022, 9:50 p.m. UTC | #3
On Thu, 17 Nov 2022 20:19:33 +0100
Laurent Vivier <laurent@vivier.eu> wrote:

> Because it doesn't have all the needed options to kexec a kernel and to use RAID/LVM/Device Mapper

One option is to add a Linux kernel configuration fragment to add just
the few additional options that you need.

Best regards,

Thomas
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 45fa4c7e0686..fb500c706543 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1744,6 +1744,8 @@  F:	package/open-lldp/
 
 N:	Laurent Vivier <laurent@vivier.eu>
 F:	package/petitboot/
+F:	board/qemu/m68k-virt/
+F:	configs/qemu_m68k_virt_petitboot_defconfig
 
 N:	Lee Jones <lee.jones@linaro.org>
 F:	boot/afboot-stm32/
diff --git a/board/qemu/m68k-virt/config.linux b/board/qemu/m68k-virt/config.linux
new file mode 100644
index 000000000000..88edb9b1eb3f
--- /dev/null
+++ b/board/qemu/m68k-virt/config.linux
@@ -0,0 +1,89 @@ 
+CONFIG_LOCALVERSION="-virt"
+CONFIG_SYSVIPC=y
+CONFIG_CGROUPS=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_RDMA=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_KEXEC=y
+CONFIG_BOOTINFO_PROC=y
+CONFIG_VIRT=y
+CONFIG_PROC_HARDWARE=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ATARI_PARTITION=y
+CONFIG_MAC_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+CONFIG_LDM_DEBUG=y
+CONFIG_SUN_PARTITION=y
+CONFIG_SYSV68_PARTITION=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_SCSI_VIRTIO=y
+CONFIG_MD=y
+CONFIG_MD_LINEAR=y
+CONFIG_MD_MULTIPATH=y
+CONFIG_MD_FAULTY=y
+CONFIG_BLK_DEV_DM=y
+CONFIG_DM_UNSTRIPED=y
+CONFIG_DM_CRYPT=y
+CONFIG_DM_SNAPSHOT=y
+CONFIG_DM_THIN_PROVISIONING=y
+CONFIG_DM_CACHE=y
+CONFIG_DM_WRITECACHE=y
+CONFIG_DM_EBS=y
+CONFIG_DM_ERA=y
+CONFIG_DM_CLONE=y
+CONFIG_DM_MIRROR=y
+CONFIG_DM_RAID=y
+CONFIG_DM_ZERO=y
+CONFIG_NETDEVICES=y
+CONFIG_VIRTIO_NET=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_EVDEV=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_DRM=y
+CONFIG_DRM_VIRTIO_GPU=y
+CONFIG_FB=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_VIRTIO=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_VIRTIO_INPUT=y
+CONFIG_EXT4_FS=y
+CONFIG_AUTOFS_FS=y
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_9P_FS=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+CONFIG_EARLY_PRINTK=y
diff --git a/board/qemu/m68k-virt/readme.txt b/board/qemu/m68k-virt/readme.txt
new file mode 100644
index 000000000000..30803d403a4c
--- /dev/null
+++ b/board/qemu/m68k-virt/readme.txt
@@ -0,0 +1,5 @@ 
+Run the emulation with:
+
+ qemu-system-m68k -M virt -kernel output/images/vmlinux -initrd output/images/rootfs.cpio.xz -append "console=ttyGF0" --nographic # /qemu_m68k_virt_petitboot_defconfig
+
+The petiboot menu will appear in the terminal where QEMU has been started.
diff --git a/configs/qemu_m68k_virt_petitboot_defconfig b/configs/qemu_m68k_virt_petitboot_defconfig
new file mode 100644
index 000000000000..4f289fb7a667
--- /dev/null
+++ b/configs/qemu_m68k_virt_petitboot_defconfig
@@ -0,0 +1,25 @@ 
+BR2_m68k=y
+BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
+BR2_CCACHE=y
+BR2_RELRO_NONE=y
+BR2_TARGET_GENERIC_ISSUE="Welcome to Petitboot"
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
+BR2_ROOTFS_MERGED_USR=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyGF0"
+BR2_ROOTFS_OVERLAY="package/petitboot/fs-overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19"
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/m68k-virt/config.linux"
+BR2_LINUX_KERNEL_XZ=y
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+BR2_PACKAGE_KEXEC=y
+BR2_PACKAGE_KEXEC_ZLIB=y
+BR2_PACKAGE_ETHTOOL=y
+BR2_PACKAGE_NET_TOOLS=y
+BR2_PACKAGE_NETCAT=y
+BR2_PACKAGE_RSYNC=y
+BR2_PACKAGE_PETITBOOT=y
+BR2_TARGET_ROOTFS_CPIO=y
+BR2_TARGET_ROOTFS_CPIO_XZ=y