Daten|teiler
Kopieren als Kulturtechnik

Free your iBook



Wie Ubuntu “Dapper Drake” auf einem iBook G4 installiert wird.

12. Juli 2007

Warum soll man sich neben einem schönen, komfortablen und unixoiden MacOS X zusätzlich Linux installieren? Für eingefleischte Macianer grenzt das an Schwachsinn, schließlich hat man neben einer tollen grafischen Benutzeroberfläche einen Unix-Unterbau. Nur leider hat MacOS X gegenüber Linux einige entscheidende Nachteile: Linux kostet nichts, es ist frei im Sinne der GPL, für Linux gibt es mehr Software, und man lernt eine Menge über seinen Computer. Da Apple sich nicht dazu durchringen kann, MacOS X unter die GPL zu stellen, muss man sich zwangsläufig nach freien Alternativen umsehen. Sinnvoller Weise installiert man die freie Alternative parallel zu MacOS X, damit man die Hardware des iBooks weiter voll nutzen kann. Ein weiterer Mangel bei MacOS X ist, dass das Programm apt fehlt. Wenn man längere Zeit mit apt gearbeitet hat, kann man nur noch schwer darauf verzichten. Die Ports von OpenDarwin oder das Fink-Projekt sind da leider nur ein schwacher Ersatz.
Letztendlich gibt es aber nur einen guten und plausiblen Grund, GNU/Linux auf einen Mac zu installieren: Einfach, weil man es kann.

Voraussetzungen

Als Betriebssystem habe ich mich für Ubuntu-Linux “Dapper Drake” entschieden, da es auf Debian basiert und die Live-CD nach dem Booten einen soliden Eindruck machte. Aus dem selben Grund kann man sich natürlich auch gleich für das Original entscheiden, für Debian 3.1 “Sarge”, oder besser “Etch”, was ich neben “Dapper” ebenfalls getestet habe. Ethernet, Soundkarte, Touchpad und weitere Hardware wurden auf Anhieb erkannt. Eine Ausnahme bildete die AirportExtreme-Karte, die aber nach ein bisschen Konfiguration tadellos funktioniert. Parallel zu Ubuntu soll MacOS X 10.4 “Tiger” installiert werden. Das iBook G4, hat einen Prozessor mit 1,3 Ghz, 512 MB RAM und eine 80 Gigabyte Festplatte. Oder um es mit GNU/Linux zu sagen:

christian@ibook:~$ cat /proc/cpuinfo
processor	    : 0
cpu		        : 7447A, altivec supported
clock		        : 1333.333000MHz
revision	       : 0.5 (pvr 8003 0105)
bogomips	    : 73.47
timebase	     : 18432000
machine	             : PowerBook6,7
motherboard	  : PowerBook6,7 MacRISC3 Power Macintosh
detected as	    : 287 (iBook G4)
pmac flags	     : 0000001b
L2 cache	      : 512K unified
pmac-generation  : NewWorld

Im Auslieferungszustand ist die gesamte Festplatte des iBooks mit einer Partition belegt. Da Linux parallel zu MacOS X installiert werden soll, muss die gesamte Platte neu partitioniert werden. Das Verkleinern der Partition bringt einige Schwierigkeiten mit sich. Selbstverständlich sollten zuerst Backups angelegt werden, da die Daten auf einer Partition beim Verkleinern irreparabel zerstört werden können.

Partitionieren

Es gibt mehrere Möglichkeiten, die Partition zu verkleinern: Zum einen gibt es für MacOS X die Programme iPartition, Volume Works und Drive Genius, die allerdings alle kostenpflichtig sind. Ansonsten bringt MacOS X keine eigenen Werkzeuge zur Partitionierung mit. Unter Linux kann man die Festplatte mit dem GNU-Tool parted bearbeiten. Da parted Schwierigkeiten mit dem Verkleinern des Journaled HFS+-Dateisystems hat, sollte man das Journal des Dateisystems vorher mit

diskutil disableJournal /

im Terminal von MacOS X deaktivieren. Später kann man es wieder aktivieren:

diskutil enableJournal /

Um parted zu nutzen, booted man von der Live-CD. Dazu wird das iBook neu gestartet. Beim Ertönen des Startakkords die c-Taste solange gedrückt halten, bis die CD bootet. Nach dem Start gibt man in der Shell sudo parted ein. Die Partitionstabelle läßt sich mit dem Befehl “print” anzeigen und sieht zum Beispiel folgendermaßen aus:

Anzahl 	Beginn  End     Size    File system  	Name                  
1       1kB     32kB    32kB    Apple
3       134B    80GB    80GB    hfs+            Apple_HFS_Untitled_4

In diesem Beispiel ist Partition 3 diejenige, die verkleinert werden soll. Das geschieht mit dem Befehl “resize”. Parted fragt dann, wo die Partition mit HFS+ enden soll. Wieder nach 80 Gigabyte? Hier gibt man den neuen Wert ein. Will man zum Beispiel Ubuntu 10 Gigabyte Platz geben, wählt man als neuen Wert 70 Gigabyte aus. Die Partition ist nun vekleinert und parted kann mit “quit” verlassen werden.
Am einfachsten ist es, eine neue Partition anzulegen, indem man MacOS X löscht und neu installiert. Eine Neuinstallation hat den Vorteil, dass man MacOS X wesentlich platzsparender installieren kann, als in der Vorinstallation. So können zum Beispiel alle Sprachpakete weggelassen werden, die man nie brauchen wird, und einiges von der Bundled-Software. Dagegen ist es sinnvoll, X11 gleich zu Beginn zu installieren. Bei der Standardvorgabe wollte MacOS X etwa 11 Gigabyte auf die Festplatte spielen. Nach meinen Änderungen waren es nur noch ca. 3,5 Gigabyte.

