Thursday, February 28, 2013

Can't play DVD movies on an iMac G3 with Linux...

If you're anyone who has a PowerPC G3-based Mac, equipped with an ATI Rage 128 video chipset, and use a modern distribution of Linux (as of 2013), you likely have discovered that you can't play DVD movies.

Basically it boils down to a few key reasons:

  1. The performance of the Linux driver for the ATI Rage 128 is so poor compared to how the same hardware performs under OS X.
  2. Decreasing numbers of G3 users in general as the years go by.  While not a reason on it's own, I believe it would certainly lead to....
  3. ...open-source programmers who'd rather forget the Rage 128 and leave it into obsolescence.  (i'm shaking my head at the MESA project).
  4. VLC (arguably the most popular video playback software package in Linux) is optimized and thus intended for G4's and newer, leaving us G3 users with few options:  compile VLC from source and making sure to disable Altivec, find some other open-source video playback program (good luck), or do what I did, which I'll explain a bit more, further down this page.

So what I ended up doing was to set up my iMac to dual-boot Mac OS X and Linux.  Essentially, I'm keeping Mac OS X just to retain the ability to play DVD movies.  While it is an obvious pain to have to reboot to switch between OSes just for the sake of playing DVDs, it is the -ONLY- solution I know of that works.  I divided my hard drive into 3 partitions in this exact order:

  • Linux/Debian (MintPPC)
  • Mac OS X (originally a Mac OS 9.2.2 system that I upgraded to 10.3.x, then finally to 10.4.11)
  • File Storage
This was a major pain in my posterior because of all the hoops I had to jump through to get this to work properly.  But with the advice from PPC Ludite's blog post about installing Debian, I was able to get what I want.

All I had to do was:
  • Do the partitioning with the Disk Utility on my OSX installation DVD.
  • Create 3 partitions...
  • ... Partition 1 = unallocated but intended for Linux (I gave this one the largest size of the 3 partitions)
  • ... Partition 2 = formatted as an HFS+ (journaled); intended for Mac OS X (I gave this partition the smallest size of the 3 partitions)
  • ... Partition 3 = unallocated but intended for shared file storage between Linux and OSX.  This partition is the remainder of the hard drive.  HOWEVER, I made sure it was larger than Partition 2, but smaller than Partition 1.
  • Install Mac OS 9 on the 2nd partition.
  • Reboot
  • Upgrade the OS 9 installation to 10.3.x (because my 10.4 disc requires 10.3 to be installed first).
  • Reboot again
  • Upgrade to 10.4.11
  • Reboot
  • Run Software Update
  • Reboot
  • Run Software Update again
  • Reboot
  • Run Software Update again
  • Reboot
  • Run Software Update again
  • Reboot...
  • ... at this point, I'm cussing like I'm back in grade school...  stupid Java VM...
  • Boot into the Linux install image (which I burned onto a USB flash drive) through the Mac's Open Firmware (hold Command+Option+O+F during startup)
  • When I got to the screen that lets the user create, edit, and delete partitions, I deleted Partitions 1 and 3, while retaining Partition 2.
  • Then, for Parition 1, I let the Linux installer "Automatically" handle the task of creating the swap, boot, home, and other "sub-partitions" needed to install and boot Linux.
  • Then I proceeded to install Linux, making sure the installer would chose the LARGEST unused/free-space on the hard disk.  In this case, it is Partition 1.
  • After Linux was fully installed, I booted into Linux from Parition 1
  • After logging into Linux, I used GPARTED to make Partition 3 as a logical volume and formatted it as a FAT32 disk.  Both Linux and Mac OS X (and I believe Mac OS 9) can read AND write to FAT32 volumes.
And that's it.  The Yaboot boot loader comes up right after I power up my iMac and I have a few seconds to select between Linux (default), OSX, or if I want to boot off of a CD.  I don't even bother booting into OS9... i just rely on the "Classic" environment within OSX to handle my old OS9 applications.

I can imagine that it would be a very, VERY long time before a capable and WILLING programmer would come along and make the needed changes to the Linux driver and/or VLC to make DVDs play well under Linux on the iMac G3... or ANY PowerPC G3+ATI Rage 128 combination for that matter.