Last Update: 6 January 2008
Mostly an intellectual exercise - a challenge, a learning experience, and a test of DIET-PC's flexibility. Interest in the PowerPC architecture took a nosedive when Apple abandoned it in favour of x86, and it remains to be seen whether it can regain popularity in the embedded marketplace.
Nevertheless, some sites - educational institutions in particular - may have old iMacs lying around that are too slow to run Mac OS X with acceptable performance, and may wish to recycle them as thin clients.
A few embedded appliances also use PowerPC chipsets, and while this port is aimed at Apple hardware in particular (with regard to keyboard, bootloader and filesystem support), the actual binaries should run on any PowerPC-based platform that you can build a Linux kernel for. I now own an Efika Open Client, and can therefore provide some degree of support for these units also. See the Efika page for more information about DIET-PC PPC on Efika.
At this stage, this port of DIET-PC is really only intended for PowerPC- based Apple computers with "New World" ROMs. In layman's terms, that means G3/G4 PowerMacs, iMacs, iBooks, PowerBooks and Mac Minis. It might be possible to get DIET-PC PPC to work on Old World PPC Macs (such as the original PowerMacs) using BootX, but my build automation only knows about yaboot. The original Macintoshes with Motorola 680xx series CPUs are a completely different archiecture that I have no intention of ever supporting.
With respect to any interoperation with Mac OS (such as sharing a disk with Mac OS), DIET-PC PPC tools and documentation assume Mac OS X. Mac OS 9 and earlier are much fussier with respect to disk partitioning, and if you follow DIET-PC recipes for co-existence, Mac OS will probably be unable to boot.
The only PowerPC devices that I can guarantee that DIET-PC PPC will definitely run on (to some degree, at least) are those that I own: a G4 "Aluminium" PowerBook, and an Efika (MPC5200B) Open Client. I've made every effort to ensure that it will work on other PowerPC Macs, but can make no promises.
A bootable ISO image for PPC Macs is available from the PowerPC download area. It includes the following packages: generic_kernel_macppc 2.6.23.12, shell 2.7, sshserver 2.5, remotefs 2.8, smbserver 2.1, storageserver 2.3, persistfs 2.3, assembler_installer 2.2, xcore 2.2, xserver_xorg 2.3, xserver_xorg_radeon 2.3, xserver_xorg_vnc 2.3, rdp 2.5, rfb 2.2, wireless 2.0pre, mmedia_xine 2.5, qvwm 2.0pre. It boots to runlevel 1 (shell only) by default, but you can use the menu to enter server details and change to runlevel 2 (X11-XDMCP), 3 (RDP), 5 (VNC), 8 (Xine) or 9 (QVWM). As always, the root password is "foobar". I encourage anyone who owns a Mac to boot this and let me know what happens. To boot a from CD, insert the CD and then hold down the c key after powering on. The bootable image will not harm your disk contents in any way.
Snapshots of my PowerPC diet-pc tree are available from the PowerPC section of the downloads area. You ought to be able to extract the tarball onto any NFS server (eg. such as your x86 Linux dev box), and then boot a Mac using the ISO mentioned above and use its assembler_installer capability to NFS-mount the diet-pc directory and construct new boot images.
| DIET-PC Package | Equivalent x86 Version | Status |
|---|---|---|
| assembler_installer | 2.1 | Working equivalent with additional HFS/HFS+ support and support tools needed by skeleton (mac-fdisk, ofpath, nvsetenv). Incomplete documentation. |
| generic_kernel_586+ | 2.6.23.12 | Working equivalent named generic_kernel_macppc; no splash support (requires VESA). No documentation. There is also a 2.6.23.9 kernel_efika package specifically for the EFIKA (MPC5200B). |
| ica | - | Not possible due to lack of Linux PPC ICA Client. Use of Java or MacOS X clients is theoretically possible, but impractical due to the huge runtime overheads of JRE and MOL. |
| mmedia_xine | 2.5 | Mostly working. ALSA's OSS emulation doesn't work on my PowerBook, so aumix and xineplug_ao_out_oss.so are useless. I have included alsamixer and xineplug_ao_out_esd.so to work around this. You may find that ALSA mixer devices default to zero volume at boot, so you have to use alsamixer to raise them, or Xine will be totally mute. Win32 codec support is obviously useless on this platform, as are RealPlayer library hooks. Other than that everything seems to work, despite the hazard of linking against a mix of static and shared libraries on this architecture (this can result in out-of-range symbol relocations). |
| persistfs | 2.3 | Fully ported (with additional HFS and HFS+ integrity checkers), documentation needs minor update. |
| qvwm | 2.0pre | Fully ported. |
| rdp | 2.5 | Fully ported. |
| remotefs | 2.8 | Fully ported. |
| rfb | 2.2 | Fully ported. |
| rfbserver | 2.1 | Fully ported. |
| sensors | 2.5 | Fully ported. |
| shell | 2.7 | Fully ported, minor documentation updates needed. |
| skeleton | 2.3 | Working equivalent using the yaboot boot loader for network, CD and disk booting (Macintosh only, in all cases; EFIKA is not supported by Makefile targets). Network booting has special DHCP server requirements, and disk booting is limited to HFS partitons only. Needs a substantial documentation update. |
| smbserver | 2.1 | Fully ported. |
| ssh | 2.3 | Fully ported. |
| sshserver | 2.5 | Fully ported. |
| storageserver | 2.3 | Fully ported. |
| wireless | 2.0pre | Fully ported. |
| xcore | 2.2 | Fully ported, minor documentation updates needed. |
| xserver_tinyx | 2.3 | Working equivalent (Xfbdev instead of Xvesa), no documentation. |
| xserver_xf3 | 2.1pre | Working but somewhat buggy equivalent (XF86_FBDev instead of XF86_SVGA), no documentation. Not recommended. |
| xserver_xorg | 2.3 | Working equivalent (fbdev instead of vesa), incomplete documentation. |
| xserver_xorg_radeon | 2.3 | Fully ported. Won't work on virtual terminals pwned by the radeon framebuffer driver, due to resource conflicts (see below). Hence it is not possible to automatically fall back to fbdev if the accelerated driver does not work. |
| xserver_xorg_vnc | 2.3 | Fully ported. |
| xserver_xorg_xgi | 2.3pre | Partly working (unstable, XVideo overlay does not work). Coexists peacefully with SiS framebuffer, but as with xserver_xorg_radeon Xorg will not fall back to fbdev if the xgi driver doesn't attach. |
| xserver_xorg_others | 2.3 | Fully ported, for what it's worth. Many of these drivers will not be big-endian-safe, and it's likely that relevant chipset has never been used, and will never be used, on a PowerPC platform. |
| xserver_xvnc | 2.1pre | Fully ported. |