Installationen

Für die Neuinstallation von MacOS X braucht man die mitgelieferte Installations-CDs. Wenn die erste CD im iBook eingelegt ist, den Rechner neu starten und wenn am Anfang der Sound ertönt, die c-Taste solange gedrückt halten, bis der Rechner anfängt, von der CD zu booten. Nach dem Booten und der Auswahl der Sprache kann die Platte dann mit dem Festplatten-Dienstprogramm neu partitioniert werden. Zum Beispiel kann man die ersten 10 Gigabyte für die spätere Linux-Installation reservieren und den Rest für MacOS X. Nachdem die Platte aufgeteilt ist, folgt man dem nächsten Schritt und wählt das Zielvolumen, der neuen MacOS X-Partition aus. Im darauffolgenden Schritt kann man unter “Anpassen” die Vorgabe für die Software-Installation verändern. Hier bietet sich dann die Möglichkeit, Sprachpakete und andere unnütze Datein von der Installation auszuschließen. Nach etwa 30 Minuten ist MacOS X “Tiger” wieder installiert.
Nach dem Neustart legt man dann die CD mit der PPC-Version von Ubuntu “Dapper Drake” ein, die man zuvor von Ubuntuusers.de oder mit

wget -c http://ubuntu.intergenia.de/releases/6.06.1/ubuntu-6.06.1-
alternate-powerpc.iso

herunter geladen hat. Achtung: Man braucht die Alternate-CD für die Installation, nicht die Desktop-(Live-)CD. Die Installation mit dem Live-Installer schlägt fehl, da man mit ihm keine NEWWorld-Bootpartition anlegen kann, und es erscheint die Fehlermeldung:

No NewWorld boot partition was found. The yaboot boot loader requires an Apple_Bootstrap partition at least 819200 bytes in size, using HFS Macintosh file system.

Allerdings scheint die Installation mit dem graphischen Installer zu funktionieren, wenn man Ubuntu nicht parallel installieren will, sondern die ganze Festplatte für die Installation von “Dapper” benutzt. Das wurde von mir allerdings nicht getestet. Das ISO-Image für die Netzinstallation von Debian kann von der Debian-Seite heruntergeladen werden. Dabei empfiehlt sich für die Installation natürlich Bandbreite, weil vieles aus dem Internet nachgeladen werden muss. Für das iBook kann man auch sehr gut die experimentelle Version “Testing” verwenden, die auch “Etch” heißt, wenn man sich schon etwas mit Gnu/Linux und der Debian-Philosophie auskennt, da sie den aktuellen Kernel enthält, der Treiber für die Broadcom-Karte BCM4318, also für AirportExtreme mitbringt.
Um von der CD zu booten, muss nach dem Neustart wieder die c-Taste länger gedrückt werden. Am Bootprompt gibt man “Install” ein und das Abenteuer beginnt. Während der Installation sollte man eine aktive Netzwerkverbindung haben, damit der Installer das Netzwerk gleich konfigurieren kann. Sobald man an den Punkt der Partitionierung angelangt ist, wählt man das “manuelle Partitionieren” aus. Auf der Linux-Partition müssen insgesamt 3 Partitionen anlegt werden. Zuerst eine etwa 1 Megabyte große NEWWorld-Bootpartiton, für den Bootloader yaboot mit dem Dateisystem HFS, dann eine 256 Megabyte große Swap-Partition und der Rest wird das Root-Verzeichnis und mit dem Ext3-Dateisystem formatieren. Die Installation kann nun beginnen.
Nach dem Neustart bietet der Bootloader yaboot an, Linux zu starten, indem man die l-Taste für L wie Linux drückt, oder die x-Taste für MacOS X. Wenn keine Taste gedrückt wird, startet automatisch Linux, was man später aber noch ändern kann.

Konfiguration

“Dapper Drake” unterstützt die Hardware des iBooks schon recht gut, vor allem unter Gnome. Doch auch mit KDE macht es einen soliden Eindruck. Auf Anhieb funktioniert die interne Netzwerkkarte, der Suspend-Modus, Sound, USB und Bluetooth. Wer es nicht glaubt, kann in der Konsole nach Bluetooth-Geräten scannen. Dafür sollte das Paket bluez-utils installiert sein:

christian@ibook:~$ hcitool scan
Scanning ...
00:0E:6D:10:1D:B6   Nokia 6310i
00:05:7A:01:A3:80   Airbus A380

In Gnome werden außerdem die Sondertasten ohne jede weitere Konfiguration sofort unterstützt. Durch gleichzeitiges Drücken der Funktionstaste “fn” mit F1 oder F2 kann die Helligkeit eingestellt werden. Drückt man die fn-Taste mit F3 bis F5, kann man die Lautstärke einstellen. Zusammen mit F6 aktiviert “fn” den Nummernblock und zusammen mit F12 wird eine eingelegte CD ausgeworfen. Ansonsten wird die Tastatur des iBooks leider nicht richtig unterstützt. Das Keymap ist dasjenige einer PC-Tastatur, sprich, das @-Zeichen bekommt man mit Apfeltaste und Q, was auf dem PC Alt-Gr und Q entsprechen würde, und so weiter. Die gute Nachricht ist, dass “fn” und Backspace zusammen gedrückt, die Delete-Taste entsprechen, sowie unter MacOS X. Die Einstellungen in der Datei /etc/X11/xorg.conf sehen folgendermaßen aus:

