Re: [PATCH] [m68k/virt]: Add flavour for QEMU M68K Virtual Machine

John Paul Adrian Glaubitz <[email protected]>
Newsgroups gmane.linux.debian.ports.68k
Message-ID <74472d0b460b540c79db0e8ea1546b253c7c27ae.camel@physik.fu-berlin.de>
Hi Laurent!

Thanks for the patch!

On Mon, 2023-06-12 at 16:58 +0200, Laurent Vivier wrote:
> diff --git a/debian/config/m68k/config.virt b/debian/config/m68k/config.virt
> new file mode 100644
> index 000000000000..68fa09ec0e37
> --- /dev/null
> +++ b/debian/config/m68k/config.virt
> @@ -0,0 +1,333 @@
> +##
> +## file: arch/m68k/Kconfig
> +##
> +# CONFIG_PM is not set
> +
> +##
> +## file: arch/m68k/Kconfig.cpu
> +##
> +CONFIG_M68040=y
> +
> +##
> +## file: arch/m68k/Kconfig.debug
> +##
> +CONFIG_EARLY_PRINTK=y
> +
> +##
> +## file: arch/m68k/Kconfig.devices
> +##
> +CONFIG_HEARTBEAT=y
> +CONFIG_PROC_HARDWARE=y
> +CONFIG_SERIAL_CONSOLE=y
> +
> +##
> +## file: arch/m68k/Kconfig.machine
> +##
> +CONFIG_VIRT=y
> +
> +##
> +## file: block/Kconfig
> +##
> +# CONFIG_BLK_DEV_INTEGRITY is not set
> +
> +##
> +## file: block/partitions/Kconfig
> +##
> +CONFIG_PARTITION_ADVANCED=y
> +CONFIG_AMIGA_PARTITION=y
> +CONFIG_ATARI_PARTITION=y
> +CONFIG_MAC_PARTITION=y
> +CONFIG_MSDOS_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_KARMA_PARTITION is not set
> +CONFIG_SYSV68_PARTITION=y
> +
> +##
> +## file: crypto/Kconfig
> +##
> +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
> +
> +##
> +## file: crypto/asymmetric_keys/Kconfig
> +##
> +# CONFIG_ASYMMETRIC_KEY_TYPE is not set
> +
> +##
> +## file: drivers/accessibility/Kconfig
> +##
> +# CONFIG_ACCESSIBILITY is not set
> +
> +##
> +## file: drivers/block/Kconfig
> +##
> +CONFIG_BLK_DEV_FD=m
> +CONFIG_CDROM_PKTCDVD=m
> +CONFIG_VIRTIO_BLK=m
> +# CONFIG_BLK_DEV_RBD is not set
> +
> +##
> +## file: drivers/block/drbd/Kconfig
> +##
> +# CONFIG_BLK_DEV_DRBD is not set
> +
> +##
> +## file: drivers/char/Kconfig
> +##
> +CONFIG_PRINTER=m
> +CONFIG_VIRTIO_CONSOLE=m
> +# CONFIG_LP_CONSOLE is not set
> +# CONFIG_PPDEV is not set
> +
> +##
> +## file drivers/char/hw_random/Kconfig
> +##
> +CONFIG_HW_RANDOM_VIRTIO=m
> +
> +##
> +## file: drivers/connector/Kconfig
> +##
> +CONFIG_CONNECTOR=m
> +
> +##
> +## file: drivers/crypto/Kconfig
> +##
> +# CONFIG_CRYPTO_HW is not set
> +
> +##
> +## file: drivers/firewire/Kconfig
> +##
> +# CONFIG_FIREWIRE is not set
> +
> +##
> +## file: drivers/gpu/drm/Kconfig
> +##
> +# CONFIG_DRM is not set
> +CONFIG_DRM=m
> +CONFIG_DRM_VIRTIO_GPU=m
> +CONFIG_FB=m
> +
> +##
> +## file: drivers/input/Kconfig
> +##
> +CONFIG_INPUT_MOUSEDEV=y
> +
> +##
> +## file: drivers/input/keyboard/Kconfig
> +##
> +CONFIG_INPUT_KEYBOARD=y
> +
> +##
> +## file: drivers/input/misc/Kconfig
> +##
> +CONFIG_INPUT_MISC=y
> +CONFIG_INPUT_UINPUT=m
> +
> +##
> +## file: drivers/input/mouse/Kconfig
> +##
> +CONFIG_INPUT_MOUSE=y
> +
> +##
> +## file: drivers/input/tablet/Kconfig
> +##
> +CONFIG_INPUT_TABLET=y
> +
> +##
> +## file: drivers/rtc/Kconfig
> +##
> +CONFIG_RTC_DRV_GENERIC=y
> +
> +##
> +## file: drivers/scsi/Kconfig
> +##
> +CONFIG_SCSI=y
> +CONFIG_SCSI_VIRTIO=m
> +
> +##
> +## file: drivers/tty/Kconfig
> +##
> +CONFIG_VT=y
> +CONFIG_VT_CONSOLE=y
> +# CONFIG_SERIAL_NONSTANDARD is not set
> +# CONFIG_N_GSM is not set
> +
> +##
> +## file: drivers/video/fbdev/Kconfig
> +##
> +# CONFIG_FIRMWARE_EDID is not set
> +CONFIG_FB_FOREIGN_ENDIAN=y
> +## choice: Choice endianness support
> +CONFIG_FB_BOTH_ENDIAN=y
> +## end choice
> +# CONFIG_FB_MODE_HELPERS is not set
> +# CONFIG_FB_TILEBLITTING is not set
> +
> +##
> +## file: drivers/virtio/Kconfig
> +##
> +CONFIG_VIRTIO_INPUT=m
> +
> +##
> +## file: drivers/virt/Kconfig
> +##
> +CONFIG_VIRT_DRIVERS=m
> +
> +##
> +## file: fs/Kconfig.binfmt
> +##
> +CONFIG_BINFMT_ELF=y
> +CONFIG_BINFMT_MISC=m
> +
> +##
> +## file: fs/adfs/Kconfig
> +##
> +# CONFIG_ADFS_FS is not set
> +
> +##
> +## file: fs/afs/Kconfig
> +##
> +# CONFIG_AFS_FS is not set
> +
> +##
> +## file: fs/befs/Kconfig
> +##
> +# CONFIG_BEFS_FS is not set
> +
> +##
> +## file: fs/bfs/Kconfig
> +##
> +# CONFIG_BFS_FS is not set
> +
> +##
> +## file: fs/ceph/Kconfig
> +##
> +# CONFIG_CEPH_FS is not set
> +
> +##
> +## file: fs/dlm/Kconfig
> +##
> +# CONFIG_DLM is not set
> +
> +##
> +## file: fs/efs/Kconfig
> +##
> +# CONFIG_EFS_FS is not set
> +
> +##
> +## file: fs/f2fs/Kconfig
> +##
> +# CONFIG_F2FS_FS is not set
> +
> +##
> +## file: fs/freevxfs/Kconfig
> +##
> +# CONFIG_VXFS_FS is not set
> +
> +##
> +## file: fs/gfs2/Kconfig
> +##
> +# CONFIG_GFS2_FS is not set
> +
> +##
> +## file: fs/jfs/Kconfig
> +##
> +# CONFIG_JFS_FS is not set
> +
> +##
> +## file: fs/ocfs2/Kconfig
> +##
> +# CONFIG_OCFS2_FS is not set
> +
> +##
> +## file: fs/omfs/Kconfig
> +##
> +# CONFIG_OMFS_FS is not set
> +
> +##
> +## file: fs/qnx4/Kconfig
> +##
> +# CONFIG_QNX4FS_FS is not set
> +
> +##
> +## file: fs/reiserfs/Kconfig
> +##
> +# CONFIG_REISERFS_FS_SECURITY is not set
> +
> +##
> +## file: fs/ubifs/Kconfig
> +##
> +# CONFIG_UBIFS_FS is not set
> +
> +##
> +## file: init/Kconfig
> +##
> +CONFIG_USELIB=y
> +# CONFIG_AUDIT is not set
> +# CONFIG_IKCONFIG is not set
> +CONFIG_LOG_BUF_SHIFT=16
> +# CONFIG_SCHED_AUTOGROUP is not set
> +## choice: Compiler optimization level
> +CONFIG_CC_OPTIMIZE_FOR_SIZE=y
> +## end choice
> +CONFIG_SGETMASK_SYSCALL=y
> +CONFIG_SYSFS_SYSCALL=y
> +
> +##
> +## file: kernel/module/Kconfig
> +##
> +# CONFIG_MODULE_SIG is not set
> +
> +##
> +## file: kernel/time/Kconfig
> +##
> +## choice: Timer tick handling
> +CONFIG_HZ_PERIODIC=y
> +# CONFIG_NO_HZ_IDLE is not set
> +# CONFIG_NO_HZ_FULL is not set
> +## end choice
> +# CONFIG_NO_HZ is not set
> +# CONFIG_HIGH_RES_TIMERS is not set
> +
> +##
> +## file: lib/Kconfig.debug
> +##
> +# CONFIG_FRAME_POINTER is not set
> +# CONFIG_DEBUG_FS is not set
> +# CONFIG_SCHED_DEBUG is not set
> +
> +##
> +## file: lib/fonts/Kconfig
> +##
> +CONFIG_FONT_6x11=y
> +CONFIG_FONT_PEARL_8x8=y
> +# CONFIG_FONT_TER16x32 is not set
> +
> +##
> +## file: mm/Kconfig
> +##
> +CONFIG_COMPAT_BRK=y
> +# CONFIG_COMPACTION is not set
> +# CONFIG_MIGRATION is not set
> +# CONFIG_KSM is not set
> +
> +##
> +## file: net/9p/Kconfig
> +##
> +CONFIG_NET_9P=m
> +CONFIG_NET_9P_VIRTIO=m
> +
> +##
> +## file: net/ipv6/Kconfig
> +##
> +CONFIG_IPV6=m
> +
> +##
> +## sound/virtio/Kconfig
> +##
> +CONFIG_SND_VIRTIO=m

I think it should be enough to provide a partial configuration only
which overrides the CONFIG defines from the generic kernel.

Have a look at the sparc* kernel (referenced from config/sparc64/defines) for example:

> https://salsa.debian.org/kernel-team/linux/-/tree/master/debian/config/kernelarch-sparc

> diff --git a/debian/config/m68k/defines b/debian/config/m68k/defines
> index 2f32891751c3..078df2d8bb15 100644
> --- a/debian/config/m68k/defines
> +++ b/debian/config/m68k/defines
> @@ -2,6 +2,7 @@
>  cflags: -ffreestanding
>  flavours:
>   m68k
> + virt

This should be "m68k-virt".

>  default-flavour: m68k
>  kernel-arch: m68k
>  
> @@ -14,3 +15,6 @@ install-stem: vmlinux
>  
>  [m68k_description]
>  hardware: Motorola MC68020+ family
> +
> +[virt_description]

And this "m68k-virt_description".

Without the additional "m68k-" prefix, the resulting kernel package would be
called "linux-image-virt" which would be not unambiguous enough.

> +hardware: QEMU Virtual M68K Machine

> diff --git a/debian/installer/kernel-versions b/debian/installer/kernel-versions
> index 95dcc03035a3..69a99838bd45 100644
> --- a/debian/installer/kernel-versions
> +++ b/debian/installer/kernel-versions
> @@ -10,6 +10,7 @@ i386       -       686           -             -      -
>  i386       -       686-pae       -             -      -
>  ia64       -       itanium       -             -      -
>  m68k       -       m68k          -             y      -
> +m68k       -       virt          -             y      -

Same here, "m68k-virt".

>  mips       -       4kc-malta     -             y      -
>  mips       -       mips32r2eb    -             y      -
>  mips       -       octeon        -             y      -
> diff --git a/debian/installer/modules/m68k-virt/affs-modules b/debian/installer/modules/m68k-virt/affs-modules
> new file mode 100644
> index 000000000000..21d616a1cc94
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/affs-modules
> @@ -0,0 +1 @@
> +#include <affs-modules>
> diff --git a/debian/installer/modules/m68k-virt/btrfs-modules b/debian/installer/modules/m68k-virt/btrfs-modules
> new file mode 100644
> index 000000000000..e261e1388380
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/btrfs-modules
> @@ -0,0 +1 @@
> +#include <btrfs-modules>
> diff --git a/debian/installer/modules/m68k-virt/cdrom-core-modules b/debian/installer/modules/m68k-virt/cdrom-core-modules
> new file mode 100644
> index 000000000000..3ff69b48f4fc
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/cdrom-core-modules
> @@ -0,0 +1 @@
> +#include <cdrom-core-modules>
> diff --git a/debian/installer/modules/m68k-virt/crc-modules b/debian/installer/modules/m68k-virt/crc-modules
> new file mode 100644
> index 000000000000..7e00de705e41
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/crc-modules
> @@ -0,0 +1 @@
> +#include <crc-modules>
> diff --git a/debian/installer/modules/m68k-virt/crypto-modules b/debian/installer/modules/m68k-virt/crypto-modules
> new file mode 100644
> index 000000000000..3a1e862b4cc9
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/crypto-modules
> @@ -0,0 +1 @@
> +#include <crypto-modules>
> diff --git a/debian/installer/modules/m68k-virt/ext4-modules b/debian/installer/modules/m68k-virt/ext4-modules
> new file mode 100644
> index 000000000000..394c577ce40d
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/ext4-modules
> @@ -0,0 +1 @@
> +#include <ext4-modules>
> diff --git a/debian/installer/modules/m68k-virt/fat-modules b/debian/installer/modules/m68k-virt/fat-modules
> new file mode 100644
> index 000000000000..274584eb65fb
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/fat-modules
> @@ -0,0 +1 @@
> +#include <fat-modules>
> diff --git a/debian/installer/modules/m68k-virt/fb-modules b/debian/installer/modules/m68k-virt/fb-modules
> new file mode 100644
> index 000000000000..b896f4429edb
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/fb-modules
> @@ -0,0 +1,2 @@
> +#include <fb-modules>
> +virtio_gpu
> diff --git a/debian/installer/modules/m68k-virt/fuse-modules b/debian/installer/modules/m68k-virt/fuse-modules
> new file mode 100644
> index 000000000000..0b6ba0c8c8fe
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/fuse-modules
> @@ -0,0 +1 @@
> +#include <fuse-modules>
> diff --git a/debian/installer/modules/m68k-virt/hfs-modules b/debian/installer/modules/m68k-virt/hfs-modules
> new file mode 100644
> index 000000000000..57d12f64921c
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/hfs-modules
> @@ -0,0 +1 @@
> +#include <hfs-modules>
> diff --git a/debian/installer/modules/m68k-virt/input-modules b/debian/installer/modules/m68k-virt/input-modules
> new file mode 100644
> index 000000000000..b14c62442b0a
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/input-modules
> @@ -0,0 +1,2 @@
> +virtio_console
> +virtio_input
> diff --git a/debian/installer/modules/m68k-virt/isofs-modules b/debian/installer/modules/m68k-virt/isofs-modules
> new file mode 100644
> index 000000000000..da4fa9a3c77d
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/isofs-modules
> @@ -0,0 +1 @@
> +#include <isofs-modules>
> diff --git a/debian/installer/modules/m68k-virt/kernel-image b/debian/installer/modules/m68k-virt/kernel-image
> new file mode 100644
> index 000000000000..1d11b1921dae
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/kernel-image
> @@ -0,0 +1 @@
> +#include <kernel-image>
> diff --git a/debian/installer/modules/m68k-virt/loop-modules b/debian/installer/modules/m68k-virt/loop-modules
> new file mode 100644
> index 000000000000..c1c948fa3316
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/loop-modules
> @@ -0,0 +1 @@
> +#include <loop-modules>
> diff --git a/debian/installer/modules/m68k-virt/md-modules b/debian/installer/modules/m68k-virt/md-modules
> new file mode 100644
> index 000000000000..26115e10b800
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/md-modules
> @@ -0,0 +1 @@
> +#include <md-modules>
> diff --git a/debian/installer/modules/m68k-virt/nbd-modules b/debian/installer/modules/m68k-virt/nbd-modules
> new file mode 100644
> index 000000000000..3c9b3e5d426d
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/nbd-modules
> @@ -0,0 +1 @@
> +#include <nbd-modules>
> diff --git a/debian/installer/modules/m68k-virt/nic-modules b/debian/installer/modules/m68k-virt/nic-modules
> new file mode 100644
> index 000000000000..2512e83950dd
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/nic-modules
> @@ -0,0 +1 @@
> +#include <nic-modules>
> diff --git a/debian/installer/modules/m68k-virt/nic-shared-modules b/debian/installer/modules/m68k-virt/nic-shared-modules
> new file mode 100644
> index 000000000000..cc84b14dcd10
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/nic-shared-modules
> @@ -0,0 +1 @@
> +#include <nic-shared-modules>
> diff --git a/debian/installer/modules/m68k-virt/ppp-modules b/debian/installer/modules/m68k-virt/ppp-modules
> new file mode 100644
> index 000000000000..1f26aa1ee60e
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/ppp-modules
> @@ -0,0 +1 @@
> +#include <ppp-modules>
> diff --git a/debian/installer/modules/m68k-virt/scsi-core-modules b/debian/installer/modules/m68k-virt/scsi-core-modules
> new file mode 100644
> index 000000000000..dd65d661433d
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/scsi-core-modules
> @@ -0,0 +1 @@
> +#include <scsi-core-modules>
> diff --git a/debian/installer/modules/m68k-virt/scsi-modules b/debian/installer/modules/m68k-virt/scsi-modules
> new file mode 100644
> index 000000000000..16c5cb13e3cf
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/scsi-modules
> @@ -0,0 +1,4 @@
> +sg
> +
> +virtio_scsi
> +virtio_blk
> diff --git a/debian/installer/modules/m68k-virt/squashfs-modules b/debian/installer/modules/m68k-virt/squashfs-modules
> new file mode 100644
> index 000000000000..42d77887ad3d
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/squashfs-modules
> @@ -0,0 +1 @@
> +#include <squashfs-modules>
> diff --git a/debian/installer/modules/m68k-virt/udf-modules b/debian/installer/modules/m68k-virt/udf-modules
> new file mode 100644
> index 000000000000..b90d7ee9b52e
> --- /dev/null
> +++ b/debian/installer/modules/m68k-virt/udf-modules
> @@ -0,0 +1 @@
> +#include <udf-modules>

I think we might not need this separate folder for d-i if we use the "kernelarch" approach
that arm, mips, powerpc and sparc uses. See the "kernelarch-$ARCH" folders.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.