Qemu
Almost by accident I found a way to boot Leopard in qemu. As this great emulator (it can do things others can't) is barely mentioned in this Wiki, let's start a new page.
You may also find the lengthy descriptions for Vmware interesting.
Contents |
[edit] qemu 0.7
(Taken from Emulation Progress)
Here may not be an sample command to use (on Windows):
qemu-system-x86_64.exe -L . -m 124 -hda d:\darwinhd.img -cdrom \ d:\darwinx86-801.iso -enable-audio -localtime -boot d
And at the bootloader, you have to pass those option:
platform=X86PC
[edit] qemu 0.9
(Taken from Emulation Progress)
Using a deadmoo image(10.4.1) (qemu for windows 0.9.0), boot is successful with boot parameters
platform=X86PC "Graphics Mode"="800x600x16" -v
(other graphics modes may be used). Jas install images do not work as yet.
[edit] qemu 0.9.1
qemu boots and installs properly with something like this:
qemu-img create -f qcow2 Leopard.qcow2 10G qemu-system-x86_64 -usbdevice keyboard -usbdevice mouse -m 1024 \ -hda Leopard.qcow2 -cdrom ToH_x86_9A581_RC2.iso
First, hit F12 to tell the qemu BIOS to boot off the CD. Immediately thereafter, hit F8 in the Darwin loader. You can type '-v', but don't have to. Then continue ... and don't move the mouse too hastily.
Unfortunately, the resulting hard disk won't be recognized by qemu's BIOS - you don't even get to the F8 prompt. Besides this, it's slow. Installation takes 2 hours on a Core2Duo 2.2 GHz. Both, the '-smp 2' and the '-kernel-kqemu' options passed to qemu result in Leopard boot failures.
Qemu can also run an installation of 10.4.8 made with VMware:
qemu-img convert -f raw Tiger-flat.vmdk -O qcow2 Tiger.qcow2 qemu-system-x86_64 -usbdevice keyboard -usbdevice mouse -m 1024 \ -hda '/media/Archiv/Mac OS X/Tiger.qcow2'
[edit] qemu 0.10.0
qemu 0.10.0 can do everything 0.9.1 could do. Additionally, it fixes enough bugs to be useable. Leopard installs and runs, with all the quirks you see on real hardware, though. Leopard (and likely Tiger) requires the -legacy option at the F8 prompt or in com.apple.boot.plist.
- Graphics: "std" is fine, "cirrus" ist almost good and "vmware" doesn't get beyond the text console.
- Ethernet: Of the many available NICs, the RTL8139 appears to be the only one visible to the network control panel. Downloads are shaky, but improve a lot if you run a "ping google.com" (or some other host) at the same time.
- Audio: Not tested.
- Misc: Make sure the machine doesn't go to sleep, there's no mechanism to wake it.
qemu-system-x86_64 -usbdevice keyboard -usbdevice mouse -vga std \ -net nic,model=rtl8139 -net user -m 1024 -hda "My Disk Image.qcow2"
[edit] qemu 0.14.1
I had my host system running Debian Linux testing with Linux kernel 2.6.39.1 and qemu-kvm 0.14.1. I had latest Intel xorg video driver installed on my host for my new i5 2400. I tried 10.6.6i snow leopard by Hazard on my qemu which is very good without any lag and network/audio are both enabled.
My host system is
- Intel i5 2400 with embedded HD 2000 video
- Gigabyte H61M D2P B3
- Crucial Ballistix 8G DDR3 1333
- Hitachi 1T 7k1000c with AHCI enabled.
The qemu parameters:
- Graphics: "std" is fine, I add one more -sdl to the parameter of qemu but I don't know if there is any difference.
- Ethernet: with the default AppleRTL8139Ethernet.kext at /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns. I use the bridge mode of qemu so my OSX86 looks like one of host in my local network, which gets the DHCP from my wireless router. I think the general user mode of qemu should be workable too. The important qemu parameters for the network is -net nic,model=rtl8139 -no-kvm-irqchip. If you don't use bridge mode, you should add -net user too. The -no-kvm-irqchip is a tricky parameter too and it won't worked if no such parameter.
- Audio: use parameter "-soundhw all" in qemu-kvm the you get the noisy youtube.
My final qemu invocation command is
$ kvm -name apple -m 2048 -cpu core2duo -enable-kvm -sdl -vga std -soundhw all \ -net nic,model=rtl8139,macaddr=00:03:93:0a:0b:0c -no-kvm-irqchip -net tap,ifname=mac,script=no \ -cdrom /home/cyril/Downloads/10.6.6i.iso -boot d /home/cyril/vm/mac/hazard.img
where tap device is created by tunctl and be added into bridge with brctl
There are 2 tricks to run the 10.6.6i with RTL8130 up on qemu,
1. When booting the iso and doing first installation, kernel will panic at ElliotForceLegacyRTC so I have to delete the kext in both CD and new-installed volume hence do the following:
# mount -o loop -t hfsplus 10.6.6i.iso /mnt # rm -rf /mnt/System/Library/Extensions/ElliottForceLegacyRTC.kext # umount /mnt # boot the CD and install it to volume then reboot and use the terminal of Utilities in CD. # find the volume name created in the previous installation at /Volumes/vol_name # rm -rf /Volumes/vol_name/System/Library/Extensions/ElliottForceLegacyRTC.kext # reboot and enjoy
2. When booting the kernel in hard drive, give the "-v -f -F" in the bootloader.