Section "InputDevice"
	Identifier	"Generic Keyboard"
	Driver		"kbd"
	Option		"CoreKeyboard"
	Option		"XkbRules"	"xorg"
	Option		"XkbModel"	"pc105"
	Option		"XkbLayout"	"de"
	Option		"XkbVariant"	"nodeadkeys"
        Option          "XkbOptions"    "lv3:lwin_switch"
EndSection

Im Gegensatz zu KDE ist bei Gnome der Suspend nicht voreingestellt, kann aber unter “Einstellung | Energieverwaltung” für Netz- und Akkubetrieb aktiviert werden. Unter “Aktionen | Wenn die Laptop-Klappe geschlossen wird” wählt man den Menüpunkt “Standby”, wie in der Abbildung. Wichtig für die Belegung der Funktions- und Sondertasten ist das Paket pbbuttonsd und für die Energieverwaltung gnome-power-manager. Sollte beides auf Anhieb nicht funktionieren, so wie es bei Debian “Etch” der Fall ist, sind die Pakete vermutlich nicht installiert. Das lässt sich leicht beheben mit einem:

apt-get install pbbuttonsd gnome-power-manager

Nach dem Neustart des X-Servers, bzw. des iBooks ist die Unterstützung dann vorhanden. Die anderen Geräte sind etwas schwieriger zu konfigurieren.

Suspend einstellen

Die Maus

Das Touchpad funktioniert zwar auf Anhieb, der Mauszeiger ist aber sehr langsam. Wird dagegen eine USB-Maus angeschlossen, funktioniert sie einwandfrei. Damit der Mauszeiger des Touchpads sich wie gewohnt verhält, muss die Konfigurationsdatei “/etc/X11/xorg.conf” im Abschnitt “InputDevice” wie folgt geändert werden:

Section "InputDevice"
        Identifier "Synaptics Touchpad"
        Driver "synaptics"
        Option "SendCoreEvents" "true"
        Option "Device" "/dev/input/mice"
        Option "Protocol" "auto-dev"
        Option "LeftEdge" "0"
        Option "RightEdge" "850"
        Option "TopEdge" "0"
        Option "BottomEdge" "645"
        Option "MinSpeed" "0.4"
        Option "MaxSpeed" "1"
        Option "AccelFactor" "0.03"
        Option "FingerLow" "55"
        Option "FingerHigh" "60"
        Option "MaxTapMove" "20"
        Option "MaxTapTime" "100"
        Option "TapButton1" "0"
        Option "TapButton2" "3"
        Option "TabButton3" "2"
        Option "HorizScrollDelta" "10"
        Option "VertScrollDelta" "30"
        Option "SHMConfig" "on"
EndSection

Nach dem Neustart des X-Servers, oder des iBooks, funktioniert der Mauszeiger wieder wie gewohnt. Leider werden das Scrollen mit zwei Fingern und der Rechtsklick nicht unterstützt. Die mittlere und rechte Maustaste können aber mit den Tasten F10 und F11 emuliert werden. Dazu muss man in der Datei “/etc/sysctl.conf” die folgenden Einstellungen ändern:

# Emulate the middle mouse button with F10 and the right with F11.
dev/mac_hid/mouse_button_emulation = 1
dev/mac_hid/mouse_button2_keycode = 68 # F10
dev/mac_hid/mouse_button3_keycode = 87 # F11

Der Bootmanager

Der Bootmanager yaboot wird über die Datei “/etc/yaboot.conf” konfiguriert. Eine mögliche Konfiguration könnte übrigens so aussehen:

boot=/dev/hda5
device=/pci@f4000000/ata-6@d/disk@0:
partition=3
root=/dev/hda3
timeout=100
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
enablecdboot
macosx=/dev/hda7
defaultos=macosx

image=/boot/vmlinux
        label=Linux
        read-only
        initrd=/boot/initrd.img
        initrd-size=8192

Die erste Zeile verweist auf die NEWWorld-Bootpartition auf “/dev/hda5″, wo der Bootmanager gespeichert ist. Das Root-Verzeichnis der Linux-Installation ist auf “/dev/hda3″ und MacOS X auf “/dev/hda7″. Wenn standardmäßig zuerst MacOS X anstatt Linux gestartet werden soll, muss es als “defaultos” eintragen werden. Nachdem die Änderungen gespeichert wurden, kann man sie mit sudo ybin gleich übernehmen, so dass sie beim nächsten Booten angewandt werden. Ohne die Ausführung von ybin bleiben die Änderungen wirkungslos.

fstab

Die Datei fstab sollte ein wenig angepasst werden. Zum Beispiel habe ich bei meiner Linuxpartition “/dev/hda3″ zu den Optionen “noatime” hinzugefügt. Das verhindert, dass bei jedem Zugriff die Zugriffszeit gesetzt wird. Dadurch sollte die Festplatte seltener anspringen, was energiesparender ist. Dieselbe Option habe ich auch bei meiner Mac-Partition “/dev/hda7″ hinzugefügt. Außerdem soll die HFS+-Partition mit Lese- und Schreibrechten (“rw”) vom Benutzer (“users”) gemountet werden können, doch nicht automatisch beim Systemstart (“noauto”), sondern manuell nach “/media/macos”. Dazu muss der Ordner “/media/macos” allerdings noch angelegt werden, am besten auf der Konsole mit dem Befehl

