Documentation/Platforms/m68k

From QEMU
Revision as of 11:16, 12 May 2020 by Laurent (talk | contribs) (Update installation details)

m68k emulator

The following machines are emulated through qemu-system-m68k:

Machine model selectorProvides
-M an5206 Arnewsh 5206
-M mcf5208evb MCF5208EVB (default)
-M next-cube NeXT Cube
-M none empty machine
-M q800 Macintosh Quadra 800

You can select the desired machine with the -M command line option.

Build directions

 ./configure --target-list=m68k-softmmu && make


Macintoch Quadra 800

Running Linux

Download a m68k distribution, such as debian-10.0-m68k-NETINST-1.iso. Create a hard disk image to install onto.

Debian latest installer CDs are available at: https://cdimage.debian.org/cdimage/ports/

The kernel and the initrd needed to boot can be found in https://cdimage.debian.org/cdimage/ports/debian-installer/m68k/

If not, you can extract the installation kernel and initrd from the installation CD:

 guestfish --add debian-10.0-m68k-NETINST-1.iso --ro --mount /dev/sda:/
 <fs> copy-out /install/cdrom/initrd.gz .
 <fs> copy-out /install/kernels/vmlinux-4.16.0-1-m68k .

If you don't want to install guestfish you can use the loop kernel module (but you need to be root):

 sudo modprobe loop
 sudo losetup -f debian-10.0-m68k-NETINST-1.iso
 sudo mount /dev/loop0 /mnt
 cp /mnt/install/cdrom/initrd.gz .
 cp /mnt/install/kernels/vmlinux-4.16.0-1-m68k .
 sudo umount /mnt
 sudo losetup -d /dev/loop0
 

Boot from the CD image:

 ./qemu-system-m68k -boot d \
 -M q800 -serial none -serial mon:stdio -m 1000M \
 -net nic,model=dp83932 -net user \
 -append "console=ttyS0 vga=off" \
 -kernel vmlinux-4.16.0-1-m68k \
 -initrd initrd.gz \
 -drive file=m68k-deb10.qcow2,format=qcow2 \
 -drive file=debian-10.0-m68k-NETINST-1.iso,format=raw,media=cdrom \
 -nographic

Use the following for the source for network-based installation:

 http://ftp.ports.debian.org
 /debian-ports/

After installation, extract the kernel and initrd from the hard disk image;

 guestfish --add m68k-deb10.qcow2 --mount /dev/sda2:/
 <fs>copy-out /boot/vmlinux-4.16.0-1-m68k .
 <fs>copy-out /boot/initrd.img-4.16.0-1-m68k .

To boot from the HD image, you can use:

 ./qemu-system-m68k -boot c \
 -M q800 -serial none -serial mon:stdio -m 1000M \
 -net nic,model=dp83932 -net user \
 -append "root=/dev/sda2 rw console=ttyS0 console=tty \
 -kernel vmlinux-4.16.0-1-m68k \
 -initrd initrd.img-4.16.0-1-m68k \
 -drive file=m68k-deb10.qcow2,format=qcow2 \
 -nographic

Running Mac OS

Note: Mac OS currently will not fully boot on qemu-system-m68k

To boot Mac OS, you need a Macintosh Quadra 800 rom. This rom is found when placed in the pc-bios folder and named MacROM.bin, or can be selected by using the -bios command line option.

 ./qemu-system-m68k -boot d -L pc-bios \
 -M q800 -m 64 \
 -serial stdio \
 -bios Quadra800.rom \
 -cdrom 7.6.iso

The parameter ram (pram) can be saved and loaded from a file:

 -drive file=pram.img,format=raw,if=mtd

Where pram.img is a file of exactly 256 bytes long. You can create such a file with e.g., dd if=/dev/zero of=pram.img bs=256 count=1

How to help

Review the patches that are sent to the QEMU mailing list.

Pictures

Linux Desktop Startup of Linux
Screensaver Web Browser

Links

Maintainer's personal wiki page
68k assembly language tutorial
Quadra 800 specs
Inside Macintosh volumes 1-3
Video of qemu-m68k booting Linux
Video of 24bit GNOME on qemu-system-m68k

Maintainer contact info

Laurent Vivier <laurent@vivier.eu>