Documentation/Platforms/PowerPC

From QEMU
Revision as of 23:29, 5 December 2015 by Programmingkid (talk | contribs)

PowerPC Macintosh Emulator


QEMU Installation Directions for Mac OS X


System Requirements:
Mac OS 10.5 or higher
The clang compiler shipped with Xcode 4.2 or higher, or GCC 4.3 or higher
Additional Requirements (install in order):
1. libffi: https://sourceware.org/libffi/
2. gettext: http://www.gnu.org/software/gettext/
3. glib: http://ftp.gnome.org/pub/GNOME/sources/glib/
4. pkg-config: http://www.freedesktop.org/wiki/Software/pkg-config/
5. autoconf: http://www.gnu.org/software/autoconf/autoconf.html
6. automake: http://www.gnu.org/software/automake/
7. libtool: http://www.gnu.org/software/libtool/
8. pixman: http://www.pixman.org/

  • You may find it easiest to get these from a third-party packager such as Homebrew, Macports, or Fink.

After downloading the QEMU source code, double-click it to expand it.
Then configure and make QEMU:
./configure --disable-gtk --disable-sdl --target-list=ppc-softmmu
make
If you have a recent version of Mac OS X (OSX 10.7 or better with Xcode 4.2 or better) we recommend building QEMU with the default compiler provided by Apple, for your version of Mac OS X (which will be 'clang'). The configure script will automatically pick this.
Note: If after the configure step you see a message like this:
ERROR: Your compiler does not support the __thread specifier for Thread-Local Storage (TLS). Please upgrade to a version that does.
you may have to build your own version of gcc from source. Expect that to take several hours. More information can be found here: https://gcc.gnu.org/install/
These are some of the third party binaries of gcc available for download:
Homebrew: http://brew.sh/
• https://www.litebeam.net/gcc/gcc_472.pkg
• http://www.macports.org/ports.php?by=name&substr=gcc
You can have several versions of GCC on your system. To specify a certain version, use the –cc and –cxx options.
./configure --cxx=<path of your c++ compiler> --cc=<path of your c compiler> <other options>


Guest Compatibility

Operating SystemStatus
Mac OS 9.1Does not boot
Mac OS 9.2Boots - but several extensions need to be removed because of crashing
Mac OS 10.0Does not successfully boot
Mac OS 10.1Untested
Mac OS 10.2Successfully boots and installs
Mac OS 10.3Can boot, unknown if it installs
Mac OS 10.4Can boot, but doesn't install
Mac OS 10.5Untested
Debian Linux 5Boots and installs
Ubuntu Linux 5Severe video corruption prevents using it


Guest Installation

Mac OS 10.2
Booting from the installation media does work. The beigeg3 target works very well with this operating system.

Mac OS 10.4
Mac OS 10.4 installation CD does not support the beigeg3 target. It will boot up, but a error dialog will say this machine isn&#146;t supported.
Booting from the mac99 target ends with the message &#147;Still waiting for root device&#148; being printed repeatedly.
It is still possible to make Mac OS 10.4 work in QEMU. I installed Mac OS 10.4 onto a flash drive from a PowerPC Macintosh. Then using Disk Utility to make an image file of the flash drive made a bootable image file for QEMU. The format of the flash drive has to be Mac OS Extended Journaled (HFS+ journaled). If the image file is a .dmg file, replace the extension with .img to make it work in QEMU.
If you wish to access the internet thru the Mac OS 10.4 guest, you can by adding this to QEMU command options:

 -net none -netdev user,id=mynet0 -device usb-net,netdev=mynet0


Mac OS 9
As of December 2015, Mac OS 9.2.1 cannot boot successfully into QEMU. Part of the reason is due to issues with OpenBIOS. The other reasons may be related to PowerPC emulation issues. There are ready-made image files and other helpful hints here.
Mac OS 9 is able to boot to the desktop if these extensions are removed:

  • Apple Audio Extension
  • Apple Enet
  • Multiprocessing folder
  • Open Transport aslm modules
  • Text Encoding Converter


A custom version of OpenBIOS is need to boot Mac OS 9. Use it like this:-bios <path>/openbios-ppc
Turn off networking because it causes Mac OS 9 to crash: -net none

This is the suggested options to use to run Mac OS 9:

 ./ppc-softmmu/qemu-system-ppc -bios <path>openbios-ppc -boot d -cdrom <path>os92_test.iso -M mac99 -m 512 -cpu G3 -net none


Debugging tips
Macsbug can be used to tell you what exactly stopped booting. The link for it is below.
Mac OS 9.2 comes with a built-in debugger. To use it, set the OpenBIOS variable &#147;APPL,debug&#148;:

In OpenBIOS type:
dev /
2000000 encode-int *Note: the number can be replaced with the many options available
&#147; AAPL,debug&#148; property
then to boot from a cd type:
boot cd:,\\:tbxi

To boot from a hard drive image:
boot hd:,\\:tbxi

Useful Links

Google Summer of Code Discussion for Mac OS 9
Macsbug 6.6.3 - debugger for Mac OS 9
Darwin OS installation iso file
JQEMU - graphical manager for QEMU (requires Java)

Pictures


Picture of mac os 10.2 and 10.6&#146;s About dialog

MacPong2001.jpg


AppleWorks
Mac OS 9
Debian Linux

How do I help

QEMU has many systems that can always be improved. Here is a brief list of possible areas you may want to work on:

  • Documentation
  • Testing
  • Fixing operating system compatibility issues
  • PowerPC emulation
  • User interface
  • OpenBIOS (firmware)
  • Implement a sound card that is compatible with Mac OS 9 and Mac OS X. The usb-audio device is the closest to working on the Mac OS.
  • Implement a 3D video card
  • Implement a network interface card that is compatible with Mac OS 9 and Mac OS X. The rtl8139 is already implemented and might need a few tweaks to work in the Mac OS.
  • Improve various hardware (via-cuda, ata controller, etc..)


Knowledge in these areas could help:

  • PowerPC Assembly
  • 68K Assembly
  • Embedded Programming


Contact

If there are any issues with this page, please contact me

Last Updated: December 5, 2015