sudo mkdir /media/macos

Als Beispiel folgt meine “/etc/fstab”, die allerdings ein bisschen zusammengestaucht ist, damit sie ins Feld passt:

proc           /proc    proc          defaults 0  0
/dev/hda3   /          ext3          defaults,errors=remount-ro,noatime 0  1
/dev/hda4   none    swap         sw 0  0
/dev/hdc     /media/cdrom0  udf,iso9660  user,noauto  0  0
/dev/hda7   /media/macos   hfsplus 	   rw,users,noauto,noatime 0  0

HFS+ schreibbar

Der Linux-Treiber für das Apple-Dateissystem HFS+ kann leider nicht auf das Journaled File System schreiben. Daher muss die Option Journaled unter MacOS X deaktiviert werden. Das geht am besten im Terminal mit:

sudo diskutil disableJournal /Volumes/<Dein Volume Name>

Airport Extreme

Die Konfiguration von Airport Extreme gestaltet sich ein wenig schwieriger, da die WLAN-Karte einen Chipsatz von Broadcom besitzt, für den es lange Zeit keine freien Treiber für Linux gab. Durch Reverse Engineering versucht das Broadcom 43xx-Projekt, das Problem zu beheben. Um zu schauen, welcher Broadcom-Chipsatz im iBook verbaut ist gibt man lspci | grep Broadcom\ Corporation in die Konsole ein und erhält:

christian@ibook:~$ lspci | grep Broadcom\ Corporation
0001:10:12.0 Network controller: Broadcom Corporation BCM4318 
   [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)

Sollte keine Karte angezeigt werden, WLAN mit MacOS aber funktionieren, würde ich trotzdem die folgenden Schritte ausführen. In der Regel sind im iBook G4 entweder der Chipsatz BCM4306 oder der BCM4318 verbaut, wobei die Karte BCM4306 auf Anhieb unterstützt werden sollte. Die Airport Extreme-Karte BCM4318 muss noch konfiguriert werden. Dapper Drake wird zwar mit dem Treiber für diese WLAN-Karte ausgeliefert, aus rechtlichen Gründen aber nicht mit der Firmware, weswegen die Karte nicht ohne weiteres benutzt werden kann.
Bevor man die Firmware installiert, sollte man beachten, dass die Karte mit “Edgy Eft” und dem Kernel 2.6.17 zuverlässiger funktioniert als mit Dapper und Kernel 2.6.16. Seit “Feisty Fawn” und dem Kernel 2.6.20 funktioniert die Karte übrigens out of the box. Noch während man die Software für die Karte installiert, wird die Firmware automatisch über das Netz gezogen und man hat keine weitere Arbeit mehr damit, so wie es noch in der Vorgängerversion der Fall war und es weiter unten beschrieben ist. Um WPA unter “Feisty” zu benutzen muss man nur den Anweisungen im Artikel Kabellos glücklich bei Ubuntu@MacVillage folgen. Dagegen funktionierte die Karte unter “Dapper” bei mir nur manchmal. Ein Update auf “Feisty” würde sich in dieser Hinsicht also richtig lohnen. Außerdem darf das Programm Wifi-Radar nicht installiert sein, da es einen Treiberkonflikt mit dem BCM43xx-Treiber hat.
Um die Firmware aus dem proprietären Treiber für “Dapper” und “Edgy” extrahieren zu können, braucht man das Programm bcm43xx-fwcutter aus dem Universe-Repository. Installiert werden kann es mit:

sudo apt-get install bcm43xx-fwcutter

Die Firmware wird aus der Datei “AppleAirPort2″ extrahiert. Sie liegt in MacOS X im Verzeichnis

/System/Library/Extensions/AppleAirPort2.kext/Contents/MacOS

Am besten kopiert man sich die Datei auf den Desktop von Ubuntu und startet das Programm bcm43xx-fwcutter mit folgendem Befehl:

sudo bcm43xx-fwcutter -w /lib/firmware ~/Desktop/AppleAirPort2

Nun wird ein Haufen neuer Dateien im Verzeichnis “/lib/firmware” erstellt. Danach ist die Karte einsatzbereit. Um die Umgebung nach vorhandenen WLANs zu scannen, muss zuerst der Treiber geladen werden:

sudo modprobe bcm43xx

Das folgende Kommando braucht man, um eine Verbindung herzustellen,

sudo ifconfig eth0 up

um dann mit

sudo iwlist eth0 scan

nach vorhanden Netzwerken zu scannen:

