Matthias Schmidt
|
 |
|
|
Linux auf einem Apple Powerbook 12"
In diesem HOWTO beschreibe ich die Installation von Linux auf einem Apple
Powerbook 12".
Letztes Update
Tue Apr 25 12:26:11 CEST 2006
Kontakt
GnuPG public key
matthias.asc
Hardware
|
0. Generelles
Da bei Apple einiges anderes ist als bei einem x86-kompatiblen Rechner, muss man
sich ersteinmal an ein paar neue Dinge gewöhnen. Dazu gehört zum einen die
Tastatur und das Dateisystem.
0.1 Akku
Das wichtigste zuerst, der Akku. Laut Herstellerangabe soll er bis zu 5 Stunden halten, dies
kann ich aus eigener Erfahrung nicht bestätigen. Unter OS X hat er gerade mal 2.5 Stunden gehalten,
dann war Schicht im Schacht. Unter Linux hingegen hielt der Akku dagegen ca. 3.5 Stunden unter
Vollast (4 x Kernel compilen, 4 x rebooten, n x make ;). Im Normalbetrieb lief der Laptop
je nach Anwendungsart 4 bis 4.5 Stunden.
0.2 Wärmeabgabe
Also im Winter bekommt man zumindest beim Hacken mit dem PB 12" keine kalten Finger :) Der
Laptop hat zwar einen aktiven Lüfter, der sehr sehr leise ist, benutzt aber das
Alu-Gehäuse als passiven Kühlkörper, was eine enorme Wärmeabgabe
mit sich bringt. Fazit: Das Gehäuse wird warm, was aber IMO nicht sehr störend ist.
Ich habe jetzt einige Messungen durchgeführt:
Chassis-Temperaturen
|
|
Normalbetrieb: ca. 25 Grad Celsius
Kernel übersetzen: ca. 27-30 Grad C.
|
0.3 Wichtige Tasten
Wichtige Tasten
|
- Der "Affengriff" bei Apple ist: [Apfel] + [ctrl] + [Einschalter]
- Die "Command Taste" ist [Apfel]"
- Die "Option Taste" ist [alt]
|
1. Mac OS X
1.1 Installation von Mac OS X
Ein Akt sondergleichen ... nein Spass beseite ... es scheint ein Problem der neuen 12"
Powerbooks zu sein: Diese wollen par tout nicht von der Mac OS X DVD sowie CD booten.
Ich habe mehrmals
versucht von der mitgelieferten Software-DVD zu booten. Es erschien immer der graue
Apfel und das laufende Rädchen, sonst nichts. Nach über einer Stunde warten war
immer noch nichts passiert.
Danach habe ich es mit einer alten Mac OS X CD vom iBook versucht, ebenfalls erfolglos.
Hier startete einfach das bereits installierte System.
Nach Recherche im Apple Support Forum habe ich dann erfahren, dass das ganze anscheinend
ein Problem mit der DVD/CD-RW Kombi im 12" Modell ist. Es gab dazu einen Tip, mit dem
sich dann das Problem lösen liess:
Lösung
|
- Software-Restore DVD einlegen
- Neustart
- Direkt nach dem Bootsound [c] drücken
- Wenn das graue Apple-Logo auf dem Bildschirm erscheint, sofort
[Apfel] + [v] drücken und halten
- Wenn der Debug-Modus startet (Textinfo auf dem Schirm) die Tasten
loslassen
- Jetzt sollte die Installation starten
|
Während der Installation habe ich die Festplatte in zwei Partitionen aufgeteilt,
eine für OS X, die andere für Linux.
2.1 Vorbereitung
Als erstes habe ich folgende Files in das root-Verzeichnis von OS X kopiert:
Zur Installation benötige Dateien
|
- images/root.bin
- yaboot
- yaboot.conf
- linux.bin
|
Die ersten drei Files stammen von
http://http.us.debian.org/debian/dists/woody/main/disks-powerpc/current/new-powermac/,
die vierte ist der Kernel von
Orion Buckminster Montoya den ich in linux.bin umgenannt habe. Man muss diesen Kernel
verwenden, da der Debian Kernel noch kein ATA 100 unterstützt. "In diesem ATA Chipsatz
sind die UniNorth Bridge und der KeyLarge IS ASIC auf einem Chip zusammen. Es ist
CONFIG_BLK_DEV_IDE_PMAC in den Kernel Optionen".
Sollte das Kopieren nicht funktionieren, muss noch der root-account unter OS X aktiviert werden
(im Terminal sudo passwd root eingeben).
Nach dem Neustart muss dann sofort [Apfel] + [alt] + [o] + [f] gedrückt werden um
ins Open Firmware BIOS zu gelangen. Nun wird mit
|
Installation booten (Dies am Open Firmware Prompt eingeben.)
|
> boot hd:X,yaboot
|
der Installer gebootet. Hier bitte das X mit der entsprechenden Partition von OS X
ersetzen, bei mir war es 9. Sollte 9 nicht eure OS X Partition sein, schaut euch mal
den mount output im OS X Terminal an.
Danach startet der Debian Installer. Hierzu schreibe ich nichts, da es genug gute Tutorials
gibt, die diesen Prozess beschreiben (siehe Anhang). Bitte bei der Partitionierung den
NewWorld Bootblock nicht vergessen!
2.2 Booten des Systems
Alle die Debian unstable oder testing anstatt von Woody installiert haben, können
den folgenden Abschnitt überspringen. Auf diesen boot-floppies ist die benötigte Yaboot Version
installiert und das System kann einwandfrei booten.
Mit dem aktuellen Yaboot von Debian-Woody (1.3.6) wird euer System nicht starten bzw. es wird
eine Fehlermeldung während der Installation auftreten. Keine Panik, nach Installation des
Base-Systems einfach neu starten und in das Open Firmware BIOS wechseln. Von dort aus
dann wieder, wie oben beschrieben, Yaboot booten.
Dort kann man dann das installierte System mit dem Kernel auf der OS X Platte
starten:
|
Installiertes System starten (am Yaboot Prompt)
|
boot: hd:X,/linux.bin root=/dev/hdYY ro
|
Hier X durch die OS X Partition ersetzen und YY durch die root/boot-Partition
des Debian-Systems. Danach sollte Linux starten und man kann die Installation abschliessen. (Vielen
Dank an Jonathan Love, der mich auf einen Fehler hier aufmerksam gemacht hat).
Um das System dauerhaft über yaboot zu starten, muss nun die neuste Version (1.3.10)
installiert werden. Diese bekommt man unter
http://penguinppc.org/projects/yaboot/. Hinweis: Achtet darauf, dass
auch wirklich die neue yaboot-Version genommen wird. Sollte noch die alte
Version von Debian installiert sein, wird nämlich meistens diese genommen. Ein
ybin -V bzw. apt-get remove yaboot schafft hier Klarheit.
Hier meine yaboot.conf.
2.3 Probleme beim Booten
Sollte der Rechner während dem Einrichten der Partitionen unter Linux abstürzen
o.ä. (z.B. Akku leer), kann man sich mit dem DiskUtility auf der Mac OS X CD
behelfen. Hiermit die Partitionstabelle neu schreiben und dann nochmal von
vorne anfangen :).
3. Konfiguration
3.1 Kernel
Sollte cat /proc/cpuinfo 53MHz als Clock Frequenz angeben
cpu : 7455, altivec supported
clock : 53MHz
revision : 3.3 (pvr 8001 0303)
bogomips : 51.90
machine : PowerBook6,1
motherboard : PowerBook6,1 MacRISC3 Power Macintosh
detected as : 271 (Unknown Pangea-based)
pmac flags : 00000008
L2 cache : 256K unified
memory : 384MB
pmac-generation : NewWorld
müsst ihr den neusten benh-Kernel (siehe unten) installieren.
Weitere Informationen zu dieser "Falschaussage" findet in in den
debian-powerpc Archiven.
Beim Kernel gibt es eigentlich nur eine Möglichkeit: der Kernel von
Benjamin Herrenschmidt. Diesen
bekommt man immer frisch via rsync:
|
Kernel-Update via rsync
|
# mkdir /usr/src/benh_kernel
# rsync -avz rsync.penguinppc.org::linux-2.4-benh /usr/src/benh_kernel
|
Hier meine Kernel-Config
3.1.1 Netzwerk
Die Netzwerkkarte von Sun funktioniert einwandfrei, wenn man beim Konfigurieren
des Kernels die Option CONFIG_SUNGEM=y aktiviert.
sungem.c:v0.97 3/20/02 David S. Miller (davem@redhat.com)
eth0: Sun GEM (PCI) 10/100/1000BaseT Ethernet 00:03:93:cc:b2:a2
eth0: Found BCM5221 PHY
3.1.2 Sound
Funktioniert prima. Im Kernel die folgenden Optionen auswählen:
|
Kerneloptionen
|
CONFIG_SOUND=m
CONFIG_DMASOUND_PMAC=m
CONFIG_DMASOUND=m
|
und danach noch eine file names sound in
/etc/modutils/ mit folgendem Inhalt anlegen:
|
/etc/modutils/sound
|
alias char-major-14 soundcore
alias sound-slot-0 dmasound_pmac
alias char-major-14-3 dmasound_pmac
alias /dev/dsp dmasound_pmac
alias sound-service-0-0 i2c-keywest
alias char-major-14-0 i2c-keywest
alias /dev/mixer i2c-keywest
|
3.1.3 Bluetooth
Ich habe den Bluetooth Support mit einem Mobiltelefon von Sony Ericsson
(T68i) getestet und konnte damit problemlos ins Internet gehen.
3.1.3.1 Kernel-Optionen
Mit den folgenden Kernel Optionen lässt sich das Telefon ansprechen:
|
Bluetooth Kernel Optionen
|
CONFIG_BLUEZ=m
CONFIG_BLUEZ_L2CAP=m
CONFIG_BLUEZ_RFCOMM=m
CONFIG_BLUEZ_RFCOMM_TTY=y
CONFIG_BLUEZ_HCIUSB=m
CONFIG_BLUEZ_HCIUART=m
CONFIG_BLUEZ_HCIUART_H4=y
CONFIG_BLUEZ_HCIVHCI=m
|
Zur Laufzeit, sprich zum Arbyten, sollten folgende Module geladen sein:
hci_usb 7680 1
rfcomm 34696 1
l2cap 18612 2
bluez 36008 3 [hci_usb rfcomm l2cap]
3.1.3.2 Installation
Die bluez Userland Programme habe ich nicht als Debian-Pakete installiert, sondern
aus den Source übersetzt. Folgende tarballs sind dazu nötig:
Benötigte Software
|
|
bluez-libs-2.4.tar.gz
bluez-sdp-1.1.tar.gz
bluez-utils-2.3.tar.gz
|
Die Pakete sind alle von bluez.sf.net und
liessen sich einwandfrei übersetzen und installieren. Danach habe ich im
Telefon den Bluetooth Support angeschaltet und es per hcitool gesucht:
littlejohn!ms:~ $ hcitool scan
Scanning ...
00:0A:D9:37:49:9F Superphone
Nun kann man per rfcomm und einen entsprechenden PPP tool (pppd, wvdial)
fein per Bluetooth ins Internet gehen :)
3.1.4 Internes Modem
Das interne Modem läuft einwandfrei und liess sich (fast) problemlos
installieren. Als erstes habe ich die ppc-Treiber von
Linux drivers for
Conexant modems heruntergeladen und installiert. Beim Konfigurieren bin ich
dann auf ein kleines Problem gestossen. Das hcfusbconfig-Script wollte
unbedingt ein awk > 3.1.0 haben. Ich habe mir dann gawk Version
3.1.2 von gnu.org gezogen und
installiert. Danach liess sich auch das Modem konfigurieren/installieren.
Mittels wvdial konnte ich dann eine Verbindung ins Internet herstellen.
Allerdings bekam ich am Anfang immer die Meldung NO DIALTONE, nachdem
ich den Modem-Init-String verändert hatte ging es dann.
|
Veränderter Modem-Init-String
|
ATX3
|
Hier meine wvdial.conf.
3.1.5 USB 1.1
Meine Logitech Maus bzw. ein USB Memory Stick mit dem usb-storage
Treiber funktionieren einwandfrei.
3.1.6 Firewire 400
Pander hat mir eine E-Mail geschickt, in der er mir von einem gescheiterten
Einsatz des Powerbooks mit einer Canon DV MV20 (Digital Video camera) berichtet.
Sollte jemand anders Firewire erfolgreich getestet haben, soll er sich bitte
bei mir melden.
3.1.7 Power management
NEU: Suspend to disk funktioniert jetzt mit Kernel 2.6.9. Den
entsprechenden Patch findet man
hier.
Vor dem suspend sollte man die Firewire bzw. USB Module entladen und natuerlich
den resume=partition Kernel Parameter nicht vergessen.
Mit dem rivafb funktioniert Blacklight control nun auch. Den Patch für
den Kernel findet man ebenfalls unter obigem Link.
Bisher wird Suspend to RAM auf dem 12" Modell noch nicht unterstützt. APM sagt
dazu folgendes Sleep mode not supported on this machine und Benjamin
Herrenschmidt
schrieb auf debian-powerpc folgendes:
> sleep support
No, may take a while before it's supported
Trotzdem bekommt man aber mit einem cat /proc/apm den korrekten
Akku-Status.
3.1.8 CPU
Die CPU wird tadellos vom Kernel unterstützt. Bei mir fährt die CPU immer mit
533MHz hoch; um auf die volle Taktrate zu kommen, müsst ihr folgendes machen:
|
CPU Taktung
|
littlejohn!ms:~ $ cat /proc/cpuinfo | grep clock
clock : 533MHz
littlejohn!ms:~ $ echo -n "0%100%100%performance" > /proc/cpufreq
littlejohn!ms:~ $ cat /proc/cpuinfo | grep clock
clock : 867MHz
|
Funktioniert natürlich nur, wenn CONFIG_CPU_FREQ im Kernel aktiviert
wurde.
Mit den folgenden Programmen kann man seine CPU Frequenz dynamisch regeln lassen:
- cpudyn - Dynamische CPU Frequenz Kontrolle für skalierbare Prozessoren
- powernowd - kontrolliert die CPU Frequenz und den Stromverbrauch mit dem 2.6 Kernel
Interface
3.2 DVD/CD-RW Kombi
Ich hatte jetzt die Möglichkeit das Laufwerk zu testen und es funktioniert mit
mplayer ohne Probleme. Bei lassen sich mit mplayer fast
alle DVDs abspielen, Berichten zufolge scheint dies auch mit xine
einwandfrei möglich sein. Wenigstens funktioniert der xv output unter X
*g*
Auch der Brenner funktioniert mit 24x richtig schön :).
Im Kernel SCSI-Emu aktivieren und einen entsprechenden Eintrag in der
yaboot.conf machen. Mit dem 2.6er Kernel ist keine SCSI-Emu mehr zum Brennen
notwendig. Bei mir sieht die cdrecord -scanbus Ausgabe wie folgt aus:
Cdrecord 1.10 (powerpc-unknown-linux-gnu) Copyright (C) 1995-2001 Jörg Schilling
Using libscg version 'schily-0.5'
scsibus0:
0,0,0 0) 'MATSHITA' 'CD-RW CW-8122 ' 'BA1D' Removable CD-ROM
0,1,0 1) *
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
3.3 Tastatur
Als Keyboardmap habe ich mac-usb-de-latin1 genommen. Zusätzlich habe ich
noch den
pbbuttonsd installiert. Mit diesem netten daemon kann man die "Sondertasten"
(eject, mute, volume, ...) des Powerbooks benutzen. Herunterladen, compilen,
installieren und in /usr/local/etc/pbbuttonsd.conf konfigurieren.
Zusätzlich habe ich mir noch ein kleines
Init-Script geschrieben, was den daemon beim Starten lädt.
3.4 Trackpad
Mit folgender /etc/gpm.conf rennt die Maus unter der Konsole
einwandfrei:
|
/etc/gpm.conf
|
device=/dev/input/mice
responsiveness=
repeat_type=
type=ps2
append=""
sample_rate=
|
Die zweite und dritte Maustaste habe ich auf F11 und F12 gemappt. Wenn ihr auf
der Konsole showkey eingebt und dann eine Taste drückt, bekommt ihr
den keycode für diese Taste. Hier meine /etc/sysctl.conf:
|
/etc/sysctl.conf
|
dev/mac_hid/mouse_button_emulation = 1
dev/mac_hid/mouse_button2_keycode = 87
dev/mac_hid/mouse_button3_keycode = 88
|
Hierzu muss im Kernel CONFIG_MAC_EMUMOUSEBTN aktiviert sein.
3.5 TV Adapter
Bisher hatte ich keinen Erfolg bei dem Versuch den Adapter unter Linux zum
laufen zu bekommen.
3.6 VGA-Monitor Adapter
Unter OS X funktioniert der Adapter einwandfrei (wenn wunderts :), unter Linux
bisher leider nicht.
3.7 Airport Extreme
UPDATE: Mit dem Treiber von http://bcm43xx.berlios.de und einem
Kernel > 2.6.15 soll die Karte funktionieren.
Gerüchten zufolge ist der Chip auf der Airport Extreme ein Broadcom chip. Es
existieren zwar Linux Treiber für diesen Chip, aber Broadcom weigert sich
diesen Treiber als auch Informationen wie man selbst einen schreibt
herauszugeben. Es gibt jetzt eine
Online
petition, wo ihr euch eintragen könnt.
Funktioniert leider auch nicht. Ich konnte zwar das hermes-Modul laden und
kern.log gab mir den folgenden output:
Mar 26 21:45:50 kernel: hermes.c: 5 Apr 2002 David Gibson
Mar 26 21:47:52 kernel: orinoco.c 0.11b (David Gibson and others)
Mar 26 21:47:52 kernel: airport.c 0.11b (Benjamin Herrenschmidt )
Mar 26 21:47:52 kernel: orinoco.c 0.11b (David Gibson and others)
Mar 26 21:47:52 kernel: airport.c 0.11b (Benjamin Herrenschmidt )
Das airport Modul scheiterte mit folgender Meldung:
/lib/modules/2.4.20-ben9/kernel/drivers/net/wireless/airport.o: init_module: No such device
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters
Danach habe ich ein alias (eth1) für die Karte erzeugt, aber ifconfig eth1
zeigte mir das folgende an (wie sollte es auch anders sein):
eth1: error fetching interface information: Device not found
4.0 Xfree 4.3.0 mit einer Nvidia GeForce4 420 Go
Update: Solltet ihr ein aktuelles Testing/Unstable benutzen, braucht ihr
euch kein X neu compilen, die Pakete laufen einwandfrei. Dies trifft auch auf
die GeForce FX Go5200 in den neuen 1,33 GHz Modellen zu.
Julian Scheel hat eine Online Petition für Nvidia Linux-Treiber für PowerPC
gestartet. Unterzeichnen könnt ihr
hier.
Hinweis: Mir wurde von Schwierigkeiten mit der CVS-Version von Xfree86
berichtet. Sollte jemand Probleme beim Übersetzen haben, sollte er auf die
stable 4.3.x Version zurückgreifen. Diese funktioniert nach meiner Erfahrung
und div. Berichten einwandfrei.
4.1 Installation
Funktioniert und man kann X auch benutzen (sofern man einen ben kernel >
ben10 hat (s.u.)). Step-by-Step Anleitung, wie ich es gemacht habe (sid/unstable
Benutzer können die ersten drei Punkte überspringen (s.u.)):
Step-by-Step Anleitung für X11
|
- Xfree 4.3.0 von ftp://ftp.xfree86.org
runtergeladen
- das Install-HOWTO lesen und die Sourcen übersetzt
- Wichtig: Der nv Treiber muss auch übersetzt werden. Bei mir ist dieser
nämlich nicht automatisch übersetzt worden, ich musste noch nv in
der entsprechenden Makefile nachtragen.
- Die fertigen binaries installieren
- X konfigurieren oder meine XF86Config (s.u.) benutzen
- Sicherheitshalber von einer anderen Box via SSH einloggen
- X starten und auf den output von /var/log/XFree86.0.log achten
- Wenn X einwandfrei startet, OK. Bei mir trat folgender Fehler auf:
Could not load default font fixed. Nachdem ich dann das xfonts-base
Paket via apt nachinstalliert habe, ging es
|
Wenn ihr sid benutzt, müsst ihr X nicht aus Sourcen übersetzen.
Daniel Stone hat
deb-Pakete für i386 sowie ppc in seinem Archiv. Mit apt-get install
x-window-system werden die Pakete installiert.
Update: Mit der neusten Version (ben10) des ben-Kernels ist es möglich zur
Console zurückzukehren. Allerdings tritt dann ein neues Problem auf, die Console
ist nach dem Booten auf 80x30 Zeichen in der Mitte des Bildschirmes zentriert
und wird dadurch leider fast unbrauchbar. Orion Buckminster war der erste,
der auf debian-powerpc
dieses Problem bemerkt hat.
Hier meine XF86Config und der output von
XFree86.0.log. Hinweis: In meiner
Config ist per default eine Farbtiefe von 16Bit angegeben, es funktioniert aber
auch mit 24Bit.
4.2 Konfiguration
4.2.1 Tastatur
Um das Tastaturlayout zu bekommen, was mir gefällt, musste ich etwas arbeiten
:) Cristophe hat zu dem ganzen Tastatur-Kram unter X viel hilfreiches
geschrieben (siehe Anhang), deswegen beschränke ich mich hier auf das
nötigste.
In meiner .Xmodmap habe ich mir
[ALT/GR] auf [Apple] gelegt und zusätzlich einige
spezielle "deutsche" Tasten hinzugefügt.
Anhang
A. Credits
Credits
|
- Mein Dank geht an Jonathan Love der mir mit Tipps, besonders zu unstable/testing,
hilfreich zur Seite stand.
- Pander hat mir vom erfolgreichen Test mit 24Bit Farbtiefe berichtet und die Liste der Programme
für die CPU Frequenz-Kontrolle geschickt.
- Johannes Becker hat mich auf einen falschen Link sowie auf eine Unklarheit bezüglich
der zwei Bootprompts hingewiesen.
- Sven Herzing schickte mir den Link zu Software Suspend Seite.
- Djoumé SALVETTI maintained die französische Übersetzung und hat mir schon unzählige Tips und
Ergänzungen geschickt.
- Javier Carranza maintained die spanische Übersetzung.
- Pascal Suter berichtete mir über einen Absturz bei der Partitionierung und wie man danach
die Partitionstabelle neu schreiben kann ohne irgendwie OF zu benutzen.
|
B. Informationen
C. Links
Diskussionen/Postings auf debian-powerpc:
Interessante Websiten:
D. Disclaimer
Das ganze Dokument steht unter der GNU GPL, d.h. ihr dürft es frei verwenden, kopieren oder
sonstetwas. Für die Inhalte der Links bin ich nicht verantwortlich, wer einem Link von hier
aus folgt ist selber schuld.
WICHTIG: Für jegliche Schäden, sei es Software- oder Hardwareseitig oder
in sonst irgendeiner Form, die eventuell durch dieses HOWTO entstehen können
oder enstanden sind, bin ich in keinster Weise verantwortlich. Benutzung dieses
HOWTOS erfolgt auf eigene Gefahr!
E. Copyright
Copyleft (l) 2002-05 by Matthias Schmidt.
|