Documentation/Platforms/m68k

From QEMU

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.

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 .

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