Fedora 8 auf einem Apple MacBook

Stand: 25.05.2008

Bei Fragen bin ich gerne bereit weitere Auskünfte zu geben. Ich garantiere nicht, dass meine Aussagen richtig sind, oder dass sie irgendwie helfen können. wink. Meine E-Mail-Adresse ist adalbert.prokop@gmx.de.

Wenn Sie Informationen zu einem anderen Notebook-Modell suchen, sollten sie auf jeden Fall auch einen Blick auf http://www.linux-on-laptops.com/ oder auf http://tuxmobil.org/mylaptops.html werfen.

Übersicht

[Frontansicht bei aufgeklapptem Display] [rEFIt Bootbildschirm] Die Abmessungen sind laut Apple 325×227×27,5 mm. Das Gewicht beträgt 2,27 kg.

Nähere Informationen zu dem MacBook findet man auf der Seite von Apple zum MacBook. Dort kann man auch die Spezifikationen finden.

Am oberen Rand des Displays befindet sich die iSight Webcam und das eingebaute Mikrophon. Beide funktionieren.


Hardware

Typ Apple MacBook
CPU Intel Core 2 Duo 2GHz (64bit)
BIOS EFI
Speicher 2GB, gemeinsam genutzt mit der Grafikkarte (144MB)
Display 13,3" TFT-Bildschirm (33,78cm) bei Verhältnis 16:10
Auflösung 1280×800 Pixel
Extern: bis zu 1920×1200 Pixel, mini-DVI Anschluss
Grafik Intel GMA X3100, 144MB DDR2 SDRAM (geteilt mit RAM)
Audio Intel Corporation 82801G (ICH7 Family)
Netzwerk Gigabit LAN Marvell 88E8053
Atheros WLAN a/b/g/n
Medien Festplatte: 160GB Fujitsu MHW2160BHPL
Schnittstellen
  • 1× mini-DVI
  • 1× Ethernet LAN 10/100/1000 Mbit (Marvell 88E8053 [sky2])
  • 1× FireWire (IEEE 1394)
  • 2× USB 2.0
  • 1× Kopfhörer (Draht oder optisch), 1× Mikrofon
  • 1× Infrarot-Empfänger
  • kein PC-Card (PCMCIA) Slot
  • kein Modem
  • kein S-Video- oder Composite-Anschluss
  • keine serielle Schnittstelle
  • keine parallele Schnittstelle

BIOS/EFI

Es gibt kein BIOS. Ein BIOS ist ein Relikt aus den 80'ern, das sich hartnäckig auf den PCs hält. wink Das MacBook hat ein EFI. Für den Benutzer ist es theoretisch völlig egal wie das Betriebssystem bootet, hauptsache er kann damit arbeiten. Damit aber Linux (das ursprünglich für PCs konzipiert wurde) auch alle Hardwarekomponenten initialisieren kann, braucht man eine BIOS-Emulation. Das ist zwar nicht die volle Wahrheit, kommt ihr aber schon sehr nahe.

Am deutlichsten wird es in der Partitionierung der Festplatte.

Linux-Installation

Distribution

Weil ich mit RedHat und Fedora "groß" geworden bin, habe ich mich für Fedora 8 entschieden. Ich habe die 32bit Variante (i386) installiert, um einigen Problemen aus dem Weg zu gehen, z.B. Compilerbibliotheken, fehlende Browser-Plugins usw. Man kann jedoch die x86_64 Variante installieren - zumindest startete die Installation ohne Probleme. Fedora wurde parallel zu MacOS 10.4 installiert.

Partitionierung

Ein BIOS kennt 4 primäre Partitionen, EFI bis zu 128. Wenn man MacOS parallel zu Linux betreiben will, so ist man auf insgesamt 4 Partitionen beschränkt. Wenn man mehr Partitionen unter MacOS erstellt, kommt Linux nicht mehr mit der Platte klar. Erstellt man unter Linux erweitete Partitionen (die defacto innerhalb einer primären Partition leben), kann MacOS damit nichts anfangen. Erschwerend kommt hinzu, dass MacOS zwei Partitionen beansprucht. Es bleiben also nur zwei Partitionen, auf denen man etwas installieren kann. Möglichkeiten wären z.B.

Ich habe mich für die letzte Variante entschieden.

Im Wesentlichen habe ich nur die Anleitung auf MacTech befolgt. Ein unumgängliches Hilfsmittel dabei ist rEFIt, ein Bootmanager, der die EFI- und die MBR-Partitionstabelle sychron hält.

Nachdem man rEFIt unter MacOS installiert hat, kann man die für Linux benötigten Partitionen ebenfalls unter MacOS vorbereiten. Das geht mit folgendem Kommando:

diskutil resizeVolume disk0s2 100G Linux Swap 4G Linux Fedora 46G

Das verkleinert die MacOS Partition auf 100GB und erstellt eine 4GB große Partition, die wir später als Swap-Partionion verwenden, sowie eine 46GB große Partition für Linux.

Das Tool diskutil mit resizeVolume gibt es ab MacOS 10.4.7 (glaube ich). Die man-Page zu diskutil kennt zwar kein resizeVolume, aber diskutil resizevolume sollte eine kurze Zusammenfassung der Syntax liefern. Die Partitionsgrößen müssen natürlich für eure Festplatte angepasst werden.

Anschließend darf man von der Fedora-CD oder -DVD booten. Die Installation verläuft wie gewohnt. Bei der Frage nach dem Partitionierungsschema sollte man auf keinen Fall eine automatische Variante wählen, sondern die manuelle. Hier kann man dem Installer mitteilen, auf welche der unter MaxOS erstellten Partitionen er Fedora installieren darf. Nach der Installation kann es notwentig sein die Partitionstabellen (EFI und MBR) von rEFIt sychnronisieren zu lassen - das kann man im rEFIt-Bootmenü machen.

Wichtig: Der Bootloader darf nicht im MBR installiert werden, sondern gehört auf die Installationspartition!

Linux kann Apples HFS+-Partitionen Lesen und ohne Journaling Schreiben, Schreiben gilt jedoch als experimentell und wird nicht empfohlen.

Grafik

Wenn Probleme mit dem X-Server auftauchen, sollte man versuchen die Konfiguration neu anzustoßen. Dazu gibt man auf der Kommandozeile system-config-display --reconfigure ein. Die reconfigure options weist das Tool an eine neue Konfigurationsdatei zu erstellen und nicht die alte zu überarbeiten. Anschließend kann man noch weitere manuelle Änderungen einbringen. Meine Konfiguration findet man hier: xorg.conf.

iSight Webcam

Ja, sie funktioniert! smile Zunächst braucht man den uvcvideo Treiber, den man von der Linux UVC Treiberseite beziehen kann. Weiterhin braucht man die iSight Firmware Tools, um die Firmware der Kamera aus dem Treiber von MacOS zu extrahieren. Aus Lizenzgründen darf man diese Firmware nicht zum Download anbieten. Wenn man die MacOS Partition z.B. unter /mnt/macos eingebunden hat, dann findet man die Firmware unter

/mnt/macos/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport

Die extrahierte Firmware legt man unter /lib/firmware ab, wo sie der Treiber finden kann. Wenn der Treiber geladen ist, muss man die Firmware noch in die Webcam laden (ift-load). Das kann man manuell, durch Regeln in /etc/modprobe.conf oder durch UDEV Regeln erledigen lassen. Ich habe mich für UDEV entschieden.

Dazu erstellt man eine Datei /etc/udev/rules.d/isight.rules mit folgendem Inhalt.

ACTION=="add", SYSFS{idVendor}=="05ac", SYSFS{idProduct}=="8300", RUN+="/usr/local/lib/udev/ift-load --firmware /lib/firmware/isight.fw"
ACTION=="add", SYSFS{idVendor}=="05ac", SYSFS{idProduct}=="8501", RUN+="/usr/local/lib/udev/ift-load --firmware /lib/firmware/isight.fw", MODE="0666"

Jetzt kann man mit modprobe uvcvideo den Treiber laden. Wenn alles funktioniert hat, erscheint eine Meldung im Syslog über ein neues Videogerät. Um zu testen, ob die Webcam auch wirklich Bilder liefert, kann man mplayer benutzen.

mplayer -tv driver=v4l2:device=/dev/video:fps=25:outfmt=uyvy:width=320:height=240 -vf mirror,screenshot tv://

Es sollte ein Fenster mit dem Kamerabild erscheinen. Die Option screenshot macht mplayer zu einer "PhotoBooth" - durch das drücken von s kann man einzelne Bilder in Dateien speichern. Leider wollte der mplayer von Freshrpms nicht funktionieren, ich musste den mplayer aus dem Livna-Repository installieren.

Die Kamera lässt sich auch in Skype verwenden.

Sound

ALSA funktioniert problemlos.

Ethernet

Das sky2-Modul wird automatisch geladen und funktioniert.

WLAN

Das WLAN funtioniert zwar nicht out-of-the-box, kann aber mit wenigen Handgriffen nachgerüstet werden. Dazu bindet man das FreshRPMS-Repository ein und installiert das Paket madwifi. Funktioniert großartig.

Achtung! Das Paket madwifi des Livna.org-Repositories funktionierte nicht! Vielleicht macht ihr aber andere Erfahrungen.

Bluetooth

Zunächst schien es, dass Bluetooth nicht funktionieren wird. Das fand ich sehr merkwürdig, denn auf sehr vielen Seiten über Linux auf MacBooks wird berichtet, dass Bluetooth ohne Probleme funktioniert. Nach ausgiebiger Recherche fand ich endlich den Hinweis auf einer BSD Seite. Mein MacBook hat die neueste Firmware (die auch für rEFIt empfohlen wird). Dadurch arbeitet Bluetooth zunächst im HID Modus, um den Betrieb von Bluetooth-Tastaturen und -Mäusen direkt zu ermöglichen. Um in den ("normalen") HCI Modus zu schalten muss man

hid2hci --tohci

ausführen. Den Befehl kann man bequem in /etc/rc.d/rc.local einfügen, damit die Umschaltung bei jedem Start passiert.

Tastatur

Das Keyboard war das größte Sorgenkind. Da ein Mac ganz andere Tastatur hat als ein PC, ist es schwierig an einige Symbole heranzukommen, z.B. | (Pipe), [ ] (eckige Klammern) oder { } (geschweifte Klammern). Leider fehlt bei Fedora das Keyboardmapping für das deutsche MacBook. Nach nur wenigen Stunden der Recherche fand ich heraus, dass es bei Debian sehr wohl vorhanden ist. Also habe ich das Mapping aus den Debian Quellpaketen extrahiert. In dem Mapping für die deutsche Tastatur waren die Tasten für > und ^ vertauscht, was ich noch korrigiert habe.

Die passende Fedora-Keymap (für deutsche Benutzer mac-macbook-de.map.gz) kopiert man nach /lib/kbd/keymaps/mac/all/ und trägt es noch in der Datei /etc/sysconfig/keyboard ein:

KEYBOARDTYPE="mac"
KEYTABLE="mac-macbook-de"

Beim nächsten Reboot steht die neue Keymap zur Verfügung.

Viele Funktionen des MacBooks lassen sich nur über die Funtionstasten bedienen. Standardmäßig rufen die Funktionstasten die Notebookfunktionen auf. Die um einen Tastendruck von F1 zu erzeugen, muss man Fn-F1 drücken. Wer es lieber andersherum mag (F-Tasten senden Tastencodes, für die Sonderfuntionen drückt man Fn), der kann folgende Zeilen in /etc/rc.d/rc.local hinzufügen:

echo -n 2 > /sys/module/hid/parameters/pb_fnmode

Für die Funktionen, die nicht direkt von der Hardware durchführt werden, braucht man z.B. lineak (Linux Easy Access Keyboard, http://lineak.sourceforge.net/), welches die Scancodes abfangen und sie mit Funktionen belegen kann. Dieses Programm ist auch ein Teil der Fedora-Distribution und kann, zusammen mit einigen Plugins, mit yum einfach installiert werden.

Hier ist mein Konfigurationsdatei lineakkb.def, die die Zuordnung der Codes zu Aktionen beschreibt. Die Datei lineakd.conf bechreibt welche Befehle bei welchen Aktionen aufgerufen werden.

Unter Xorg ist die Tastatur viel einfacher einzurichten, siehe Abschnitt Keyboard0 in der xorg.conf.

Sensors

Das MacBook verfügt über einige Thermal- und Ventilatorsensoren. Um auf sie zuzugreifen (z.B. mit gkrellm), braucht man das applesmc Modul. Dazu erstellt man am besten die Datei /etc/sysconfig/modules/applesmc.modules und fügt Folgendes ein

#!/bin/sh
echo -n "Loading Apple SMC module..."
if /sbin/modprobe applesmc; then
        echo "SUCCESS"
else
        echo "FAILURE"
fi

Fernbedienung

Das MacBook hat einen Infrarotempfänger. Das heißt eben, dass es nicht über Infrarot kommunizieren kann. Es kann nur Signale einer Fernbedienung empfangen. Die Signale der beiliegenden Fernbedienung können mit Lirc verarbeitet werden. Die Unterstützung ist in Kernel 2.6.24 integriert, darunter wird ein Kernelpatch benötigt.

Lirc in der Version 0.8.2 aus den Fedora-Repositories kann leider mit dem Empfänger nichts anfangen. Es war notwendig Lirc von ATrpms.net (Version 0.8.3) zu installieren. Die entscheidende Anleitung habe ich auf http://www.mactel-linux.org/wiki/Fedora8OnMacBookSantaRosa gefunden, zusammen mit vielen anderen interessanten Infos.

Um Lirc zu installieren erstellt man eine neues Repository unter /etc/yum.repos.d/atrpms.repo

[atrpms]
name=Fedora Core $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/f$releasever-$basearch/atrpms/stable
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
enabled=0

Der Eintrag enabled=0 sorgt dafür, dass das Repository standardmäßig deaktiviert bleibt. Jetzt benutzen wir

yum --enablerepo=atrpms update lirc lirc-lib

um lirc zu aktualisieren. Anschließend muss man lirc noch konfigurieren. Dazu editiert man die Datei /etc/sysconfig/lircd, so dass sie Folgendes enthält

LIRCD_OPTIONS="-H macmini -d /dev/hiddev0 /etc/lircd.conf"

Man braucht noch die Tastencodes für die Fernbedienung. Die Codes auf der Homepage von Lirc für die A1156 Fernbedienung scheinen nicht zu funktionieren. Ich habe meine eigene Datei mit irrecord erstellt - hier ist meine lircd.conf - kopiert sie nach /etc/lircd.conf.

Wenn man den Dienst mit service lirc start startet, sollte eine kurze Erfolgsmeldung in /var/log/messages erscheinen. Damit ist man schon beihnahe fertig. Jetzt fehlen nur noch die Einstellungen für die einzelnen Programme, die LIRC benutzen, z.B. mplayer oder audacious. Sie müssen nur noch wissen, welche Aktion sie mit welcher Taste verbinden können. Hier findet ihr meine Einstellungsdatei lircrc, die man entweder nach /etc/lircrc (für systemweite Einstellungen) oder nach ~/.lircrc (für jeden Benutzer) kopiert. Sie enthält Einstellungen für die beiden oben genannten Programme.

Wenn alles funktioniert dann sollte man noch mit

chkconfig lirc on

den LIRC-Dienst permanent beim Booten erlauben.

Touchpad

Das Touchpad erwies sich auch als leicht problematisch und wollte nicht auf Anhieb funktionieren. Das Touchpad erhält bei jedem Booten eine andere Device-Datei, je nach dem, ob andere USB-Geräte, wie z.B. Maus, eingestöpselt sind. Mann kann es aber über einen symbolischen Link ansprechen, den Fedora 8 unter

/dev/input/by-id/usb-Apple_Computer_Apple_Internal_Keyboard_._Trackpad-mouse

erstellt. Wie die Konfiguration des Touchpads aussieht, kann man der Datei xorg.conf entnehmen, im Abschnitt über das Synaptics Touchpad.

FireWire

Nicht getestet.

USB

Funktioniert.

Externer Bildschirm

Nicht getestet.

Besonderheiten

Bei starker Prozessorbelastung über längere Zeit wird der Lüfter deutlich hörbar.

Ein wunderschönes Notebook. MacOS macht einfach Spaß, aber Linux muss auch drauf. wink

Interessante Links

Letzte Änderungen am: Sonntag, 5. Oktober 2008, 22:48:47