[[Vorlage(archiviert)]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Paketquellen_freischalten/PPA: Verwenden eines PPAs] [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Kernelmodule: Umgang mit Kernelmodulen (Treibern)] [:Packprogramme: Archive entpacken] }}} [[Inhaltsverzeichnis(2)]] [[Bild(./madwifi_logo.png, 48, align=left)]] [http://madwifi-project.org/ Madwifi] {en} 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 [#Besonderheiten-an-Madwifi 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 [http://madwifi-project.org/wiki/Compatibility Liste unterstützter Netzwerkkarten] {en} weiter. = Installation = Laut der offiziellen [http://madwifi-project.org/wiki/UserDocs/Distro/Ubuntu Anleitung] {en} für Ubuntu reicht es aus, in der [:restricted-manager: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 [:Precise:Ubuntu 12.04] verfügbar. [[Vorlage(PPA, smoser, madwifi)]] Nach dem Aktualisieren der Paketquellen kann das folgende Paket installiert [2] werden: {{{#!vorlage Paketinstallation madwifi-dkms, ppa }}} 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]: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl sudo modprobe -r KERNELMODUL sudo modprobe ath_pci }}} == Manuell == Alternativ kann das Kernelmodul selbst kompiliert werden. Als Vorbereitung braucht man das folgende Paket: {{{#!vorlage Paketinstallation 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: {{{#!vorlage Befehl sudo apt-get install linux-headers-$(uname -r) }}} Nun lädt man die [http://snapshots.madwifi-project.org/ aktuellste Version] {en} {dl} 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: {{{#!vorlage Befehl 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` [:Kernelmodule#blacklisting: 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: {{{#!vorlage Befehl cd $HOME/.source make clean && make && sudo make install }}} Nun kann man den Treiber mit {{{#!vorlage Befehl 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: {{{#!vorlage Befehl wlanconfig ath0 destroy }}} Dann kann man eine neue hinzufügen. Die Befehle für den jeweiligen Modus lauten: * Client-Modus: {{{#!vorlage Befehl wlanconfig ath0 create wlandev wifi0 wlanmode sta }}} * Access Point-Modus: {{{#!vorlage Befehl wlanconfig ath0 create wlandev wifi0 wlanmode ap }}} * Monitor-Modus: {{{#!vorlage Befehl wlanconfig ath0 create wlandev wifi0 wlanmode monitor }}} 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. = Links = * [http://madwifi-project.org/ Projektseite] {en} * [:WLAN:] {Übersicht} Übersichtsartikel # tag: Hardware, Netzwerk, unfreie Software