christian@ibook:~$ sudo iwlist eth0 scan
eth0      Scan completed :
          Cell 01 - Address: 00:0E:2E:6F:E9:ED
                    ESSID:"kabellos"
                    Protocol:IEEE 802.11bg
                    Mode:Master
                    Channel:9
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
                    Quality=100/100  Signal level=-50 dBm  
                    IE: WPA Version 1
                        Group Cipher : TKIP 
                        Pairwise Ciphers (1) : TKIP 
                        Authentication Suites (1) : PSK  
                    Extra: Last beacon: 124ms ago
          Cell 02 - Address: 00:04:0E:26:B5:EE
                    ESSID:"Fritz!Box SL WLAN"
                    Protocol:IEEE 802.11bg
                    Mode:Master
                    Channel:1
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
                              11 Mb/s; 12 Mb/s; 18 Mb/s; 22 Mb/s; 24 Mb/s
                              36 Mb/s; 48 Mb/s; 54 Mb/s
                    Quality=100/100  Signal level=-75 dBm  
                    Extra: Last beacon: 328ms ago
          Cell 03 - Address: 00:15:0C:1F:A7:F3
                    ESSID:"FRITZ!Box WLAN 3030"
                    Protocol:IEEE 802.11bg
                    Mode:Master
                    Channel:6
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
                              11 Mb/s; 12 Mb/s; 18 Mb/s; 22 Mb/s; 24 Mb/s
                              36 Mb/s; 48 Mb/s; 54 Mb/s
                    Quality=100/100  Signal level=-75 dBm  
                    Extra: Last beacon: 208ms ago
          Cell 04 - Address: 00:12:BF:43:BD:02
                    ESSID:""
                    Protocol:IEEE 802.11bg
                    Mode:Master
                    Channel:13
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
                              11 Mb/s; 12 Mb/s; 18 Mb/s; 22 Mb/s; 24 Mb/s
                              36 Mb/s; 48 Mb/s; 54 Mb/s
                    Quality=100/100  Signal level=-67 dBm  
                    Extra: Last beacon: 3724ms ago

Wenn man als Verschlüsselung WEB an seinem Accesspoint gewählt hat, muss man noch den ESSID-Namen und den Key in der Datei /etc/network/interfaces eintrage:

iface eth0 inet dhcp
wireless-rate 11M
wireless-essid OhneKabel
wireless-key 1234-5678-9abc-def0-1234-5678-9a
pre-up ifconfig eth0 up

Nachdem man alles konfiguriert hat, kann man dann mit folgendem Skript startwlan das WLAN starten:

#!/bin/bash
if [ "$1" == --help ]
then
  echo "Listing of ESSID's"
  # Lists the availble ESSIDs
       iwlist  scan | grep ESSID
  echo "Likely interface: "
  # Grabs the name of the interface that succefully scanned
  iwlist scan | grep completed | sed "s/Scan\scompleted\s://g"
  echo "++++++++++++++++++++++++++++++++++++++ "
  echo "Usage: startwlan [interface] [essid]  "
  echo "Pick one of the above interface and essid's"
  echo "use the interface that had the essids"
  echo "++++++++++++++++++++++++++++++++++++++ "
  exit
fi
if [ -z $2 ] ; then
        myEssid=OhneKabel   # Enter here your ESSID !!!
else
        myEssid=$2
fi

if [ -z $1 ] ; then
        myInterface="eth0"   # typically eth0 but may be something else
else
        myInterface=$1
fi

echo "Bringing network down"
sudo ifconfig $myInterface down &>/dev/null
echo "Bringing network back up"
sudo ifconfig $myInterface up &>/dev/null
echo "Changing to $myEssid"
sudo iwconfig $myInterface essid $myEssid &>/dev/null
echo "Changing to rate to 11M"       
# this isn't always necessary but helps for Broadcom 4318 cards

sudo iwconfig $myInterface rate 11M &>/dev/null     
# if your having issue getting connected to a network
echo "acquiring IP"
sudo dhclient $myInterface

Nachdem man das Skript abgespeichert hat, muss es natürlich ausführbar gemacht werden:

chmod 755 startwlan

Wenn man bei “myEssid” das eigene WLAN und unter “myInterface” das korrekte Interface, z.B. eth0 eingetragen hat, kann man das Skript mit “sudo ./startwlan” starten. Andernfalls kann man die ESSID und das Interface als Argumente übergeben:

sudo ./startwlan eth0 WLAN_ESSID

Wenn man sich immer mit demselben WLAN verbinden will und man ESSID und Interface korrekt eingetragen hat, kann man das Skript automatisch beim Hochfahren des Rechners ausführen lassen. Dazu muss noch folgendes im Terminal eingegeben werden:

sudo cp startwlan /etc/init.d/startwlan
sudo update-rc.d startwlan start 20 2 .

Troubleshooting

Sollte beim Extrahieren der Firmware folgende Fehlermeldung erscheinen,

Sorry, the input file is either wrong or not supported by fwcutter.
I can't find the MD5sum 70f65f5cbc769d6a32bc507342ee0fab :(

kann man sich den Treiber wl_apsta.o herunterladen, von dem das englischsprachige “How to: Broadcom Wireless cards without Ndiswrapper” meint, dass man diesen Treiber bevorzugt vor allen anderen benutzen sollte. Allerdings weiß ich nicht, ob das auch für iBooks gilt. Bei mir hat der Treiber jedoch recht gut funktioniert. In der Konsole kann man die Datei mit dem Programm wget direkt auf den Desktop herunterladen.

wget http://drinus.net/airport/wl_apsta.o && mv wl_apsta.o ~/Desktop

Die Firmware installiert man ähnlich wie in der ersten Variante:

sudo bcm43xx-fwcutter -w /lib/firmware ~/Desktop/wl_apsta.o

Um sicher zu gehen, kann man sich die Firmware zusätzlich ins Kernel-Verzeichnis installieren. Dazu muss man ersteinmal die Bezeichnung seines Kernels herausfinden mit

