Next Previous Contents

9. Discovering the iBook G4

Apple technical specifications can be found there:

9.1 The 7455 processor


cat /proc/cpuinfo

processor       : 0
cpu             : 7455, altivec supported
clock           : 931MHz
revision        : 3.3 (pvr 8001 0303)
bogomips        : 939.31
machine         : PowerBook6,3
motherboard     : PowerBook6,3 MacRISC3 Power Macintosh
detected as     : 287 (iBook G4)
pmac flags      : 0000000a
L2 cache        : 256K unified
memory          : 640MB
pmac-generation : NewWorld

(There also exist at 800Mhz and 1Ghz)


If you feel gentoo-like you may want to install apt-build
edit /etc/apt/apt-build.conf
remove the following march line:

mcpu = -mcpu=7450
options = -mtune=7450
I found this -mpowerpc-gfxopt -mcpu=7450 -mtune=7450 -maltivec -mabi=altivec -O2 on

Speed control

In /proc/sys/cpu/0/, you will find the current (speed) frequency, as well as the extreme values (speed-min / speed-max).
In my case speed-min is set at 707000 and speed-max at 931840.

9.2 System Bus

Clocked at 133Mhz.



0000:00:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 AGP
0000:00:10.0 VGA compatible controller: ATI Technologies Inc RV250 5c63 [Radeon Mobility 9200 M9+] (rev 01)
0001:01:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 PCI
0001:01:17.0 ff00: Apple Computer Inc. KeyLargo/Intrepid Mac I/O
0001:01:18.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:01:19.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:01:1a.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:01:1b.0 USB Controller: NEC Corporation USB (rev 43)
0001:01:1b.1 USB Controller: NEC Corporation USB (rev 43)
0001:01:1b.2 USB Controller: NEC Corporation USB 2.0 (rev 04)
0002:02:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 Internal PCI
0002:02:0d.0 ff00: Apple Computer Inc. UniNorth/Intrepid ATA/100
0002:02:0e.0 FireWire (IEEE 1394): Apple Computer Inc. UniNorth 2 FireWire (rev 81)
0002:02:0f.0 Ethernet controller: Apple Computer Inc. UniNorth 2 GMAC (Sun GEM) (rev 80)

9.3 The memory

The memory is DDR-SDRAM, 128MB are soldered on the mainboard and there is an expansion slot to add memory and upgrade upto 640MB.

9.4 OpenFirmware

At boot press down on Command Option O and F to enter the OpenFirware.

The Macintosh semi-equivalent of a BIOS would be the OpenFirmware boot loader.

Here is a detailled documentation about the openfirmware commands:
Booting Mac OS X

Some extra keyboard shortcuts that may be useful for controlling the boot process are at:

9.5 Nvram

You'll be able to change some hardware settings using nvsetenv (equivalent of the command sudo nvram under MacOSX), and to change the startup volume using nvsetvol.

9.6 The keyboard

New keys

By following the above instructions, you now should have noticed some differences,

The |< key (keycode 96) is called Enter "and smart people remap it to option" (quote from <Stereo>)

Both apple keys are keycode 125

The -\= key (keycode 56) is called Option.

Reconfiguring the console keymap

dpkg-reconfigure console-data
Select keymap from arch list
Select your layout

9.7 The mouse

I do not seem to be able to adapt to a one-button mouse, at least not under linux, but there is an emulation, which we will directly add it to /etc/sysctl.conf (<sourdough>) so that it will be enabled automatically.

# /etc/sysctl.conf - Configuration file for setting system variables
# See sysctl.conf (5) for information.
#kernel.domainname =
dev/mac_hid/mouse_button3_keycode = 125
dev/mac_hid/mouse_button2_keycode = 126
dev/mac_hid/mouse_button_emulation = 1

This map the apple key as a right click and the Fn apple key as a click from the middle button.

The list of keycodes is in /usr/src/linux/include/linux/input.h.
You can also get them by using the showkey command in console.

9.8 Hard Drive


30/40/60GB according to the model, Ultra ATA.

hdparm -I /dev/hda


ATA device, with non-removable media
powers-up in standby; SET FEATURES subcmd spins-up.

        WARNING: ID response incomplete.
        WARNING: Following data may be incorrect.

        Model Number:       iHathc iCI520N04TARM400-                
        Serial Number:      RM2G622KXJTNHB
        Firmware Revision:  OMA2DAA0
        Supported: 14 13 12 11 
        Likely used: 14
        Logical         max     current
        cylinders       65343   0
        heads           4096    0
        sectors/track   16128   0
        device size with M = 1024*1024:  2107703808 MBytes
        device size with M = 1000*1000:  2210087628 MBytes (2210087 GB)
        IORDY(may be)(cannot be disabled)
        Queue depth: 1
        Standby timer values: spec'd by Vendor
        R/W multiple sector transfer: Max = 128 Current = ?
        Advanced power management level: unknown setting (0x8040)
        Recommended acoustic management value: 254, current value: 128
        DMA: not supported
        PIO: unknown
        Master password revision code = 65279
        not     enabled
        not     locked
        not     frozen
        not     expired: security count
        not     supported: enhanced erase
Checksum: correct


You can at any moment check the temperature given by the sensor in your hard drive:
apt-get install hddtemp

pomme:~# hddtemp /dev/hda
WARNING: Drive /dev/hda doesn't appear in the database of supported drives
WARNING: But using a common value, it reports something.
WARNING: Note that the temperature shown could be wrong.
WARNING: See --help, --debug and --drivebase options.
WARNING: And don't forget you can add your drive to hddtemp.db
/dev/hda: Hitachi IC25N040ATMR04-0:  33 C or  F
So leet ... :D

9.9 Fan cooler control

The temperature at which the fan starts are controlled by therm_adt7467

You might notice that it increases load statistics :

(From the debian-ppc mailing list)

iboox:~# uptime
 11:27:37 up 32 min,  1 user,  load average: 1.96, 1.23, 0.77
iboox:~# rmmod therm_adt746x
iboox:~# uptime
 11:37:15 up 42 min,  1 user,  load average: 0.11, 0.56, 0.65

>This is just an artefact due to the way kernel counts daemonized >module cpu usage in the load average. Actually your cpu is not >working that much. >Can you confirm Colin ?

Yes, that's due to the TASK_UNINTERRUPTIBLE flag. It adds 1 to the load average, however it uses very little CPU. Other macintosh's fan drivers show the same behaviour.

Colin Leroy

9.10 What is NOT supported

Airport Extreme cards are not supported yet, because Broadcom does not want to help the creation of a new driver, there are several projects, not only for macs, to reverse-engineer it or to use the windows one using an emulation layer.
Since one can run macosx things under linux (see MOL), doing NAT with Macosx could maybe work. I got lots of email about this sentence, I meant that for once, MOL could be hacked to give MacOSX a direct access to the airport extreme card and thus would make it possible to use it through osx, not matter how ugly and CPU-consumming this would be!

A solution using the windows driver would not work:

Re: Airport Extreme Linux support [was: Apple iBook G4 & GNU/Linux (Debian) compatibility?]
De : Eric Lemoine <Eric.Lemoine@...>
 : mike dentifrice <fluor@...>
CC : Colin Leroy <colin@...>, debian-powerpc@...
Date : Aujourd'hui 11:16:06

ndiswrapper uses the Windows drivers, so there's no luck it'll ever work
for linux/ppc.


Next Previous Contents