Fedora 15 auf MacBook 5,1 allein installieren
Aus der Zeit, als ich Apple noch für toll und besser als M$ hielt, stammt mein MacBook 5,1. Es handelt sich um ein Core 2 Duo-Gerät im 13″ Unibody-Gehäuse. Ich habe darauf schon länger Fedora 14 am laufen aber heute habe ich es mit Fedora 15 installiert und dabei die brach liegende Mac OS X Installation in 50 GB zusätzlichen Speicher für mein Linux verwandelt.
Ich habe auf dem Gerät die x86-Variante von Fedora 15 installiert. Diese ist mittels
PAE in der Lage, die 4 GB installierten Arbeitsspeichers zu verwalten. Ich hatte vorher die 64 Bit-Variante installiert. Allerdings hatte ich das Gefühl, dass diese bei 4 GB realen Speicher nicht wirklich besser performt. Meinungen?
Ich habe alle Schritte mit der 32bit-DVD vollzogen. Soweit ich weiß, haben die Live-CDs keine EFI-Unterstützung. Die beschriebenen Schritte sind aber für 64bit analog.
Hier erstmal ein paar Hardwaredaten:
<td>
<div class="text codecolorer">
$ lspci<br /> 00:00.0 Host bridge: nVidia Corporation MCP79 Host Bridge (rev b1)<br /> 00:00.1 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)<br /> 00:03.0 ISA bridge: nVidia Corporation MCP79 LPC Bridge (rev b2)<br /> 00:03.1 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)<br /> 00:03.2 SMBus: nVidia Corporation MCP79 SMBus (rev b1)<br /> 00:03.3 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)<br /> 00:03.4 RAM memory: nVidia Corporation Device 0a98 (rev b1)<br /> 00:03.5 Co-processor: nVidia Corporation MCP79 Co-processor (rev b1)<br /> 00:04.0 USB Controller: nVidia Corporation MCP79 OHCI USB 1.1 Controller (rev b1)<br /> 00:04.1 USB Controller: nVidia Corporation MCP79 EHCI USB 2.0 Controller (rev b1)<br /> 00:06.0 USB Controller: nVidia Corporation MCP79 OHCI USB 1.1 Controller (rev b1)<br /> 00:06.1 USB Controller: nVidia Corporation MCP79 EHCI USB 2.0 Controller (rev b1)<br /> 00:08.0 Audio device: nVidia Corporation MCP79 High Definition Audio (rev b1)<br /> 00:09.0 PCI bridge: nVidia Corporation MCP79 PCI Bridge (rev b1)<br /> 00:0a.0 Ethernet controller: nVidia Corporation MCP79 Ethernet (rev b1)<br /> 00:0b.0 IDE interface: nVidia Corporation MCP79 SATA Controller (rev b1)<br /> 00:10.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)<br /> 00:15.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)<br /> 02:00.0 VGA compatible controller: nVidia Corporation C79 [GeForce 9400M] (rev b1)<br /> 03:00.0 Network controller: Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller (rev 01)
</div>
</td>
</tr>
<td>
<div class="text codecolorer">
$ lsusb<br /> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br /> Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br /> Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br /> Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br /> Bus 001 Device 005: ID 05ac:8507 Apple, Inc. Built-in iSight<br /> Bus 004 Device 002: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)<br /> Bus 003 Device 002: ID 05ac:8242 Apple, Inc. IR Receiver [built-in]<br /> Bus 003 Device 003: ID 05ac:0237 Apple, Inc. Internal Keyboard/Trackpad (ISO)<br /> Bus 004 Device 003: ID 05ac:8213 Apple, Inc.
</div>
</td>
</tr>
<td>
<div class="text codecolorer">
cat /proc/cpuinfo<br /> processor : 0<br /> vendor_id : GenuineIntel<br /> cpu family : 6<br /> model : 23<br /> model name : Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz<br /> stepping : 6<br /> cpu MHz : 1596.000<br /> cache size : 3072 KB<br /> physical id : 0<br /> siblings : 2<br /> core id : 0<br /> cpu cores : 2<br /> apicid : 0<br /> initial apicid : 0<br /> fdiv_bug : no<br /> hlt_bug : no<br /> f00f_bug : no<br /> coma_bug : no<br /> fpu : yes<br /> fpu_exception : yes<br /> cpuid level : 10<br /> wp : yes<br /> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority<br /> bogomips : 4775.92<br /> clflush size : 64<br /> cache_alignment : 64<br /> address sizes : 36 bits physical, 48 bits virtual<br /> power management:<br /> <br /> processor : 1<br /> vendor_id : GenuineIntel<br /> cpu family : 6<br /> model : 23<br /> model name : Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz<br /> stepping : 6<br /> cpu MHz : 1596.000<br /> cache size : 3072 KB<br /> physical id : 0<br /> siblings : 2<br /> core id : 1<br /> cpu cores : 2<br /> apicid : 1<br /> initial apicid : 1<br /> fdiv_bug : no<br /> hlt_bug : no<br /> f00f_bug : no<br /> coma_bug : no<br /> fpu : yes<br /> fpu_exception : yes<br /> cpuid level : 10<br /> wp : yes<br /> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority<br /> bogomips : 4776.03<br /> clflush size : 64<br /> cache_alignment : 64<br /> address sizes : 36 bits physical, 48 bits virtual<br /> power management:
</div>
</td>
</tr>
Die Installation auf dem MacBook verlief wie von Fedora gewohnt, ohne Probleme. DVD rein, ALT-Taste beim Booten gedrückt halten und wenn der EFI-Boot-Manager die Boot-Optionen darstellt die DVD mit dem schönen Titel „Windows“ auswählen.
Bei der Installation muss man eigentlich nur beim Partitionieren aufpassen. Ich habe die Partitionen manuell angelegt und dabei folgendes Schema vergeben:
Device | Mount-Punkt | Größe | Bemerkung |
---|---|---|---|
/dev/sda1 | /boot/efi | 200MB | Die habe ich als einzige Partition nicht gelöscht und von OS X übernommen. Enthält die EFI-Firmware |
/dev/sda2 | /boot | 500MB | Eine unverschlüsselte Fedora-Boot-Parition, groß genug für Preupgrade |
/dev/sda3 | VG | 320GB | Den restlichen Platz habe ich für eine LVM-Volume-Group vergeben, die ich verschlüsselt habe. |
lv_swap | swap | 8GB | Der SWAP liegt auf der verschlüsselten VG, damit beim Schlafmodus keine Anwendungsdaten unverschlüsselt auf dem Rechner liegen. |
lv_root | / | 285GB | Die Root-Partition |
Über den Sinn und Unsinn die Root-Partition noch in eine /home, /usr, etc. zu zerteilen lässt sich streiten. Ich habe für mich die Erfahrung gemacht, dass ich bei Desktop-„Upgrade“-Installationen gerne die meisten Konfigurationen im Home-Verzeichnis lösche, das gleiche für die meisten System-Konfigurationen. Meist bin ich dann schneller mit einem Komplett-Backup. Außerdem entdecke ich so regelmäßig neue Features, die ich bei einem automatischen Update übersehen hätte.
Danach habe ich die Installation weiteres Nachdenken abgeschlossen und den Rechner neu gestartet. Jetzt kam die Ernüchterung. Ein blinkender Ordner mit einem Fragezeichen signalisierte mir, dass das System kein Betriebssystem vorgefunden hat.
Glücklicherweise fand ich die Lösung in zwei Bordmitteln, namentlich parted und gptsync. Was war passiert? Das Installationsprogramm von Fedora hat die Angewohnheit, der Partition mit dem Boot-Loader das Merkmal „bootbar“ zu verschaffen. Diese Markierung ist wichtig für Systeme mit einem BIOS, also nicht für EFI-Systeme, weil das BIOS so feststellt wo sich Betriebssysteme befinden. Bei EFI gibt es allerdings nur ein zu bootendes System, und das ist EFI selbst. Findet der Rechner nun zwei bootbare Partitionen auf einer Platte, dann steigt er aus.
Die Lösung besteht also darin, der Partition /boot das Merkmal bootbar zu entziehen. Zusätzlich müssen die Änderungen, welche in Linux gemacht wurden, auf dsa GPT-Partitionsschema übertragen werden.
Da das System nicht bootet und kein rEFIt installiert ist, muss das mit dem Rettungs-System auf der Fedora DVD gemacht werden. Lege dazu die DVD erneut ein und wähle „Rescue installed system“. Folge den Anweisungen auf dem Bildschirm, bis du eine Bash hast (Enter, Enter, Enter, … 😉 ).
Ich hatte dabei das Phänomen, dass die DVD nicht mehr zum Booten zu Verfügung stand. Die Lösung bestand darin, den PRAM zu zappen, also den Rechner auszuschalten, einzuschalten und dann gleichzeitig die Tasten ALT-CMD-P-R gedrückt zu halten, bis zweimal der Startton ertönt ist.
Nun führe die folgenden Befehle aus:
<td>
<div class="bash codecolorer">
$ parted <span class="sy0">/</span>dev<span class="sy0">/</span>sda<br /> <span class="br0">(</span>parted<span class="br0">)</span> toggle <span class="nu0">2</span> boot<br /> <span class="br0">(</span>parted<span class="br0">)</span> quit<br /> $ gptsync <span class="sy0">/</span>dev<span class="sy0">/</span>sda
</div>
</td>
</tr>
Achtung! Die 2 in „toggle 2 boot“ ist die zweite Partition, also in meinem Fall /dev/sda2. Welche das bei dir ist, erfährst du mit
<td>
<div class="bash codecolorer">
$ parted <span class="sy0">/</span>dev<span class="sy0">/</span>sda print<br /> Model: ATA FUJITSU MHZ2320B <span class="br0">(</span>scsi<span class="br0">)</span><br /> Disk <span class="sy0">/</span>dev<span class="sy0">/</span>sda: 320GB<br /> Sector <span class="kw2">size</span> <span class="br0">(</span>logical<span class="sy0">/</span>physical<span class="br0">)</span>: 512B<span class="sy0">/</span>512B<br /> Partition Table: gpt<br /> <br /> Number Start End Size File system Name Flags<br /> <span class="nu0">1</span> 20.5kB 210MB 210MB fat32 EFI System Partition boot, hidden<br /> <span class="nu0">2</span> 211MB 735MB 524MB ext4 boot<br /> <span class="nu0">3</span> 735MB 320GB 319GB
</div>
</td>
</tr>
Die zweite Partition ist eben jene „/boot“, und nach dem Befehl von oben verschwindet unter „Flags“ der Bereich boot.
Nach einem Neustart sollte nun endlich Linux starten. Allerdings ist nach dem Neustart lange ein grauer Bildschirm zu sehen. Nach einiger Zeit übernimmt dann GRUB das Kommando und der Bildschirm wird schwarz oder blau.
Ab hier ist es wieder einfacher.
Erstmal habe ich alle Updates installiert und neu gestartet:
<td>
<div class="bash codecolorer">
$ <span class="kw2">yum update</span><br /> <br /> ...<br /> <br /> $ reboot
</div>
</td>
</tr>
Dann habe ich das RPMfusion-Repository hinzugefügt:
<td>
<div class="bash codecolorer">
<span class="kw2">su</span> <span class="re5">-c</span> <span class="st_h">'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'</span>
</div>
</td>
</tr>
Anschließend habe ich die proprietären Treiber für den WLAN-Chipsatz und die Grafikkarte installiert:
<td>
<div class="bash codecolorer">
<span class="co4">$ </span><span class="kw2">yum install</span> kmod-nvidia kmod-wl xorg-x11-drv-nvidia-libs
</div>
</td>
</tr>
Damit der nvidia-Treiber nicht mit dem nouveau-Treiber kollidiert, musste ich noch als root folgendes ausführen:
<td>
<div class="bash codecolorer">
<span class="co4">$ </span>dracut <span class="re5">-f</span> <span class="sy0">/</span>boot<span class="sy0">/</span>initramfs-$<span class="br0">(</span><span class="kw2">uname</span> -r<span class="br0">)</span>.img $<span class="br0">(</span><span class="kw2">uname</span> -r<span class="br0">)</span>
</div>
</td>
</tr>
Das war es auch schon mit der Hardware. Alles andere bis auf die Tastaturbeleuchtung funktioniert Out-of-the-Box. Selbst die Webcam, bisher immer ein Krampf, tut fein ihren Dienst.
Ich hatte unter KDE noch das Problem, das nach der nvidia-Installation die Schriften komisch aussahen. Das konnte ich dann aber beheben, indem ich unter Systemeinstellungen -> Erscheinungsbild -> Schriften die DPI-Zahl auf 96 dpi gezwungen habe.
Eine Sache noch: Neuerdings kann man in KDE unter Keyboard Apple MacBook Keyboard (intl) auswählen. Damit bekommt man dann unter Fedora die gleichen Keybindings wie unter Mac OS X, also bspw. ALT-L für ein „@.