christian@ibook:~$ uname -r
2.6.15-25-powerpc

Die Ausgabe des Befehls, in diesem Fall die Bezeichnung des Kernels, kann man im nächsten Schritt, in dem wieder das Programm bcm43xx-fwcutter ausführt, weiter verwenden:

sudo bcm43xx-fwcutter -w /lib/firmware/`uname -r` ~/Desktop/wl_apsta.o

Sollte die Installation von Airport Extreme immer noch nicht geklappt haben, gibt es noch eine dritte Möglichkeit, sich die Firmware zu besorgen. Dazu lädt man eine Zip-Datei herunter, die verschiedene Treiber für das Notebook Acer Aspire enthält. Nach dem Entpacken hat man einen Ordner mit dem Namen “80211g”. Darin befindet sich die Datei bcmwl5.sys mit der Firmware für die WLAN-Karte von Broadcom. Auf der Konsole kann man die ganze Aktion so beschreiben:
Zuerst muss die Datei herunter geladen werden. Dazu schreibt man in einer Zeile:

wget ftp://ftp.support.acer-euro.com/notebook/aspire_3020_5020
    /driver/80211g.zip

Das Archiv wird dann mit dem Programm unzip entpackt und die Datei bcmwl5.sys auf den Desktop kopiert.

unzip 80211g.zip && cp ./80211g/bcmwl5.sys ~/Desktop

Zum Schluss wird die Firmware mit bcm43xx-fwcutter extrahiert:

sudo bcm43xx-fwcutter -w /lib/firmware ~/Desktop/bcmwl5.sys

Zur Sicherheit kann man auch hier die Dateien ein weiteres Mal in das Kernel-Verzeichnis kopieren, bzw. extrahieren. Die Airport Extrem-Karte sollte nun installiert sein.
Die Grundlage für diesen Abschnitt bildet übrigens der Artikel Using Broadcom Wireless in Ubuntu Dapper 6.06 aus dem englischen Ubuntuforum, aus dem auch das Skript startwlan stammt, dass dort aber getit genannt wird. Bei dieser Anleitungen ist aber immer im Hinterkopf zu behalten, dass “eth0″ die Airport Extreme-Karte ist und “eth1″ die Netzwerkkarte im iBook bezeichnet. Bei PCs gelten bei PCI-Karten andere Bezeichnungen.

Exkurs: WPA-Verschlüsselung einrichten

Zur Einrichtung eines WLANS mit WPA-Verschlüsselung muss man zuerst das Paket wpasupplicant installieren.

sudo apt-get install wpasupplicant

Nach der Installation wird die Datei “/etc/wpa_supplicant.conf” von Hand angelegt mittels der Eingabe von:

sudo touch /etc/wpa_supplicant.conf

Danach erzeugt man einen verschlüsselten PSK:

sudo wpa_passphrase <SSID des Netzes> <WPA Schlüssel>

Bei der Eingabe sollten die eckigen Klammern weggelassen werden. Zum Beispiel

sudo wpa_passphrase OhneKabel MeinPasswort

und das Ergebnis sieht dann so aus

network={
        ssid="OhneKabel"
        #psk="MeinPasswort"
        psk=b207f956d6c8262125076767e21... etc.
}

und wird in die Datei “/etc/wpa_supplicant.conf” eingetragen. Hier folgt ein Beispiel:

# Minimale /etc/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=2
network={
ssid="OhneKabel"
proto=WPA
scan_ssid=1
key_mgmt=WPA-PSK
pairwise=TKIP
group=TKIP CCMP
psk=b207f956d6c8262125076767e21... etc.
}

Nun wird die Datei “/etc/default/wpasupplicant” bearbeitet:

# /etc/default/wpasupplicant
ENABLED=1
OPTIONS="-w -i eth0 -D wext -c /etc/wpa_supplicant.conf -B"

Ganz wichtig: “Enabled” muss auf den Wert 1 gesetzt sein. Der Gerätename für die WLAN-Karte ist beim iBook “eth0″ und der passende Treiber dazu ist ab Kernel > 2.6.14 “wext”, da in den neueren Kerneln die WPA/WPA2-Unterstützung im Rahmen der Wireless Extension direkt in den Kernel aufgenommen wurde.
Damit der wpasupplicant bei jedem Systemstart geladen wird, kann man eine Verküpfung in den Ordner “/etc/init.d/” legen

sudo ln -s /etc/default/wpasupplicant /etc/init.d/wpasupplicant

und sie bei Bedarf ausführbar machen:

sudo chmod 755 /etc/init.d/wpasupplicant

Der wpasupplicant kann auch manuell mit

sudo /etc/init.d/wpasupplicant {start|stop|restart}

gestartet und gestoppt werden.
Damit der Karte eine IP-Adresse zugewiesen wird und damit das beim Starten des Rechners automatisch passiert, muss folgendes in die Datei “/etc/network/interfaces” eintragen werden:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth1
iface eth1 inet dhcp

# WLAN
auto eth0
iface eth0 inet dhcp
pre-up /sbin/wpa_supplicant -D wext -i eth0 -c /etc/wpa_supplicant.conf -Bw
post-down killall -q wpa_supplicant
wireless-essid OhneKabel

Laut Martin Henzes WPA with IPW2200 on Ubuntu Dapper Drake soll man übrigens darauf achten, dass nicht mehr als zwei Schnittstellen mit DHCP konfiguriert sind.
Zum Schluß teilt man noch dem IPW3945-Treiber in der Datei “/etc/modprobe.d/ipw3945″ mit, dass die Verschlüsselung des Netzwerkes zukünftig vom Kernel gemanaged wird:

