PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HowTo für die WLan Prism54 Treiber



albix
02.12.03, 22:26
1. Einleitung

Anhand dieses HowTo möchte ich den Linux Usern helfen ihr WLan mit den Prism54 Treibern zum laufen zu bewegen.
Dieses HowTo besteht zum größten Teil aus der README, die beim Prism54 Snapshot dabei ist, der Rest setzt sich zusammen aus eigenen Erfahrungen sowie Tipps und Ratschlägen anderer Linuxer.
Dieses HowTo stellt keinesfalls Anspruch auf Richtigkeit und Vollständigkeit. Ich übernehme auch keine Verantwortung für etwaige Schäden die durch diese Anleitung entstehen könnten.
Man (DU!) sollte(st) daher einiges Grundwissen mitbringen, da wir z.b. noch einen eigenen Kernel kompilieren müssen. Aber keine Angst, ich werde soweit möglich und nötig jeden Befehl einzeln erwähnen.

2. Voraussetzungen

* Kernel Sources (unterstützte Versionen 2.4.23-pre9+ or 2.6.0+)
Notiz: Benutze für 2.4+ immer den letzen prepatch (aktuell: 2.4.23-rc5)
* Firmware:

http://prism54.org/firmware/
mkdir -p /usr/lib/hotplug/firmware
cd /usr/lib/hotplug/firmware
wget http://prism54.org/firmware/isl3890

* Compiler/binutils für Kernel compilierung
* wireless-tools (Debian User: apt-get install wireless-tools Gentoo: emerge wireless-tools)
* module-init-tools (Debian User: apt-get install module-init-tools gentoo: emerge module-init-tools) Vielen Dank an asdinos :-)

* Kernel Voraussetzungen:

v2.6:
CONFIG_EXPERIMENTAL: y
CONFIG_CLEAN_COMPILE: n
CONFIG_STANDALONE: n
Code maturity level options --->
Prompt for development and/or incomplete code/drivers
Select only drivers expected to compile cleanly
Select only drivers that don't need
compile-time external firmware

Du musst das FS sysfs mounten:
mkdir /sys
Füge "none /sys sysfs defaults 0 0" in "/etc/fstab" hinzu
mount /sys
--------------------------------------------------------------------------------------------------------------------

v2.4
CONFIG_EXPERIMENTAL: y
Code maturity level options --->
Prompt for development and/or incomplete code/drivers

CONFIG_FW_LOADER: (m)
# Notiz: Wegen einem Bug in 2.4.23-pre9
# (jemand hat scheinbar vergessen einige Daten hinzuzufügen, etc),
# kannst du FW_LOADER nur als Modul nutzen. Wenn du
# es beheben möchtest um es im Kernel zu verankern, dann
# lade dir folgenden Patch herunter:
# http://marc.theaimsgroup.com/?l=linux-kernel&m=106812072113121&w=2
# Danke an Margit Schubert-While -- dies sollte hoffentlich
# behoben worden sein im nächsten Pre-Release
# Notiz: Es wurde bereits gefixt in 2.4.23-rc1 ;)
Library routines --->
Hotplug firmware loading support (EXPERIMENTAL)=y

Bemerkung: COONFIG_FW_LOADER ist von nun an als Modul aktiviert
wenn du prism54 nutzt.

Versichere dich, dass das "hotplug" System installiert ist, ansonsten erhälst du evtl.
einige Fehler im Kernel Log, die so aussehen könnten: request_firmware() has failed

*) Zeigt "cat /proc/sys/kernel/hotplug" etwas wie "/sbin/hotplug"?

*) ist /sbin/hotplug vorhanden?

*) Ist der "Firmware" Agent vorhanden (rufe foldenden Befehl auf: /sbin/hotplug ohne
irgendwelche Argumente um alle vorhandenen Agenten auflisten zu lassen)

*) Hast du die "Firmware" Datei in das Verzeichniss kopiert in dem der
Firmware.Agent sie erwartet? (üblicherweise "/usr/lib/hotplug/firmware/")

*) für 2.6.x musst du /sysfs mounten!

3. Compilierung:

Vermerk: Ich habe die Compilierung etwas anders vorgenommen
als in der README vorgeschlagen

1)
* Entpacke deinen Kernel

tar xvfj linux-2.4/6.x-+ (ersetze die "x" und "+" durch deine VersionsNr.)
* Setze einen Link auf das Verzeichniss mit "linux"

ln -s /usr/src/linux-2.4/6.x-+ linux/
* Lade und entpacke dir den Patch

wget http://prism54.org/pub/linux/snapshot/tars/2003-12/prism54-cvs20031202.tar.bz2
tar xvfj prism54-cvs20031202.tar.bz2
cd /usr/src/linux
* Patche die Kernel Sources

patch -p1 < ../prism54-cvs20031202/patch-2.4/6-prism54

* Konfiguriere deinen Kernel. Das Prism54 Modul befindet sich unter:
v2.4: Network device support --->
Wireless LAN (non-hamradio) --->
Prism54 - Intersil Prism GT/Duette/Indigo PCI/PCMCIA
v2.6: Device Drivers --->
Networking support --->
Wireless LAN (non-hamradio) --->
Prism54 - Intersil Prism GT/Duette/Indigo PCI/PCMCIA

Notiz: Ich habe die Treiber als Modul ausgewählt und fahre damit sehr gut.

2)
Als nächstes noch bevor man den Kernel backt:
(Versichere dich, dass du CONFIG_FW_LOADER aktiviert hast!)

mkdir drivers/net/wireless/prism54
cd ../prism54-cvs20031202/
make KDIR=/usr/src/linux... modules
(KDIR defaults to "/lib/modules/`uname -r`/build")
make KDIR=/usr/src/linux... install
cp ksrc/* ../linux/drivers/net/wireless/prism54
cd ksrc/
cp Makefile.v24(6) ../../linux

Nun die üblichen Befehle um den Kernel zu "backen":
v2.4 (auf KEINEN Fall "make clean" ausführen, da sonst das Modul in ../../../prism54 gelöscht wird)

make dep && make bzImage && make modules && make modules_install

v2.6

make && make modules_install


cp arch/i386/boot/bzImage /boot/vmlinuz-2.4/6.-+
cp System.map /boot/System.map-2.4/6.-+
ln -s /boot/System.map-2.4/6.-+ /boot/System.map
nano /etc/lilo.conf (grub.conf)
/sbin/lilo
4. After Reboot:

Bei mir wird das Modul erst geladen wenn ich die Karte NACH dem Reboot hineinstecke.
Wir prüfen ob die Karte vorhanden ist und ob sie jetzt mit dem AccessPoint/Router verbindet:

iwconfig eth1 (bzw. eth0)
ping 192.168.0.1 (je nachdem welche IP euer AP/Router hat)

Habt ihr vorher Kabel (sprich Ethernet) benutzt um ins Internet zu gelangen, dann wird
bei euch der Befehl "route" wohl fogendes oder ähnliches ausspucken:


tux:/home/albix# route
Kernel IP Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0

Das müssen wir erstmal ändern. Als erstes entfernen wir eth0.

ifconfig eth0 down
Als nächstes weisen wir der WLan Karte eine IP zu.

dhclient eth1
Nun sollte "route" folgendes ergeben:


tux:/home/albix# route
Kernel IP Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth1

Evtl. falls erforderlich muss noch dieses eingegeben werden:

route add default gateway 192.168.0.1

FERTIG!!

Verbesserungsvorschläge sind herzlich willkommen.