Running Linux on the ibook 700
This document explains how the mildly adventurous can run Linux on the ibook 700Mhz. You will find on this page some downloadable information, which will make this task much simpler. The ibook 700Mhz was released in late 2001, early 2002, was snow in color, but is different from the original snow ibook (Dual USB).
Why
I could evangelize about Linux, but I rather not. If you are comfortable with OS X, and can productively use your machine, I'm happy for you. Personally, I am much more productive in Linux, specifically Debian. An ibook really comes to life with Linux, and makes for an excellent computing platform.
Setup
Firstly, you need an ibook 700Mhz. Why I stress on the 700Mhz is that these are the new set of ibooks. The most immediate difference is that they have the ATI Radeon video card, more cache (512kb), and a bigger hard-disk by default. Also, the modem is a software modem. I bought my machine in August 2002, and if you bought a new ibook at around that time, chances are you have the same machine. The actual CPU speed is irrelevant. It could be a 600Mhz machine, but if it has a Radeon video card, then you need this document. This machine is snow in color, and looks just like the previous snow ibooks. Visit Apple history for an informational tour of various Apple hardware, including, but not limited to the ibooks.
This ibook should be working in OS X.
Additionally, you need the following:
- Either a fast Internet connection (10 or 100Mbps to the Internet) or a Debian CD. The CD should be for the PowerPC, and not the Intel platform.
- A way to back up existing iBook data. I strongly suggest putting Linux on the iBook as soon as you buy it. That way, you don't have any data to back up.
- If you want either OS 9, or OS X on your ibook, you need Apple's OS 9 and OS X CD sets. Alternately, you can make do with the iBook restore CD set (4 disks at last count), but only OS X boots up with this method.
- Disk space. Debian has to go somewhere, right? I have a 20G disk, and keep 5G for OS X, and the remaining for Debian. A comfortable Debian install takes about 2G. You can make do with a little less, but in 1G, things will get tight. I suggest at least 3G for Debian.
- Familiarity with the Debian install. I had to draw the line somewhere. Installing Debian is better covered in other places (including paper books). Look at them if you have never installed Debian before.
The following, though not essential, are definitely helpful:
- Another machine with a connection to the Internet. If the iBook is your one and only machine, and you are a Linux newbie, I wouldn't recommend this move. There will be times when you need to refer to websites or download something. It helps to have access to another machine, preferably located near the ibook.
- Patience, determination, and courage. Don't worry about starting over afresh. It happens to everyone (including me.) If you feel that you need the ibook working quickly, I suggest following till the end of Step 1. At that point, you have a working ibook, and can take your own time in getting Linux to work on it.
- A scratch pad, where you can note your progress. It will help to be a little organized. Also, this is an excellent reference for you in case things don't go well. I hate people who say, "I followed most your steps, but now my ibook doesn't work." You should be capable of pointing out the steps you took, and the computer's output when things didn't work.
The procedure
I try to list the procedure as best I can. You need to follow the steps in order.
Step 1: Partitioning
Back up your iBook data onto a reliable target. Ok, now verify that you can read from it. If all is clear, proceed. I'm telling you, you will lose your data. You might have installed Debian before, but it's common to make mistakes. Hold on to the backups till the end of step 4.
There are three options: You want Linux alone, Linux with OS X, or Linux with OS X and OS 9. Depending on your choice, you do the following:
- Linux alone: Verify that you have the Debian CD, and can read from it.
- Linux with OS X: Insert the Apple OS X install CD, and boot from it. Using the Drive manager, create two partitions. The first is for OS X, and the second for Linux. Install OS X on the first partition.
- Linux with OS X and OS 9: Insert the Apple OS X install CD, and boot from it. Using the Drive manager, create three partitions. The first is for OS X, the second for OS 9, and the third for Linux. Install OS X on the first partition. Reboot, and use the OS 9 CD to install OS 9 on the second partition.
Step 2: Starting the Linux install
Insert the CD into the drive, and boot from it. At the command prompt, you need to type "linux video=ofonly". The ofonly option disables the probing of the frame-buffer device, which messed up my display. Follow the Debian install. There is nothing special that you should install just yet.
Step 3: Setting up boot choices
PowerPC machines don't have LILO. Instead, there is yaboot. My yaboot.conf file is here for you to look through. The syntax resembles lilo.conf, and is hand edited. Remember to run 'ybin -v' after making changes, to ensure that the changed file is used to setup the boot record. Basically, you need to add a section for your Linux machine, and a line each for booting into OS X, OS 9, the CD, the firmware. The man page for ybin is helpful.
By now, you should have the machine booted into Linux, and you should be able to switch between Linux and the other OS's installed on your machine. Time to finish the job.
Step 4: Configuring the funky hardware
- Kernel: You need a new kernel. The default kernels don't have support for everything on the ibook. The benh kernels are excellent, and I have used those. Either you could download them, and use my .config file. Alternately, I have put my kernel binary here.
- Virtual consoles: The various virtual consoles are available through the keystrokes "[alt][FN][Fx]" where Fx is F1..F6. The order of keypress is important, so make sure you go in the order described! In X, you need to press "[ctrl]" and then the other keystrokes in that order.
- Sound: I build sound as a module. It is called dmasound_pmac. Once it is loaded correctly, you will be able to play sound from the iBook. Use the program aumix to adjust mixer and audio levels.
- Ethernet: I have build the ethernet support inside the kernel. (I need it all the time.) You might build it as a module, and load it dynamically. The ethernet device is a Sun GEM (PCI) 10/100/1000BaseT Ethernet.
- Power Management: Power management on the ibooks is handled through the Power Management Utilities. On Debian, the package is called pmud. Install it. My kernel has support for power management. When you close the hatch, the machine goes into powersave automatically. The soft white light next to the release button pulsates, just like with OS X.
- CD RW: I have a CDRW drive with the iBook, and it works beautifully. My kernel has support for it, and the support for the CD is a module, since one doesn't need CDROM and CDRW support for 90% of the time. You need "Generic SCSI support" in the kernel, along with ide-scsi support. The script cdrom-dev starts and stops the CD support. The CD is at /dev/sr0, the first SCSI device. The program cdrecord can be used to write CDs.
- DVD: All you need is the "ogle" package. This will get some scripts which download the decss libraries, since these cannot be legally distributed by Debian (due to copyright issues). However, once you get the ogle package, it will ask you to run a small script which will get the libraries for you, and it is really straight forward. Then, pop the DVD in the drive, and run ogle from an xterm. That's all there is to it! :)
- USB: My kernel has support for USB. I have compiled nearly all the USB devices as modules, and you can insmod them as required. The mouse driver is called 'usbmouse', for instance. I have successfully used a Sony Clie N610c and NR70V/U, and NR70U with the iBook. The clie's use the visor module, and pilot-xfer and/or coldsync works with them. I also have a Sharp Zaurus SL-5500 which works perfectly with Linux using the usbdnet module.
- Fire-wire: Sorry. I don't have firewire devices. I have built support into the kernel, but am not sure if it works. Gifts of iPods, or other devices is welcome! Incidently, the ipod works with Linux.
- Modem: I got the modem to work, by using hcfmodem drivers, which can be downloaded here. Originally the file was called hcfusbmodem-0.98mbsibeta02090200ppc.tar.gz. This will only work on PPC machines. I am able to get into minicom, and an "ATZ" command return a +OK, which tells me everything is fine. However, I have not yet connected to some modem on the other end, primarily because I get a 100Mbps line running to my home, and office.
- Airport: I have built support for the airport card in my kernel. The module is called airport.o, and can be loaded when required. The module is designed in a way that the airport card is switched off when the module is unloaded, saving power.
- X: As of writing, the Debian X server did not have support for the ATI Radeon. This was a royal pain for me to set up. I located a tarball which had binaries for X, which was working on the TiBook (the large screen, titanium ibook). Download the X server tarball and extract the binaries in it to /usr/local/. Link the file /etc/X11/X to /usr/local/X11R6/bin/XFree86, and your server is set up. My XF86Config-4 file is available for download.
- 3 Button emulation: It took me some time to figure this out, because the information on this was located in various places, and my ibook keyboard did not behave like the document said. Maybe they had the old clamshell ibook, or I was doing something wrong. Anyway, the script Merlin.sh enables 3 button emulation. The combination "[FN][ctrl]" is middle button, and "[FN][alt]" is right button. Press the [FN] button first! This is important. Using this, one can cut and paste in the console with gpm. My gpm.conf file is here for your benefit. This works in X as well. If you have a USB mouse, you can use the buttons on the mouse themselves.
Step 5: Feedback
I realize that it is impossible to give a complete account of how to setup things for the ibook. I appreciate comments, constructive criticism regarding this page. If you have a question that went unanswered by this page, it might point to a deficiency in the information provided. I am willing to put config files that might help you on this page. Mail me at the address at the bottom of this page.
Additional resources
I have put some extra files, and miscelaneous output here. They might help you in debugging your own errors, or noting the extra stuff I do.
This page was last modified on Wed Oct 12 16:33:06 PDT 2005