Flashen
einer Prism 2.5 Wlan-Karte mit Intersil Firmware
für WPA Support
Stefan Bauer (sb at edv-fix dot de)
23 November 2006
Einleitung:
Flashen einer Prism2.5 Wlan-Karte mit Intersil Firmware um WPA Unterstützung zu erhalten
Voraussetzung:
Wlan-PCI Karte mit Intersil Firmware PCI, Mini-PCI (Notebooks)
Installierte Linux Distribution sowie passende Kernel Sourcen zu seinem laufenden Kernel
Bestehende Internetverbindung, da Pakete bezogen werden müssen
Ablauf:
1. Der Grundgedanke
1.1 Vorbereitung & Überprüfung der Karte
1.2 Patchen der Kernel Sourcen
2. Der Flashvorgang
3. Überprüfung der Funktionen
4. Quellen und weitere Hinweise
1. Der
Grundgedanke:
Die besagte Wlan Karte kommt hier in einem IBM Thinkpad X22 (zur Notebookinfo)
zum Einsatz. Die Karte wird korrekt erkannt aber liefert nach folgender
Abfrageoption den Hinweis auf eine veraltete Firmware. Hinweis, evtl.
muss das Device angepasst werden.
# dmesg |grep wifi
wifi0: NIC: id=0x813 v1.0.0
wifi0: PRI: id=0x15 v1.1.0
wifi0: STA: id=0x1f v1.4.9
Stand der Dinge ist 1.7.4 oder höher. (zur Firmware Seite)
Nach unserem erfolgreichen Flash Vorgang wird die Wlan Karte mit neuer Firmware bespielt sein und WPA sprechen können.
1.1 Vorbereitung & Überprüfung der Karte:
Wir stellen sicher, dass es sich bei unserer Karte, egal ob PCI oder Mini-PCI um eine Intersil Prism handelt.
# dmesg |grep Intersil
wifi0: Intersil Prism 2.5 PCI: mem=0xf00000000, irq=11
# lspci |grep Intersil
0000:02:05.0 Network controller: Intersil Corporation Prism 2.5 Wavelan chipset (rev 01)
Folgende Pakete werden unter Debian Linux für den korrekten Ablauf installiert:
# apt-get install hostap-utils wireless-tools unzip
Um uns von der korrekten Installation zu überzeugen, starten wir eine Abfrage an die Firmware der Karte:
# hostap_diag wifi0
NICID: id=0x8013 v1.0.0 (PRISM II (2.5) Mini-PCI (SST parallel flash))
PRIID: id=0x0015 v1.1.0
STAID: id=0x001f v1.4.9 (station firmware)
So oder so ähnlich, lautet eine korrekte Ausgabe und wir gehen zum nächsten Schritt über.
1.2 Patchen der Kernel Sourcen:
Nachdem der Grundstein gelegt ist, prüfen wir unsere lokale Kernel Version und passen die Quellen an:
# uname -a
Der von uns verwendete Kernel sollte bereits einmal aus den Quellen
kompiliet worden sein, um den selben Stand zu haben. Hierzu
wechseln wir ins das nötige Verzeichnis, wo wir die hostap_config.h anpassen.
# cd /usr/src/linux-2.6.18/drivers/net/wireless/hostap/
# vi hostap_config.h
Der Inhalt der Datei sollte so angepasst werden:
#ifndef HOSTAP_CONFIG_H
#define HOSTAP_CONFIG_H
#define PRISM2_VERSION "0.4.4-kernel"
#define PRISM2_MAX_INTERRUPT_EVENTS 20
#define PRISM2_DOWNLOAD_SUPPORT
#define PRISM2_NON_VOLATILE_DOWNLOAD
#endif
Auf dem Debian Weg bauen wir jetzt die Module neu und binden sie ins System ein:
# make modules && make modules_install
# modprobe -f hostap_pci
# modprobe -f hostap
Falls im Kernel keine Unterstützung für
CONFIG_MODULE_FORCE_UNLOAD verfügbar ist, die Module händisch
entfernen und neu einbinden.
2. Der Flashvorgang:
Zum Einsatz kommt prism2_srec aus dem Paket hostap-utils
Wir wechseln in ein Verzeichnis, entpacken dort die aktuellen Quellen für den Flashvorgang von hier
# cd /home/hans/ && wget http://www.netgate.com/info/miniPCI/Prism/Firmware/1.7.4.zip && unzip 1.7.4.zip
Wir starten einen Test Durchlauf.
# prism2_srec -v wlan0 PK010101.HEX SF010704.HEX
Die letzten Zeilen sollten ein OK enthalten.
Falls nicht siehe 4. Quellen und weitere Hinweise
Jetzt starten wir den eigentlichen Flashvorgang:
# prism2_srec -v -f wlan0 PK010101.HEX SF010704.HEX
Die letzten Zeilen sollten ein OK enthalten.
Falls nicht siehe 4. Quellen und weitere Hinweise
3. Überprüfung der Funktionen:
Wir versichern uns, dass die Wlan Karte mit der neuen Firmware ausgestattet wurde:
# hostap_diag wifi0
Host AP driver diagnostics information for ‘wifi0′
NICID: id=0×8013 v1.0.0 (PRISM II (2.5) Mini-PCI (SST parallel flash))
PRIID: id=0×0015 v1.1.1
STAID: id=0×001f v1.7.4 (station firmware)
4. Quellen und weitere Hinweise:
Welche Probleme sind während des Durchlaufs aufgetreten:
Frage: Ich erhalte:
Could not read wlan PDA. This requires PRISM2_DOWNLOAD_SUPPORT
definied in driver/module/hostap_config.h.
Antwort: Hierfür gibt es mehrere Ursachen:
- Wurde die Datei hostap_config.h korrekt angepasst?
- Wurde laut dmesg das wifi0 gerät korrekt auf wlan0 gemapped?
- Hier gab es Probleme mit udevd, welcher das Gerät wlan0_temp genannt hat
- Wurde das veränderte Modul hostapd auch unter /lib/modules/... kopiert und geladen?
Hilfreiche Adressen:
Jun Sun's mini-HOWTO on flashing Intersil Prism chipsets http://linux.junsun.net/intersil-prism/
Netgate: Intersil Prism 2.5 Firmware Info Page http://www.netgate.com/info/miniPCI/Prism/Firmware/help.html
Prism WLAN-Karten für WPA flashen http://www.onderka.com/index.php/2006/07/08/prism-wlan-karten-fur-wpa-flashen/
Howto
Version 0.1
Dieses
HOWTO wurde mit größter Sorgfalt erstellt. Trotzdem
können Fehler nicht
vollstaädig ausgeschlossen werden. Ich kann für
fehlerhafte
Angaben
und deren Folgen weder eine juristische Verantwortung noch irgendeine
Haftung uebernehmen. Für Verbesserungsvorschläge und
Hinweise
auf
Fehler bin ich dankbar.