Documentation/Platforms/m68k
m68k emulator
The following machines are emulated through qemu-system-m68k:
Machine model selector | Provides |
-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 .
If you don't want to install guestfish, you can use the NBD kernel module (but you need to be root):
sudo rmmod nbd sudo modprobe nbd max_part=7 sudo qemu-nbd -t m68k-deb10.qcow2 -c /dev/nbd0 sudo mount /dev/nbd0p2 /mnt cp /mnt/boot/vmlinux-4.16.0-1-m68k . cp /mnt/boot/initrd.img-4.16.0-1-m68k . sudo umount /mnt sudo qemu-nbd -d /dev/nbd0
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
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>