Login
Newsletter
Werbung

Mi, 22. Oktober 2003, 00:00

W-Lan PCMCIA-Karten mit Prism-Chip

Einrichten des Linuxtreibers für die W-LAN PCMCIA-Karte SMC2835W.

Vorwort

Die SMC2835W-Karte ist noch relativ neu auf dem Markt und besitzt den PrismGT-Chipsatz. Der Hersteller SMC verweist bei der Linux-Unterstützung auf das Prism54 Projekt, welches einen Kernelpatch sowie die nötige Firmware bereit stellt. Leider war ich nicht in der Lage, diesen Patch einzusetzen. In dem Forum des Projektes fand ich allerdings einen Patch, der hervorragend funktioniert. Eine Liste der unterstützten Karten ist hier zu finden: http://ruslug.rutgers.edu/%7emcgrof/802.11g/Documentation/supported_cards.php

Dieses Dokument ist als Erfolgsbericht zu lesen, wie es bei mir geklappt hat. Support kann ich aus zeitlichen Gründen leider nicht geben, über Feedback würde ich mich aber trotzdem freuen.

Anforderungen

Ihr solltet schon Erfahrung im Bauen von Kerneln haben. make config, make bzImage, make modules usw. und der Umgang mit LILO oder GRUB sollte nicht fremd sein.

Download

Folgende Archive benötigt ihr:

Vorbereitung

Ich gehe im Folgenden davon aus, daß alle o.g. Dateien im aktuellen Verzeichnis liegen.

Den Kernel entpacken. Im aktuellen Verzeichnis haben wir nun ein neues Verzeichnis linux-2.4.22, welches die Sourcen des Kernels enthält.

tar xvjf linux-2.4.22.tar.bz2

Nun entpacken wir die Treiber

tar xvzf ISL3890-0.1.0.tar.gz

Die Firmware kopieren wir nach /etc/hotplug. Dies ist wichtig, da man ohne die Firmware-Datei schnell in eine Kernel Panic rennt.

cp /etc/hotplug/isl3890.arm

Zuletzt entpacken wir den eigentlichen Patch:

bzip2 -d isl3890-2.4.22.patch.bz2

Patchen und Compilieren des Kernels

Wir wechseln nun in das Verzeichnis mit den Linux-Quellen.

cd linux-2.4.22

und patchen den Kernel mit folgendem Kommando:

patch -p1 < ../isl3890-2.4.22.patch

Nun sind alle erforderlichen Optionen für die Konfiguration vorhanden. Verschiebt nun das komplette Verzeichnis linux-2.4.22 nach /usr/src und setzt den Link linux auf den gepatchten Kernel.

Konfiguriert den Kernel (ich habe die Datei .config aus dem alten Kernel mit rüber genommen) und wählt unter Network Device SupportWireless Lan (Non Hamradio) den Treiber für PrismGT an. Ebenfalls auf Yes setzen: WIRELESS_IOCTLS, INTERSIL_EVENTS und WDS_LINKS.

Nun Kernel compilieren, Module bauen und installieren. Anschließend den neuen Kernel booten.

Ist alles gut gegangen und habt ihr einen lauffähigen Kernel 2.4.22, könnt ihr mittels modprobe islpci_pci das Modul für die Karte laden.

Notwendige Tools bauen

Als nächstes müssen wir die Tools setoid und getoid aus dem Treiber des Prism54-Projektes bauen.

Achtung: Dieser Teil ist Theorie! Bei mir waren diese Tools schon durch einen vorhergegangenen Compiler-Lauf mit deaktiviertem PCMCIA im Kernel, so wie es in der Dokumentation der Treiber des Prism54-Projektes beschreiben ist. Wenn es nicht wie folgt beschrieben funktioniert, solltet ihr euch einen zweiten Kernel auf Basis des 2.4.22 mit abgeschaltetem PCMCIA bauen (die Treiber lassen sich sonst nicht bauen) und die Treiber dann compilieren.

