(Guide Updated January 10th, 2021)
Qemu-system-ppc can run the PowerPC versions of Mac OS 9.0 to 9.2 and OSX 10.0 to 10.5. Qemu can also run some OSX release previews.
The status of various guests based on the latest builds available from the forum:
Guest | Default build | Sound-enabled build | Specific arguments | Remarks |
---|---|---|---|---|
Mac OS 9.0 | OK | Hangs | -M mac99 | Requires rom version 5.6 or above |
Mac OS 9.1 | OK | Hangs | -M mac99 | |
Mac OS 9.2 | OK | OK | ||
Mac OSX 10.0 | OK | OK | -M mac99 | |
Mac OSX 10.1 | OK | OK | -M mac99 | |
Mac OSX 10.2 | OK | Sound crackles | Has display issue | |
Mac OSX 10.3 | OK | Sound crackles | ||
Mac OSX 10.4 | OK | Sound crackles | ||
Mac OSX 10.5 | OK | Sound crackles |
This guide assumes you are installing Mac OS 9.2 on a 2gb file that will act as your hard disk for Mac OS.
The CD image you install from is called MacOS9.2.iso and the hard disk is called MacOS9.2.img
Installations of other versions of Mac OS or OSX (roughly) follow the same path.
See the table above for information about specific qemu parameters required to run Mac OS/OSX versions.
qemu-img.exe create -f raw -o size=2G MacOS9.2.img
qemu-system-ppc.exe ^
-L pc-bios ^
-M mac99,via=pmu ^
-m 512 ^
-sdl ^
-boot d ^
-drive file=MacOS9.2.iso,format=raw,media=cdrom ^
-drive file=MacOS9.2.img,format=raw,media=disk
Short explanation of the content of the file:
qemu-system-ppc.exe starts qemu with all of the following as parameters:
(*)The mac model entry accepts 3 options for the via parameter:
mac99,via=pmu (with PMU, supporting usb mouse and keyboard)
mac99,via=pmu-adb (this allows some older Mac OS/Mac OS server builds to use a keyboard and mouse through the adb bus)
mac99,via=cuda (default, this allows use of the older adb (Apple Desktop Bus), now less supported cuda)
After you booted from the CD you first need to partition the hard disk:
After initialization has finished and a disk icon has appeared on the desktop, quit the program.
You can then start the installation of Mac OS. Shut down Mac OS after the installation has finished.
Please note that the initialization step has to be repeated for any NEW disk added to Mac OS.
To boot the installed Mac OS, you need to edit the qemu.bat file:
When booting with -boot c, make sure your hard disk image file is listed first. Save the file. Double-click qemu.bat and Mac OS will boot from the hard disk.
Done.
If you want to install software, make an image of the CD-Rom and attach it to Qemu. Add a disk after the hard disk entry to qemu.bat:
"-drive file=Name-of-CD-image.iso,format=raw,media=cdrom" (without the quotes!)
or for a second hard disk:
"-drive file=Name-of-hard-disk-image.img,format=raw,media=disk" (without the quotes!)
And save the file. Start qemu.bat. The CD image (if readable by Mac OS) will appear on the desktop for you to use.
A new hard disk needs to be partitioned as described above.
You can set the initial size and colour depth of the boot window, using the -g parameter like this:
"-g 1024x768x32" (Without the quotes!)
Subsequent changes to the resolution can be made with default OS tools. (e.g., the Monitors control panel in MacOS or equivalent in OSX).
You can pass-through devices attached to the host to the guest. For USB devices in general this takes the form of:
"-device usb-host,vendorid=0x06cd,productid=0x0110"
On a Windows host, you can find the required USB vendorid and productid by checking the USB devices in the Device Manager.
The latest Qemu-system-ppc for Windows builds emulate a network device that is supported out of the box for Mac OS 9.0 up to OSX 10.5
However, you can also use the realtek 8139 device. This requires installation of the appropriate drivers. You can download them from the Realtek site, or all drivers in one iso from here
There are several ways to get networking going in Windows:
Note: this is activated by default on Qemu-system-ppc, so doesn't need to be mentioned explicitly on the command line:
If you want to run two instances of Mac OS/OSX simultaneously, Qemu needs to be able to tell the network devices apart. You can add a mac address to the networking device:
and make sure you add a different mac address to the second instance:
Please note that adding a mac address other than the default to the network device leads to the discovery of a new network card in OSX. You need to configure that card through the network preferences.
Install an OpenVPN tap device and bridge it with your normal ethernet connection. Then use the following on the Qemu-system-ppc command line:
To allow two Qemu-system-ppc instances to “see” each other on the network and also have internet access, install a second tap device and bridge both tap devices with your default network connection. You must then also use different mac addresses for each connection. Note that the tap devices should have different names too.
Qemu can use socket networking to connect two peers. The peers will have no internet access, but can exchange data between each other.
Set one guest to be a listener for network traffic:
Set the other guest to connect to the listener:
For both instances, set the TCP/IP settings manually to a free ip address in your IP range and set the subnetmask to 255.255.255.0. No other settings have to be made.
You can provide services running on the guest to the host by forwarding ports to the host.
The webserver running on the guest is then accessible through e.g., http://localhost:8080 or http://name-or-ip-adress-of-host:8080 from other machines running on your network.
Forwarding port 21 to the host allows running an ftp server (such as Netpresenz) on an Mac OS 9.x guest and read/write access to the file system of the guest. Make sure to use an FTP client capable of active transfer mode on the host (such as Filezilla, we are dealing with an old guest system after all.) For access to a Mac OS X guest, enable the ftp service.
You can access the guest by connecting to either ftp://localhost:2121 or ftp://name-or-ip-adress-of-host:2121 from other machines running on your network.
You can forward multiple ports:
You can also forward ports for appletalk over tcp/ip:
In Windows:
-Make sure you have some folder shared
-Bridge your tap device with your default network interface (see above)
-Start Mac OS 9 through Qemu with tap networking
-Use DHCP on the Mac side.
In Mac OS 9:
-Install DAVE 6.2.1 (find it at Macintoshrepository.org)
-Shut down and start Mac OS
Follow the setup assistant.
-name, company, serial number
-Netbios name: (f.i., QemuOS92)
-Workgroup: WORKGROUP (should be found automatically)
-Description: (f.i., QemuOS92)
-Login at startup: unchecked
Overview:
Computer Name: QEMUOS92
Workgroup Name: WORKGROUP
Description: QemuOS92
Use DHCP to make additional settings
-Sharing local files: check I don’t want to share my local files
(if “Use DHCP to make additional settings” is not shown, check DHCP in the NetBIOS Control Panel)
-Start the Chooser, select your host as server. Enter username, password, leave domain as is.
-You will get an unknown error….
-In the SERVER box, click Add Share. At Share enter a share name on your host. Click OK, and OK.
The share appears on your desktop, you can now exchange files through the share.
There are multiple way to print from the guest operating system to the host:
Print directly to a networked printer you have Mac OS/OSX drivers for. This assumes you have set up tap networking so Mac OS can see the windows network and networked printer.
Print to a file that is moved to the host to print. How to print to e.g., a pdf file depends on the guest operating system.
In Mac OS: First drag any mounted CD from the desktop into the trash
Also see the qemu documentation here: https://www.linux-kvm.org/page/Change_cdrom
NOTE: You cannot mount Mac formatted CD's, but other formats work
NOTE: This option is not error-free
Create an empty folder to be used to exchange files. In the example below, the folder c:\QemuVVFAT is used.
Add the following to your command line:
-device usb-storage,drive=fat32 -drive file=fat:rw:c:\QemuVVFAT,id=fat32,format=raw,if=none
An USB drive called Qemu-VVFAT will appear on your desktop. You can use it to exchange files with the host.
Qemu is being actively developed. This means that some new features can become available that are not yet incorporated into the official source code. Currently there are several such developments, in various states of reliability:
-Sound support.
You can download some of these experimental builds for our forum under Experimental builds : http://www.emaculation.com/forum/viewtopic.php?f=34&t=9028
The language codes available are:
ar de-ch es fo fr-ca hu ja mk no pt-br sv
da en-gb et fr fr-ch is lt nl pl ru th
de en-us fi fr-be hr it lv nl-be pt sl tr