IBook 2

Introduction

Recently, I bought an IBook2 (the white one, with 600MHz). It's a decent machine to work and play on the road.

And, most amazingly, Mac OS X worked right out of the box without any hassle.

But that's no challenge. So I put woody on it. It was pretty easy to get it running with the instructions provided by Branden Robinson.

After installation I decided to upgrade to a more recent kernel - 2.4.18pre4 (.19 was kind of broken on PPC at that time). It also worked pretty flawless. I don't exactly recall which kernel-options I set, but pretty much anything PPC/Mac related - at least as module.

After debian 3.0 (woody) was working fine, I upgraded the whole system to unstable - that's what I'm using on my desktop, so, I figured, why not on the IBook. Works fine. Maybe related to some problems I'm describing here, the versions in woody and unstable might differ. So, be aware

There's one additional package, powerpc-utils, which provides a nvram-update, according to Jack's website (I was not always lucky to get that page). There's some more useful information on Linux and the IBook.

Keycodes, unusuable keyboard

I encountered one problem which is noteworthy. The kernel sends different keycodes than in 2.2.20. Usually, one sets the following in /etc/sysctl.conf (including some other helpful setting):

dev.mac_hid.keyboard_sends_linux_keycodes=1
dev.mac_hid.mouse_button_emulation=1
dev.mac_hid.mouse_button2_keycode=87
dev.mac_hid.mouse_button3_keycode=96

The last three items give me the missing mouse buttons. One's on the F11-key (without the fn-key) and the other mouse-button is on the enter key next to the apple key.

I encountered exactly one problem with this setup. If, for whatever reason, fsck fails on startup you're presented with a root login to fix the problem by manually calling fsck. Unfortunately, your system expects different keycodes so the login is unpassable and renders the ibook unusuable.

At first, I thought to have to reset the ibook with the little reset-switch at the left side of the case. But that's not necessary and messes e.g. your clock setting (Current date: somewhen in 1901 or so...). If you hold the powerswitch on top of the keyboard at least 5 seconds, the ibook turns off. Not nice, but hey, you can't use it anyway. And at this early stage of the boot process (init hasn't started yet) you can't hardly damage anything.

How to get around this?

Put an append line in your yaboot.conf in the section regarding your kernel like the following:

    append="keyboard_sends_linux_keycodes=1"

You might also want to put hdb=ide-scsi in the append line to be able to use the CD-RW drive (if you have such combo drive).

This tells the kernel right away to use the correct key-code and you're also able to log in in situations like the above with a pre-init root log in.

Other hints

For all of you coming from a non-laptop environment:

Backlight

There's this nice little utility called fblevel. You can easily set the backlights brightness with this tool. Call it with a small number (0-20) and you change the backlight.

Sleep

If you close the lid, you would like the IBook to go to sleep and let the fancy light next to the lid release button pulsate, right? Yeah, that's pretty nice. Install pmud and pmud-utils to get this to work. APM is i386 and not supported on the IBook. Although some comments suggest to change something in the conf-file for wake/sleep/snooze I didn't change anything. It works. But remember I'm using unstable, so the configuration might have changed!

System Time

Still, without ntp I'm having trouble to get the time in Mac OS X and linux to be in line. That's why I can't provide any more information on this other than to enable ntp in Mac OS X and linux. Without this, the time was always two hours off when I boot from into Linux after having the correct time in Mac OS X.

Benjamin Herrenschmidt made a suggestion to set mac os x to use UTC (Universal time coordinated) for the RTC (Real time clock). Before doing that, I tried one more time to document the current situation:

Mac os x was set to the correct time (17.40). I boot into linux to see that hwclock-first.sh in rcS.d saw that the system clock was 22.40 (correct UTC time) and changed the local time to 14.40 (although this seems a little far off for US eastern to UTC, which is 5 hours right now). At the second call from hwclock.sh (also in rcS.d) the re-adjusted clock (14.40) was taken as UTC, so my system time is now 9.40. This is somehow off.

This is more than strange. The first call to show the RTC (22.40) showed the correct time. Although hwclockfirst.sh does not contain any line to actually change the RTC, it seems that it got changed, as the second call (from hwclock.sh) shows. And hwclock.sh also does not contain any line to change the RTC, just a --hctosys. But still, if I call hwclock --show --utc from the commandline, it shows the 'localtime', same as if I call hwclock --show. Basically, something is messing the RTC here, and I don't know and can't figure what.

Then I reboot linux, and get the same strange messages as above: hwclockfirst.sh => system time was 22.40 UTC, set, local time 14.40. hwclock.sh => system local time is 9.40 UTC.

The I reboot into mac os x, the clock is just fine at 17.40. As if the RTC was never actually set as I am told by the shutdown script and hwclock --show and all that.

Now, I set the system clock in linux via date, and reboot. Shutdown says "clock updated to 17.40 EST" (correct).

After the reboot I get system time was 06.40 UTC, set to 22.40 UTC. (hwclockfirst.sh) local time set to 17.40. (hwclock.sh), so, it's still correct.

Then I reboot into mac os x. The time is: 01.40 - totally off.

In mac os x, date -u shows me 06.40 UTC, which corresponds to the above, when the first info in the last linux reboot was 06.40, too.

I realize, that Ben is right, that the iBook obviously is not set to use UTC for the RTC. But I haven't found that particular setting, yet.

What else?

Well, I'll continue to explore more possibilities of the IBook, so there might be more information here next time.

Have fun!


Jens Gecius (imagine an email address for myself at gecius.de :-)
Last modified: Sun Apr 7 15:21:06 EDT 2002

Valid HTML 4.01!