Ihr könnt auch das Archiv von mir verwenden. Dort sind bereits die compilierten Tools enthalten. Achtung: Ich übernehme keine Garantie für evtl. entstehende Schäden! Use at your own risk!

Wenn ihr selber compilieren wollt: Wechselt in das Verzeichnis der Treiber ISL3890-0.1.0 und anschließend ins Unterverzeichnis pcmcia-cs-3.2.4-intersil/debug-tools/intersil. Versucht dort mittels make die drei Tools setoid, getoid und catchoids zu bauen.

In jedem Fall sollten diese drei Tools schließlich unter /usr/local/bin oder einem Verzeichnis eures Vertrauens (Pfades) liegen.

Konfiguration

Da ich das W-Lan nicht ständig laufen lassen möchte, habe ich mir ein paar Dreizeiler geschrieben, mit denen ich das W-Lan je nach Bedarf hoch und runter fahren kann:

wlan-dhcp

#!/bin/bash
#
# Usage: wlan-dhcp
#
insmod islpci_pci
setoid eth1 10000002 ssid $1
/sbin/ifup-dhcp hotplug eth1

wlan-static

#!/bin/bash
#
# Usage: wlan-static
# wlan-static myHOME 192.168.0.2
#
insmod islpci_pci
setoid eth1 10000002 ssid $1
ifconfig eth1 $2 netmask 255.255.255.0 up

wlan-down

#!/bin/bash
ifconfig eth1 down
rmmod islpci_pci

WEP-Verschlüsselung

Die Treiber unterstützen auch 128-Bit-Verschlüsselung. In meinem Router (D-Link DI-624) habe ich dazu Open System eingestellt, Encryption enabled und vier Keys (HEX, 26 Buchstaben/Ziffern zwischen 0-9 und A-F) gesetzt. Diese Keys unbedingt gut notieren, bevor ihr diese aktiviert!

Ein kleines Skript erledigt dann das Setzen der Verschlüsselung. Alternativ können die Zeilen auch in die oben genannten Skripte eingefügt werden:

Als erstes setzen wir die vier Keys, die bereits in der Router-Konfiguration eingetragen wurden. Bitte vergesst nicht, 0x davor zu setzen. Im Folgenden habe ich die Schlüssel nur mit a, b, c und d gefüllt. Ihr solltet schon sinnvollere Kombinationen wählen ;-)

# Setting Keys
setoid eth1 12000004 key 0 0xdddddddddddddddddddddddddd
setoid eth1 12000005 key 0 0xaaaaaaaaaaaaaaaaaaaaaaaaaa
setoid eth1 12000006 key 0 0xbbbbbbbbbbbbbbbbbbbbbbbbbb
setoid eth1 12000007 key 0 0xcccccccccccccccccccccccccc

Als nächstes aktivieren wir die Verschlüsselung:

# Set authentication
setoid eth1 12000000 long 3

Nun folgen zwei Werte, die ich noch nicht ganz verstanden habe, die aber anscheinend nötig sind:

# Setting PRIVACYINVOKED and EXUNENCRYPTED
setoid eth1 12000001 long 1
setoid eth1 12000002 long 1

Zu guter Letzt den aktiven Schlüssel setzen:

# Setting KEYID
setoid eth1 12000003 long 0

Nun ist der erste Schlüssel aktiv (in diesem Fall 0xdddddddddddddddddddddddddd). Nach einem Durchstarten von eth1 sollte die Verschlüsselung aktiv sein. tcpdump -i eth1 -w tcpdump.out sollte euch davon überzeugen.

Nachwort

Bitte habt Verständnis dafür, daß ich für diesen Weg keinen Support liefern kann. Betrachtet diese Anleitung als Hilfestellung, um zum Ziel zu kommen. Für generellen Support wendet euch bitte an das Forum des Prism54-Projektes. Dieses Dokument hat keinen Anspruch auf Vollständigkeit.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung