= hostap - Treiber für WLAN-Karten =

Wer eine Prism 2/2.5/3 - WLAN-Karte sein eigen nennt (wie z.B. die
Siemens igate), kann statt dem normalerweise verwendeten
orinoco-Treiber auch den hostap-Treiber verwenden. Dieser Treiber
ist unabhängig entwickelt worden und hat im groben drei Vorteile
und einen Nachteil:

Vorteile:

* _Funktionierende_ WEP-Verschlüsselung (z.B. für Siemens
igate-Karten mit älterer Firmware)
* allgemein mehr Möglichkeiten, z.B. funktionierender "monitor
mode", der Grundlage zum Wardriving etc. ist.
* Möglichkeit, einen PC als Access Point zu konfigurieren (mit
WEP40/WEP104 oder Software-WPA)
* Ab hostap 0.2.2 auch Software-WPA (der bessere
Verschlüsselungs-Standard)!
* WEP128-Unterstützung, auch wenn die Stations-Firmware auf einen
neueren Stand gepatcht wurde (der orinoco-Treiber verweigert
nämlich das Setzen des WEP Key, wenn die Firmware neuer als 1.5.6
ist! Ausgeliefert werden die Karten meist mit STA 0.8.0, aber für
WPA braucht man mindestens STA 1.7.0)
* WDS (Wireless Bridging zwischen Access Points, etwa um Roaming zu
unterstützen)

Nachteile:

* Kernelmodul muss eigens übersetzt werden

== Installation ==

Die Homepage des Treibers ist http://hostap.epitest.fi/

Prinzipiell ist dort alles erklärt. Dennoch hatte ich einige
Schwierigkeiten. Im Nachhinein hat es sich am einfachsten erwiesen,
den Treiber in den normalen Kernel einzufügen und diesen komplett
neu zu übersetzen. ''Kernelkompilieren ist sowieso cool! ;-)'' Auf
diesem Wege war auch die Zusammenarbeit mit dem
CentrinoWLAN-Treiber am einfachsten.

Übrigens gibt es auch Debian-Pakete mit Sourcen bzw. für bestimmte
Kernel auch fertige Module. Da diese jedoch ältere Versionen (nicht
CentrinoWLAN - kompatibel) bzw. nicht mit meinem selbstgebauten
Kernel kompatibel waren, habe ich diese ausnahmsweise nicht
benutzt.

=== Kernel neu kompilieren ===

Wichtig ist, dass im Verzeichnis ''kernel-patches/README'' im
ausgepackten '''hostap-driver'''-tarball erklärt ist, wie man den
Treiber in den Kernel-Tree kopiert und einen (sehr einfachen) Patch
installiert. Nach Ausführung dieser Anweisungen habe ich meinen
Kernel neu konfiguriert, wobei neue Optionen erschienen, die ich
ausgewählt habe. Danach habe ich den Kernel neu übersetzt
(DebianKernelKompilieren) und habe nun ein fertiges Debian-Paket,
in dem der Treiber enthalten ist. Im Prinzip ging es um folgende
Befehle (die entsprechend an die Pfade und aktuellen Versionen
angepasst werden müssen):

<pre>
  cd /usr/src/kernel-source-2.6.6
  patch -p1
</home/tbayen/Projekte/HostAP/hostap-driver-0.1.3/kernel-patches/hostap-linux-2.6.0-test2.patch
  cp
/home/tbayen/Projekte/HostAP/hostap-driver-0.1.3/driver/modules/hostap*.[ch]
drivers/net/wireless/
</pre>

=== System einrichten === 

Ich habe das Debian-Paket "hostap-utils" installiert. Obwohl dieses
eine leicht andere (ältere) Version zur Basis hat, lief alles
wunderbar. Deshalb habe ich mir die Installation "von Hand"
erspart.

Das pcmcia-Subsystem muss neu gestartet werden, damit der richtige
Treiber geladen wird. Ggf. sind noch kleinere Änderungen in der
pcmcia-Konfiguration nötig, damit der orinoco-Treiber nicht mehr
geladen wird. ''(weiss ich nicht mehr genau, das kommt davon, wenn
man nicht sofort alles ins Wiki schreibt... wird bei der nächsten
Installation nachgereicht.)''

== und nun? ==

Ich gebe zu, dass ich den hostap-Treiber nur installiert habe, um
mein CentrinoWLAN ans laufen zu bringen, das davon abhängig ist.
Dennoch habe ich kurz damit herumgespielt und mit

  iwconfig eth1 mode master

das Ding in einen Access Point verwandelt. Fertig! Ich muss sagen,
dass ich sehr überrascht war, wie einfach das ging. :-) Man bekommt
hübsche log-Einträge, wenn sich Clients anmelden etc. Für einen
richtigen Access Point sollte man natürlich noch z.B. einen
DHCPServerMitDNS aufsetzen und ggf. über Verschlüsselung nachdenken
(siehe dazu meinen Kommentar auf WirelessLAN, Kapitel
"Sicherheit").

Wer mehr Erfahrungen, insbesondere auch mit dem "monitor mode" oder
einem vollständigen AP hat, ist gerne aufgerufen, diese hier
niederzuschreiben.

-- ThomasBayen

[{Tag WirelessLAN}]