UPDATE: Ich habe die Schritte an einem 3 Cleaninstalls vorgenommen und es funktioniert jetzt fehlerfrei.
Der @Sascha_77 bietet hier an eure Wlankarten trotz Laptopwhitelist zum laufen zu bringen.
Für Windows und Linux war diese aber bisher dann für die Tonne. Da ich aber bekannter Weise Linux liebe und meinem Laptop im Dualboot benutze (OSX / Ubuntu) möchte ich allen anderen einen Weg zeigen die Karte dennoch unter Linux zu nutzen.
Da ich selber ein PC-Noob bin bitte ich um etwas Nachsicht, wenn hier etwas technisch nicht ganz korrekt erklärt wird. Schreibt einfach einen Hinweis und ich ändere die Fehler dann nachträglich.
Überblick Schritte:
- PCI-ID Überprüfen
- Kernel von kernel.org laden
- Kernel / Kernelmodule anpassen
- Kernel kompilieren
- (Grub2 anpassen - empfohlen, aber nicht nötig)
- Kernel installieren
- Postinstall / neuladen ath9k
Vorwort:
Da zum Kompilieren der Kernel gedownloadet werden muss, sowie einige Pakete vorab aus den Paketquellen geladen werden müssen, solltet ihr eine Internetverbindung über Lan oder einen USB-Dongle herstellen.
Es werden ca 1,1 GB aus dem Internet geladen.
Grundsätzlich ist das Problem von manchen Laptops, das teilweise die Hersteller (z.B. Lenovo Thinkpadreihe) die Wlankarten vorschreiben, um einen fehlerfreien Betrieb zu gewährleisten.
Das heißt, wenn man eine andere Wlankarte verbaut, dann startet der Laptop nicht mehr. Da OSX allerdings keine Intel-Wlankarten unterstützt, kann man diese aktuell nicht benutzen.
Das heißt also:
kompatibel für Lenovo Thinkpad (Intel N7260) --> keine OSX Lauffähigkeit
kompatibel für OSX (z.B: Atheros AR9280)--> Thinkpad startet nicht
Da die Karte über die PCI-ID erkannt wird, gibt es die Möglichkeit einer OSX kompatiblen Atheros-Wlankarte eine Intel PCI-ID zu verpassen (rebranden), um somit ein Laptopstart mit der Atheros-karte zu ermöglichen.
Damit OSX die Karte wieder richtig erkennt gibt es angepasste Kexte damit eure Karte dann fehlerfrei unter OSX funktioniert.
Das Problem dabei ist, das die anderen Betriebssysteme, also Windows und Linux keine Treiber von der Stange für diese Karte haben. Da die Betriebssysteme korrekter Weise anhand der PCI-ID denken es sei eine Intel-Wlankarte, laden somit den "falschen" Treiber.
Und um das unter Linux (Ubuntu) zu korrigieren müssen wir die Treiber (Kernelmodule) selber anpassen und neu kompilieren.
Und genau darum geht es hier.
Ich beziehe mich hier auf eine gerebrandete Atheros 9280 mit einer Intel N7260 PCI-ID und nutze Ubuntu.
Außerdem sollte jedem klar sein, das ihr nach einem Kernelupdate die Schritte erneut durchführen müsst!
Und um der VERWIRRUNG vorzubeugen.Ich benutze LINUX (UBUNTU) zum kompilieren. Es ist nur ein OSX-Theme. Also nicht das ihr auf die Idee kommt unter OSX zu kompilieren
Schritt 1: PCI-ID Überprüfen
Ist die Karte getauscht könnt ihr zuerst nachsehen, was verbaut ist und welcher treiber läuft.
Das könnt ihr ganz einfach im Terminal überprüfen mit:
Man erkennt dass das Kernelmodul (Treiber) iwlwifi geladen wird. Das wäre grundsätzlich ja auch korrekt für die entsprechende PCI-ID. Allerdings ist es unser Ziel jetzt den ath9k treiber zu laden, da dieser für die AR9280 zuständig ist. Dafür müssen wir den Kernel anpassen und neu kompilieren.
Schritt 2: Kernel downloaden
Öffnet ein Terminal und wechselt in euer Homeverzeichnis (eigentlich der standartordner)
legt euch einen neuen ordner an und wechselt in das Verzeichnis:
den entsprechenden Kernel downloaden und entpacken (und umbenennen):
Anschließend in das Verzeichnis wechseln.
Schritt 3: Kernel / Kernelmodule anpassen
Ich habe lediglich 3 Dateien angepasst. Eine muss mit Sicheheit angepasst
werden. Eine ist fakultativ und die 3 bin ich unsicher. Müsste man nocheinmal
ohne testen.
Folgende 3 Datein habe ich angepasst:
Wir müssen mindestens im ath9k die pci-id anpassen. Unsicher bin ich mir mit den pci_ids.h Eintrag. Der stört aber auf jeden Fall nicht. Ich glaube aber es dürfte auch ohne gehen.
Also starten wir mit dem ath9k treiber.
Die entscheidende Information befindet sich in der hw.h Datei. Also öffnen wir diese mit unserem Texteditors des Vertrauens (bei mir gedit)
Dort tauscht ihr die entsprechenden PCI-ID's mit den vorher ermittelten und speichert das ganze ab.
links original / rechts verändert
Als nächstes passen wir die pci_ids.h an:
(ich bin mir nicht sicher ob das zwangsläufig sein muss)
Und zu guter letzt passen wir noch die Kconfig an.
Das hat nur den Hintergrund das ich den ilwifi treiber garnicht mitkompilieren will. Somit kann das auch nicht fälschlicherweise geladen werden. Man könnte das Modul genauso gut nachträglich blockieren. Doch um mir den Ärger zu ersparen entferne ich einfach die entsprechende Zeile.
Und das waren auch schon die Anpassungen.
Der Rest ist Linux Standart Prozedur.
Schritt 4: Kernel Kompilieren
Generell benötigt ihr zum kompilieren folgende Pakete / Programme:
- linux-source
- build-essential
- kernel-package
- libssl-dev
Ihr könnt die einfach mit folgendem Befehl im Terminal laden und installieren:
Zum Kompilieren müsst ihr folgende Befehle nacheinander ins Terminal reinschmeißen:
Schritt 5: Grub2 - anpassen (fakultativ)
So weit so gut. Vor dem Kernel installieren solltet ihr jedoch sicherstellen
das ihr zur not den "alten" Kernel laden könnt. Damit ihr auch ein Auswahlmenü bekommt um im Notfall den Kernel manuell auswählen zu können, benutze ich immer Grub-Customizer um wenigstens 10 sekunden zur Auswahl zu haben.
Installation im Terminal:
Fremdpaketquelle freischalten:
Und installieren:
Anschließend folgende Einstellungen übernehmen:
Das ist wie gesagt nur für Angsthasen
Schritt 6: Kernel installieren
fast geschaft:
--> Neustart
Schritt 7: Postinstall / neuladen ath9k
ath9k konfigurieren/ Device anlegen:
den alten ath9k entfernen und neu laden
Dannach sollte es schon funktionieren.
Damit der ath9k bei systemstart automatisch geladen wird führen wir noch folgenden code aus:
Überprüfen könnt ihr das mit einem erneuten:
Ich freue mich auf Rückmeldungen.
MFG Patrick