Re: Running m68k on qemu with external initramfs?

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

 



Hi!

On Apr 12, 2020, at 5:31 AM, Rob Landley <rob@xxxxxxxxxxx> wrote:

On 4/11/20 1:12 AM, Finn Thain wrote:
On Fri, 10 Apr 2020, Rob Landley wrote:

I'm adding m68k support to toybox's "make root" target and I have a 
kernel and a rootfs.cpio.gz, but qemu's -initrd option doesn't put the 
rootfs image somewhere the m68k kernel can find it.

Is this a "modify qemu" problem or a "modify kernel" problem?

It sounds more like a "modify kernel .config" problem. But it could be a 
regression; what versions of qemu and kernel did you try?

"Works for me", got it. I'll keep digging.

QEMU is the one Laurent Vivier maintains that's been out of tree for something
like 12 years now, the default branch claims to be "q800-dev" and the last
commit was in december. It still runs my old aboriginal linux system image from
2014 (boots to a shell prompt).

I think most of these things should be merged upstream these days but Laurent probably needs to correct me on what’s missing.

Kernel is vanilla v5.6 with the arch configured with:

QEMU="m68k -M q800" KARCH=m68k KARGS=ttyS0 VMLINUX=vmlinux
KCONF=MMU,M68040,M68KFPU_EMU,MAC,SCSI_MAC_ESP,MACINTOSH_DRIVERS,ADB,ADB_MACII,NET_CORE,MACSONIC,SERIAL_PMACZILOG,SERIAL_PMACZILOG_TTYS,SERIAL_PMACZILOG_CONSOLE

Which is top of:

BASE=EARLY_PRINTK,BINFMT_ELF,BINFMT_SCRIPT,NO_HZ,HIGH_RES_TIMERS,BLK_DEV,BLK_DEV_INITRD,RD_GZIP,BLK_DEV_LOOP,EXT4_FS,EXT4_USE_FOR_EXT2,VFAT_FS,FAT_DEFAULT_UTF8,MISC_FILESYSTEMS,SQUASHFS,SQUASHFS_XATTR,SQUASHFS_ZLIB,DEVTMPFS,DEVTMPFS_MOUNT,TMPFS,TMPFS_POSIX_ACL,NET,PACKET,UNIX,INET,IPV6,NETDEVICES,NET_CORE,NETCONSOLE,ETHERNET

As interpreted by:

 sed -E '/^$/d;s/([^,]*)($|,)/CONFIG_\1=y\n/g' <<< "$BASE,$KCONF > mini.conf
 make ARCH=$KARCH allnoconfig KCONFIG_ALLCONFIG=mini.conf
 make ARCH=$KARCH CROSS_COMPILE="$CROSS_COMPILE" -j $(nproc)

Plus of course:

 echo "qemu-system-$QEMU" '"$@"' -nographic -no-reboot -m 256 \
      "-kernel $(basename "$VMLINUX") -initrd root.cpio.gz" \
      "-append \"quiet panic=1 HOST=$TARGET console=$KARGS \$KARGS\"" \
      ${DTB:+-dtb "$(basename "$DTB")"} > "$OUTPUT/qemu-$TARGET.sh"

I.E. the usual. (I'm trying to add m68k support to
https://github.com/landley/toybox/blob/master/scripts/mkroot.sh which already
boots armv5l, armv7l, aarch64, i486, i686, x86_64, mips, mipsel, powerpc, s390x,
and sh4 to a shell prompt under qemu, although you still have to
KARGS=rdinit=/bin/sh because I haven't QUITE got my new shell making it through
the end of the init script. Should do in another couple days.)

Very cool. Thanks a lot for doing this!

Adrian



[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux