Mein Thinkpad x201 wird ab Werk mit einem WLAN Chipsatz von Intel ausgeliefert. Der läuft in der Regel mit Linux ohne Probleme, benötigt aber eine unfreie Firmware. Deshalb lässt sich beispielsweise Debian nur mit Netzwerkkabel installieren, um das entsprechende Paket aus non-free
zu laden. Komplett Freie Distributionen verweigern den Einsatz des WLAN-Chips strikt.
Eigentlich ist das kein Problem; ein Thinkpad lässt sich leicht öffnen und den Chipsatz auszutauschen ist eine Sache von drei gelösten Schrauben. Lenovo stellt ausführliche Anleitungen und sogar Videos (!) für den kompletten Vorgang bereit (Übersicht, Direkt zum Abschnitt „Wireless LAN“). Entsprechend passende MiniPCI-Karten mit Chipsätzen mit freier Firmware gibt es online bei Elektronikhändlern oder Ebay zu kaufen. Meiner – ein AR9285 von Atheros – ist ein gebrauchter/aufbereiteter und hat gerade einmal ~4€ gekostet.
Das Problem
Das ist wie gesagt alles kein Hexenwerk – eigentlich. Denn Lenovo hat sich da für einzelne Modelle etwas Tolles ausgedacht. Um nämlich die Zertifizierung durch US-Behörden zu bekommen, werden mithilfe einer Whitelist nur bestimmte Chips zugelassen. Alle anderen MiniPCI-Karten quittiert das Notebook mit der Meldung beim Bootvorgang:
1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.
Und diese Meldung ist ernst gemeint – es hilft nur noch Ausschalten und Ausbau des Chips!
Lösungsversuche
Zum Glück ist das Problem bekannt und um es zu beheben, gibt es verschiedene bereits gut dokumentierte Wege. Ich habe mir alle zumindest angeschaut, teilweise habe ich sie auch ausprobiert.
- Lösungsansatz 1: Ich habe als erstes versucht die PCI ID des Chipsatzes mithilfe eines Hacks von Matthew Garret zu verändern. Leider ohne Erfolg. Das C-Schnipsel lief zwar ohne Fehler durch, es veränderte aber auch nichts.
- Lösungsansatz 2 wäre die Nutzung eines anderen MiniPCI Slots. Das habe ich gar nicht erst versucht, weil das x201 als nicht funktionierend gelistet ist.
- Lösungsansatz 3, das Überkleben eines Pins, habe ich aus dem selben Grund übersprungen.
- Lösungsansatz 4, das Flashen eines gepatchten BIOS, ist der einzige funktionierende Weg.
Im Thinkwiki wird auf ein vorgepatchtes BIOS hingewiesen, das funktionieren soll.
Meine Probleme dabei waren allerdings:- 1) kein Diskettenlaufwerk
- 2) kein CD-Laufwerk
- 3) kein Windows (und auch keinerlei Lust eines zu installieren)
- 4) absolut null Erfahrung mit BIOS Flashing
- 4b) und somit Angst um das geliebte Notebook.
Die funktionierende Lösung
Nachdem ich wegen 1) und 2) keine fertigen Flashing-Tools nutzen konnte und dank 3) einige Stunden mit der Krücke WINE (und anderen Tools wie „geteltorito.pl“) verplempert hatte, bin ich wie folgt vorgegangen:
1. DOS Flasher für Phoenix BIOS besorgen
Bei WimsBIOS gibt es die aktuellste Version v1.7.0.21 von phlash16 zum Download.2. Gepatchtes BIOS besorgen
Die Zip-Datei aus dem Forenbeitrag gibt es auf sendspace.com zum Download. Als Alternative habe ich sie auch hier hinterlegt.3. FreeDOS besorgen
Das Diskimage von der offiziellen Seite ist zu klein, ich wollte ja den Flasher direkt mit drauf laden. Entweder du fummelst da selbst rum und vergrößerst das Image von Hand –oder du nimmst direkt das fertige Image von Christian Taube.Ich habe Letzteres gemacht.
Hinweis: die Images von Christian sind leider weg, aber im ArchWiki findet sich ein Verweis auf einen Mirror.4. USB-Stick vorbereiten
- Die bzip-Datei entpacken:
~# bunzip2 FreeDOS-1.1-memstick-2-256M.img.bz2
- Das Image auf einen USB-Stick laden:
~# dd if=FreeDOS-1.1-memstick-2-256MB.img of=/dev/sdX bs=512k
Natürlich mit Rootrechten und dasX
durch den entsprechenden Devicebuchstaben ersetzen. - Die vorhin heruntergeladenen Dateien entpacken:
~# unzip phlash16-1.7.0.21.zip
~# unzip ThinkPad\ X201_6quj10us_no_whitelist.zip
Die Ordner 32bit und 64bit kannst du ignorieren, dort liegen nur die Flashtools für Windows. - Den fertigen Stick mounten, die entpackten
PHLASH16.EXE
und$01C2100_mod.ROM
direkt in’s Hauptverzeichnis darauf kopieren, Stick wieder unmounten.
5. BIOS flashen
Jetzt startest du das Notebook neu und bootest vom USB-Stick. Als erstes begrüßt dich syslinux, du bestätigst mit Enter dass du FreeDOS booten möchtest. Im nun folgenden Bootloader wählst du4 - Load FreeDOS without drivers
und erhältst kurz darauf den altbekannten DOS Prompt:c:\
.
Mitphlash16 $01C2100_mod.ROM
kannst du jetzt den Flashvorgang starten. Dieser dauert etwas, sollte aber ohne weitere Fragen/Probleme durchlaufen.Fertig! Boote jetzt einfach mal Trisquel GNU/Linux um zu überprüfen, ob es funktioniert hat. Bei mir läuft der Chipsatz jetzt seit knapp einem Monat ohne Probleme und (gefühlt) sogar stabiler als der originale Intel-Chip. 😉