[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



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


Reply to: