Archiv/WLAN/MadWifi

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Verwenden eines PPAs

  2. ⚓︎ Installation von Programmen

  3. ⚓︎ Ein Terminal öffnen

  4. ⚓︎ Umgang mit Kernelmodulen (Treibern)

  5. ⚓︎ Archive entpacken

Inhaltsverzeichnis
  1. Installation
    1. PPA
    2. Manuell
  2. Besonderheiten an Madwifi
    1. Schnittstelle einrichten
  3. Links

./madwifi_logo.png Madwifi 🇬🇧 ist ein Treiberprojekt für auf Chipsätzen von Atheros basierenden WLAN-Karten. Das Kernelmodul unterstützt nicht nur den normalen Client-Modus, sondern auch einige andere nette Funktionen wie virtuelle Schnittstellen. Damit kann man bspw. eine WLAN-Verbindung (z.B. zu einem Hotspot im Flughafen) aufbauen und über die gleiche WLAN-Karte einen eigenen Access Point anbieten, um diese Verbindung weiterzureichen.

In den meisten Fällen sind die vom selben Projekt entwickelten, offenen Treiber ath5k und ath9k vorzuziehen. Diese sollten automatisch genutzt werden. Gerade bei älteren Chipsätzen wie dem AR5001 erreicht man mit den MadWifi-Treibern allerdings eine deutlich bessere Verbindungsqualität. Bei der Entscheidung hilft eine Liste unterstützter Netzwerkkarten 🇬🇧 weiter.

Installation

Laut der offiziellen Anleitung 🇬🇧 für Ubuntu reicht es aus, in der Verwaltung eingeschränkter Treiber (Jockey) das Kernelmodul zu aktivieren.

PPA

Es gibt ein "Personal Package Archiv" (PPA) [1], das den MadWifi-Treiber via DKMS einbindet. Das hat gegenüber der manuellen Installation den großen Vorteil, dass der Treiber bei jedem Kernel-Update automatisch neu kompiliert wird. Leider ist das PPA nur für Ubuntu 12.04 verfügbar.

Adresszeile zum Hinzufügen des PPAs:

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der Wiki/Vorlagen/PPA/ppa.png PPA-Beschreibung des Eigentümers/Teams smoser zu entnehmen.

Nach dem Aktualisieren der Paketquellen kann das folgende Paket installiert [2] werden:

Befehl zum Installieren der Pakete:

sudo apt-get install madwifi-dkms 

Oder mit apturl installieren, Link: apt://madwifi-dkms

Der neue Treiber muss anschließend noch mit der "Verwaltung eingeschränkter Treiber" aktiviert werden.

Will man den Treiber ohne Neustart nutzen, müssen zuvor genutzte Module entfernt werden und das MadWifi-Modul manuell geladen werden. Zuerst findet man heraus, welches Modul gerade genutzt wird [3]:

lsmod | grep ath 

Im Folgenden muss KERNELMODUL durch das Ergebnis ersetzt werden (ath5k oder ath9k). Danach wird das soeben ermittelte Modul entfernt werden und das MadWifi-Modul geladen:

sudo modprobe -r KERNELMODUL
sudo modprobe ath_pci 

Manuell

Alternativ kann das Kernelmodul selbst kompiliert werden. Als Vorbereitung braucht man das folgende Paket:

Befehl zum Installieren der Pakete:

sudo apt-get install build-essential 

Oder mit apturl installieren, Link: apt://build-essential

Außerdem wird das Paket linux-headers passend zur eigenen Kernel-Version und -Architektur (-generic, -386, -generic-pae usw.) benötigt. Dieses Paket lässt sich über den folgenden Befehl installieren:

sudo apt-get install linux-headers-$(uname -r) 

Nun lädt man die aktuellste Version 🇬🇧 ⮷ des Quellcodes herunter, kompiliert und installiert diese. Das Kompilieren und Installieren muss nach jedem Kernel-Update wiederholt werden. Daher empfiehlt es sich, den Sourcecode des Kernelmoduls in einem Verzeichnis wie ~/.source zu behalten. In einem Terminal gibt man folgendes ein:

mkdir -p $HOME/.source
cd $HOME/.source
wget http://snapshots.madwifi-project.org/madwifi-0.9.4-current.tar.gz
tar xzf madwifi-0.9.4-current.tar.gz
cd madwifi-0.9.4-r*
make && sudo make install 

Zur Aktivierung der neuen Treiber (und Deaktivierung der ath5k/ath9k-Treiber) nutzt man am besten die "Verwaltung eingeschränkter Treiber. Sollte dieses aus irgendeinem Grund nicht klappen, muss man von Hand die Kernelmodule ath5k bzw. ath9k blacklisten und dafür sorgen, dass ath_pci nicht geblacklistet ist.

Kernel-Update

Nach einem Kernel-Update wird der madwifi-Treiber in der Regel nicht mehr funktionieren und muss neu kompiliert werden. Dies geht - wenn man dem Tipp von oben gefolgt ist - ganz schnell im Terminal:

cd $HOME/.source
make clean && make && sudo make install 

Nun kann man den Treiber mit

sudo modprobe ath_pci
sudo restart networking 

laden. Alternativ kann man natürlich auch den Rechner neu starten.

Besonderheiten an Madwifi

Das Besondere an Madwifi ist, dass es ein direktes Hardwareinterface bereitstellt, welches wifi0 (für die 1. Karte, wifi1 für die 2. usw.) heißt und auf diesem erst die normalen Interfaces hinzufügt. Diese Interfaces heißen dann normalerweise ath0, ath1, ...!

Schnittstelle einrichten

Als erstes muss die "alte" Schnittstelle (interface) entfernt werden:

wlanconfig ath0 destroy 

Dann kann man eine neue hinzufügen. Die Befehle für den jeweiligen Modus lauten:

So lassen sich auch mehrere virtuelle Interfaces (ath1, ath2, usw.) einrichten. Setzt man eines davon in den Client-Modus und ein weiteres in AP-Modus, kann man über eine Netzwerkbrücke und hostapd die WLAN-Verbindung über einen Access Point auf derselben Karte weiterreichen. Details sind dem Artikel WLAN Router zu entnehmen.

Damit die virtuellen Interfaces automatisch beim Systemstart erzeugt werden, können die notwendigen Befehle in der Datei /etc/rc.local eingetragen werden. Dann genügt es, über den NetworkManager eine Verbindung aufzubauen und danach einen Access Point zu starten.