options ipw3945 hwcrypto=0

Nach einem Reboot steht das mit WPA verschlüsselte WLAN zur Verfügung.

Einen externen Monitor am DVI-Port anschließen

Um einen externen Monitor anschließen zu können, muss man die Datei “/etc/X11/xorg.conf” um den Eintrag “Radeon_Clone” erweitern. Außerdem sollte UseFBDev deaktiviert sein, da es mit externen Monitoren nicht umgehen kann. Am besten wird es deaktiviert, indem man in der Datei “xorg.conf” folgenden Eintrag löscht:

Option      "UseFBDev"      "true"

Statt dessen aktiviert man MergedFB. Eine geänderte “xorg.conf” könnte folgendermaßen aussehen, die Eintragungen macht man am besten nach der gelöschten Zeile, in der mal UseFBDev stand:

Section "Device"
   Identifier   "ATI Technologies, Inc. M11 NV [FireGL Mobility T2e]"
   Driver      "ati"
   BusID      "PCI:0:16:0"
   #Gelöscht: --> # Option      "UseFBDev"      "true"
   # Diese Änderungen sind von mir hinzugefügt:
   Option "UseFWPLL" "true"
   Option "MergedFB" "true"                      
   Option "AGPMode" "4"
EndSection

Section "Device"
   Identifier "radeon_clone"
   Driver "radeon"
   Option "DDCMode" "true"
   Option "CloneMode" "1280x1024" # "1024x768"
   Option "MetaModes" "1280x854-1024x768 1024x768-1024x768 800x600-800x600"
   Option "CRT2HSync" "31.5-80"
   Option "CRT2VRefresh" "56.3-75"
   Option "CRT2Position" "Clone" 
EndSection
   # Hier sind die Änderungen zu Ende.

Section "Monitor"
   Identifier   "COLOR LCD"
   Option      "DPMS"
   HorizSync 28-49         # Ist von mir eingefügt.
   VertRefresh 43-72       # Dto.
EndSection

Sinnvollerweise sollte man von der “xorg.conf” vorher ein Backup anlegen, damit man sie jederzeit in der Kommandozeile wieder überschreiben kann, sollte die Konfiguration des X-Servers fehlschlagen.
Nach dem Neustart des iBooks oder des X-Servers kann man das Monitorbild des iBooks mit Hilfe des (optionalen) DVI-Adapters auf einem externen LCD-Monitor anzeigen (spiegeln) lassen. Da es sich hierbei nur um einen Mirroring Modus handelt, kann die Auflösung auch nicht höher als die vom internen Monitor des iBooks eingestellt werden, nämlich 1024×780 Punkte.
Kurioserweise werden keine Videos auf dem externen Monitor angezeigt. Während das Video auf dem Bildschirm des iBooks mit Totem oder VLC zu sehen ist, zeigt der externe Monitor nur eine schwarze Fläche.
Das Problem hier ist, dass die XV-Beschleunigung (XV-acceleration) nicht mehrere Monitore unterstützt. Daher muss man zwischen dem internen und externen Monitor wechseln, wenn man auf dem externen Monitor ein Video sehen will. Das macht man mit dem Programm xvattr aus dem Universe-Repository:

sudo apt-get install xvattr

Zum externen Monitor kann man dann mit folgendem Befehl wechseln:

xvattr -a XV_SWITCHCRT -v 1

Und zurück zur alten Ansicht geht es mit:

xvattr -a XV_SWITCHCRT -v 0

Diesen Tipp habe ich übrigens von Thias’ Home — Installing Ubuntu on iBook.
Spontan fällt mir dazu ein kleines Skript ein, damit man nicht ständig einen langen Befehl eingeben muss, um zwischen den Monitoren zu wechseln:

#!/bin/sh 
# Name:   chgmon (change monitor)
# Usage:  ./chgmon [0|1]

case "$1" in
0) xvattr -a XV_SWITCHCRT -v 0
;;
1) xvattr -a XV_SWITCHCRT -v 1
;;
*) echo "Usage: type './chgmon 0' or './chgmon 1'."
;;
esac

Nachdem man mit einem “chmod 755 chgmon” die Besitzrechte geändert hat, kann es mit “./chgmon 0″ oder “chgmon 1″ ausführen, auch während ein Video läuft.

Multimedia: Videos gucken und MP3s hören

Für Videos gibt es das Programm Totem, das auch MP3s abspielen kann. Leider ist Totem um unfreie Codecs beschnitten, die man sich nachträglich aus den Repositories installieren kann. Repositories sind die riesigen Softwarearchive von Ubuntu im Internet. Allerdings liegt die Software in den Universe- und Multiverse-Quellen, die nicht standardmäßig freigeschaltet sind. Wie man die aktiviert, zeigt der Artikel Paketquellen freischalten auf Ubuntuusers.de.
Nachdem man die Paketquellen mit Hilfe von Synaptic oder durch das editieren der Datei “/etc/apt/sources.list” freigeschaltet hat, installiert man folgende Pakete am besten wieder mit einem Befehl auf der Konsole. Wer mag, kann natürlich Synaptic benutzen.

sudo apt-get install totem-xine libxine-extracodecs 
   totem-xine-firefox-plugin libquicktime0

