October 31, 2006

How to install Linux on an eMac

Author: Joe Barr

Why replace Mac OS X with Linux on an Apple eMac? I did it to revive an aging hardware platform and provide a computer to a friend. Here's how I replaced "Puma" (OS X 10.1) first with Debian, then Ubuntu.

My friend Jack asked me a couple of weeks ago to help him find a good deal on his first computer. He just wanted something he could use to browse the Internet and keep in touch by email over a dial-up connection. I thought of the eMac in my living room, which has done nothing but gather dust the past few years.

The eMac is a fine machine, but it has always been a little slow, due primarily to the fact that it has only 128MB of RAM. That shortage of RAM kept me from upgrading to a later version of OS X several months ago: the latest version would install only on machines with 256MB. I didn't want to give Jack a machine that he would immediately need to spend several hundred dollars on in order to bring its operating system up to snuff, so I decided to see if I could install Linux on it.

There are a number of distributions that support the PowerPC (PPC) architecture Apple used in the eMac. My first choice was the ubiquitous Ubuntu, which offers a "desktop" (live CD) version for PPC machines. I downloaded the ISO and burned a CD, but unfortunately, the desktop version would not install on my eMac. It crashed while booting and I couldn't find any way around it.

My second choice was Debian, which offers a "net install" ISO for PPC architecture. I grabbed it, burned the CD, and in no time at all had a net install in progress, downloading packages from the Internet via the eMac's Airport wireless card.

Everything was fine until my Debian eMac tried to load X and crashed. Fortunately, Google helped me find a replacement for my XF86Config-4 file, and soon I had a working GNOME desktop. Well, a qualified working desktop, at least: I had no right-click ability with my Apple rodent, the eMac's internal modem had not been detected, and there was no sound.

Back to Google for answers. Thanks to those who came before me, I found a solution to the right-click problem. I added the following three lines to /etc/sysctl.conf in order to emulate the center mouse button with the F11 key and the right mouse button with F12:

dev/mac_hid/mouse_button_emulation = 1
dev/mac_hid/mouse_button2_keycode = 87
dev/mac_hid/mouse_button3_keycode = 88

Next came the really hard part: getting the internal modem to work. It has been so hard, in fact, that I still have not found a solution, though I spent a good deal of time looking for one. I learned that the modem Apple used in the eMac is a USB softmodem, and though there are Linux drivers available for some softmodems (a.k.a. Winmodems), I never found one for the eMac's modem.

During my Googling to find fixes for what ailed the Debian install, I came across a reference to an alternative Ubuntu PPC ISO, which was claimed to work even on machines with less than 196MB of RAM. This version of Ubuntu installed where the "desktop" version had failed. X still crashed, but I got past that the same way I had on Debian. Here are the steps I took to do so on Ubuntu:

  • Press Alt-Ctl-F1 to start a console session
  • Make a backup of /etc/X11/xorg.conf
  • Run the command wget http://homepage.univie.ac.at/georg.koe/XF86Config/XF86Config-4.emac700nvidia.working
  • Edit the keyboard layout line in the configuration file to change "de" to "en"
  • Copy the edited XF86Config-4 file to /etc/X11/xorg.conf
  • Restart the machine

Note that on Debian Alt-Ctl-Bksp will give you a command prompt, but on Ubuntu it will simply keep trying to launch X. Also remember to change "de" to your native language in the keyboard configuration.

Ubuntu did not require me to hack /etc/sysctl.conf in order to be able to use F12 for right-click, and the sound on my GNOME desktop "just worked." But I didn't have any more success getting the internal softmodem to work than I had had with Debian, so I decided to do a little hardware hacking and use an external serial modem.

By the way, if someone tells you that all external modems are "hardware" modems instead of softmodems, it's not true. There are a number of crippled USB modems on the market. As far as I know, however, all serial port external modems are true modems.

The problem with using an external serial modem is that the eMac doesn't have a serial port interface. I visited my local Radio Shack and found a serial/USB converter for about $35, and used it to connect a Zoom external modem to the eMac.

The external modem was not autodetected, but one last search on Google provided the missing bit of information I needed to get dial-up working. I needed to tell the GNOME Network tool that the modem lived at /dev/ttyUSB0, and of course provide the phone number, user name, and password for the ISP.

After all this effort, how does it work? It works well, though it is still on the slow side. Another 128MB of RAM would probably make a big impact on performance. Ubuntu looks and sounds good on the eMac. For Jack, at least for the time being, the marriage of Apple hardware and free software will be more than adequate.

Click Here!