Trotzdem fehlt immer noch die Möglichkeit, DVDs zu gucken. Dieser Codec befindet sich in den inoffiziellen Debian-Paketen von Debian-Multimedia. Zuerst muss man die Paketquellen der Datei “/etc/apt/sources.list” hinzufügen,

deb http://honk.sigxcpu.org/linux-ppc/debian/ mplayer/
deb-src http://honk.sigxcpu.org/linux-ppc/debian/ mplayer/

dann wird der GPG-Key installiert:

wget http://honk.sigxcpu.org/misc/sigxcpu-archive-key.gpg
sudo apt-key add sigxcpu-archive-key.gpg
sudo apt-get update

Danach hat man die Möglichkeit, eine library zu installieren, die das Gucken von DVDs ermöglicht, die mit dem css-Verfahren verschlüsselt sind. Ob eine Anleitung zur Installation dieser Bibliothek in Deutschland rechtmäßig ist, ist meines Wissens unklar, weshalb ich hier mal nicht näher auf die Installation eingehen möchte. Näheres zu der rechtlichen Problematik und zum Paket selbst kann man im Wikipediaartikel libdvdcss erfahren.
MP3-Unterstützung bietet das Paket libmad0, das man noch installieren muss, um mit totem-xine MP3s zu hören.
Ein weiterer MP3-Player für UNIX ist XMMS, das um viele Plug-Ins erweiterbar ist. Zur Installation von XMMS reicht:

sudo apt-get install xmms-mad 

Wenn man aus MP3s Musik-CDs brennen will, sollte man sich das Programm K3B mit seinen vielfältigen Einstellungsmöglichkeiten installieren. Die wichtigsten Pakete für die Installation sind:

sudo apt-get install k3b libk3b2-mp3 k3b-i18n

Ext3-Dateisystem unter MacOS X lesen

Auch unter MacOS X kann man das Zusammenspiel mit Linux verbessern: Falls man unter MacOS X ein ext2- oder ext3-Dateisystem mounten möchte, was sich empfiehlt, da man eine Partition mit Linux belegt hat, sollte das Paket ext2fsx installiert werden. Das Paket ist eine DMG-Datei, die mit einem einfachen Doppelklick geöffnet wird. Anschließend muss der Rechner neu gestartet werde.

Linux wieder vom iBook entfernen

Um Ubuntu wieder vom iBook zu entfernen, sollte man zuerst den Bootloader yaboot löschen. Dazu muss man in den Systemeinstellungen den Eintrag Startvolumen anklicken. Hier muss dann der Eintrag “Mac OS X auf: xy” ausgewählt werden. Xy steht dabei für die Bezeichnung des Volumens, auf dem MacOS installiert ist. Nach der Auswahl auf Neustart klicken und MacOS bootet wieder wie gewohnt.
Mit der angelegten Partition für Ubuntu kann man dann verfahren, wie man will. Entweder formatiert man sie als Dos-Partition im vfat-Format, das heißt als FAT32, um Daten mit der Windows-Welt auszutauschen, oder man formatiert sie als HFS+-Partition für den Mac.
Ein weitere Möglichkeit, die Platte zu partitionieren, ist das Programm pdisk. Es wird folgendermaßen aufgerufen:

ibook:~ christian$ sudo pdisk /dev/disk0  
Edit /dev/disk0 -
Command (? for help): h
Commands are:
  C    (create with type also specified)
  c    create new partition (standard type)
  d    delete a partition
  h    help
  i    initialize partition map
  n    (re)name a partition
  P    (print ordered by base address)
  p    print the partition table
  q    quit editing
  r    reorder partition entry in map
  s    change size of partition map
  t    change a partition's type
  w    write the partition table
Command (? for help): 

Ich könnte mir vorstellen, dass man die Linux-Partition zuerst mit HFS+ formatiert, um sie dann in pdisk mit “d” zu löschen und mit “s” zusammenzuführen. Das ist von mir aber noch nicht getestet worden, weil ich Linux auf meinem iBook behalten will. ;-)
Allerdings hatte ich bei dieser Spielerei meinen Bootmanager deaktiviert, das heißt, beim Booten wurde automatisch MacOS X geladen und Linux stand nicht mehr zur Auswahl. Um den alten Zustand wieder herzustellen habe ich das iBook neu gestartet und dabei die “Optionstaste” (was die Alt-Taste ist) gedrückt gehalten. Danach wird man gefragt, welches Betriebssystem man booten möchte, MacOS oder Linux. Nach dem Einloggen in Ubuntu ruft man das Gnome-Terminal auf und gibt folgendes ein:

sudo ybin

Und schon fragt beim nächsten Start wieder yaboot, ob man Linux oder MacOS oder vom CD-Laufwerk starten möchte.

Links

Installing Ubuntu on iBook — Sehr informative englisch-sprachige Seite mit Tipps zur Installation und Konfiguration.

Airport Extreme Lives in Linux — Eine weitere Anleitung, wie man die AirportExtreme Karte in Dapper zum Leben erweckt.

Threads in Forum : Macintosh/Apple/PPC Users — Das Forum für Macintosh/Apple/PPC bei ununtuforums.org.

iBook G4 — ist ein Einstieg in die Installation und Konfiguration von Debian Gnu/Linux auf dem iBook G4.

del.icio.us/imhorst74/ibook — alle meine Links zum Thema bei Del.icio.us auf einen Blick.