GästebuchIhr Eintrag in unser Gästebuch KontaktNehmen Sie Kontakt mit den Autoren auf ArchivAlle Unixwerk- Artikel seit 2003
7. Juli 2003

Einrichten eines "T-Sinus 130 data" USB Netzwerkadapters unter Debian GNU/Linux

Inhalt

  1. Vorraussetzungen
  2. Installation
  3. Einrichten des Netzwerkdevices
  4. Kernel 2.6
  5. Probleme

1. Vorraussetzungen

Es muss ein Kernel mit USB Support auf dem System vorhanden und installiert sein, welches USB-Kontrollermodul geladen werden muss ist je nach Hardware zu entscheiden. Bei mir ist es das "usb-ohci" Modul. Es empfielt sich das Modul schon beim Start des Systems zu laden, hierzu wird das Modul in die Datei /etc/modules eingetragen.
Außerdem muss im Kernel die Option "Wireless LAN (non-hamradio)" aktiviert werden um die wireless-tools und die mitgelieferten Konfigurationsprogramme zu nutzen.
Es werden die wireless-tools benötigt, falls diese noch nicht installiert sind erledigt das der Befehl:

rage:~# apt-get install wireless-tools

Nun muss noch der Treiber heruntergeladen werden, benötigt wird der ATMEL Wlan Treiber, dieser steht als Debianpaket zur Verfügung und kann über apt installiert werden. Falls man die neueste Version benötigt sollte man sich den Treiber von der Seite http://atmelwlandriver.sourceforge.net/downloads.html herunterladen. Einen alternativen Treiber der ein paar mehr Geräte unterstützt, dafür aber nicht als Accesspoint funktioniert gibt es auf http://at76c503a.berlios.de/#downl. Ich gehe im folgenden Text davon aus das man sich den Treiber von der Sourceforge-Seite heruntergeladen hat.

2. Installation

Mit dem Kommando:

rage:/tmp# tar xvfz atmelwlandriver-ss-<VERSIONSNUMMER>.tar.gz

müssen die Sourcen zunächst ausgepackt werden. Jetzt wechselt man in das "entstandene" Verzeichnis und führt ein make config aus. Die interaktiven Abfragen sind wie unten beschrieben zu beantworten.

rage:/tmp/atmelwlandriver# make config
Build all [y/N] : N
Set extra module version information [y/N] : y
Build Debug version [y/N] : N
Build USB Drivers [y/N] : y
Build USB 503A RFMD Driver [y/N] : y
Build USB RFMD 505 Driver [y/N] : N
Build USB RFMD 505 + 2958 Driver [y/N] : N
Build PCMCIA Drivers [y/N] : N
Build miniPCI Driver [y/N] : N
Build applications [y/N] : y
Build command line application [y/N] : y
Build Winter wxWindows application [y/N] : N
grep: .configtmp: Datei oder Verzeichnis nicht gefunden
You have to install the xforms library in order to use the xvnet application
Kernel Version Running 2.4.21
Found Kernel Source Directory (/lib/modules/2.4.21/build)
Finished. Now run make clean, all, install

Ein make install installiert im nächsten Schritt die kompilierten Module und Programme.

rage:/tmp/atmelwlandriver# make all
rage:/tmp/atmelwlandriver# make install
set -x
depmod -aq
OK
rage:/tmp/atmelwlandriver#

Falls das USB-Host Modul noch nicht geladen sein sollte muss es jetzt geladen werden, danach kann das neue Modul "usbvnetr" geladen werden:

rage:~# modprobe usb-ohci
rage:~# modprobe usbvnetr

Wenn der Treiber korrekt geladen wurde sollte nachfolgende Meldungen in der dmsg Ausgabe stehen. Ein ifconfig eth1 up sollte eine eth1 Schnittstelle schaffen.

usb.c: registered new driver usbvnetr
usb vendor/product=d5c/a002
Reg Domain
usbvnetr: driver version 1.0.1, compiled Jul 29 2003 11:56:18 (dbg_mask x0)
MAC addr 00:30:F1:8A:38:4F firmware 0.100.2.16
Multicast is enabled
vnetusba.c: usb eth1 initialized and registered
**********************
REASSOCIATION RESPONSE
**********************

Das Kommando iwconfig sollte jetzt das Geträt als WLAN-Karte erkennen und folgende Ausgabe zeigen:

eth1      ATMEL RFMD503A  ESSID:"WLAN"  Nickname:"WLAN"
          Mode:Managed  Channel:1  Access Point: 00:30:F1:88:CC:A1
          Bit Rate:11Mb/s
          RTS thr=2347 B   Fragment thr=2346 B
          Encryption key:off
          Link Quality:100  Signal level:85  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

3. Einrichten des Netzwerkdevices

Um den USB-Adapter dauerhaft einzurichten muss die Datei /etc/network/interfaces editiert werden. Je nachdem ob das Gerät beim Start des Systems geladen werden soll, oder die IP-Addresse vom WLAN-Spot automatisch vergeben wird weichen die Einträge von meiner Version ab. Ein man interfaces ist in diesem Fall hilfreich. Die richtige MTU sollte man gegebenenfalls beim Provider erfragen, sie ist für die Performance wichtig. Alternativ kann man den Eintrag auch weglassen, es wird dann ein Standardeintrag gesetzt. Eine interfaces-Version die automtisch beim Start geladen wird und eine statische IP-Adresse hat sieht so aus:

auto eth1
iface eth1 inet static
address 192.168.2.2
netmask 255.255.255.0
gateway 192.168.2.1
mtu 1454
wireless_essid WLAN

Alle iwconfig Optionen sind wie im obigen Beispiel beschrieben in die Datei zu schreiben, also immer "wireless_<OPTION> <WERT>". Debian unterstützt alle derzeitigen iwconfig Optionen, es ist also auch Problemlos möglich in die Datei seinen Schlüssel, die Geschwindigkeit oder ähnliches einzutragen, man iwconfig gibt Aufschluss über alle Optionen.

4. Kernel 2.6.

Damit die Karte mit dem Linuxkernel 2.6. funktioniert ist es nötig den Berlios Treiber aus dem cvs zu benutzen. Es wird zwar mitlerweile ein Treiber für Atmelchipbasierte Karten mit dem Kernel ausgeliefert leider funktioniert dieser aber nur mit PCMCIA Karten. Der Sourceforge Treiber kompiliert derzeit nicht auf einem 2.6er System, zumindest ist es mir nicht gelungen den Treiber zu übersetzen.
Zunächst müssen die Treiberquellen aus dem cvs ausgecheckt werden. Hierzu muss natürlich cvs installiert sein, unter Debian reicht wie immer ein apt-get install cvs. Nun müssen folgende Kommandos ausgeführt werden:
cvs -d:pserver:anonymous@cvs.berlios.de:/cvsroot/at76c503a login # Wenn nach einem Passwort gefragt wird
cvs -d:pserver:anonymous@cvs.berlios.de:/cvsroot/at76c503a co at76c503a         # einfach RETURN drücken
cd at76c503a
cvs up -r kernel_2_6

Die obigen Befehle laden die einzelnen Quelldateien aus dem Netz, und installieren gleich die nötigen "Patches" für 2.6. . Befindet man sich bereits auf einem System mit einem laufenden 2.6er Kernel reichen die Kommandos make und make install um den Treiber zu übersetzen und zu installieren.
Arbeitet man noch auf einem 2.4er System muss vorher das Makefile entsprechend angepasst werden. Die Zeile KERNEL_VERSION = $(shell uname -r) muss in KERNEL_VERSION = 2.6.0 geändert werden. Es muss immer die Version angegeben werden für die der Treiber übersetzt werden soll.
Ist der Treiber komiliert und installiert kann man versuchen das Modul zu laden. Als Anmerkung sollte noch gesagt werden das mit dem Kernel 2.6. einige Module anders heissen, unter anderem auch die Module für USB Kontroller. Das Modul für meinen Kontroller heisst nicht mehr " usb-ohci" sondern "ohci_hcd", dies muss beachtet werden da ja bevor das Modul für die T-Link Karte geladen werden kann, das Modul für den USB-Kontroller geladen werden muss.
Das Modul für die T-Link Karte ist mit dem Aufruf modprobe at76c503_rfmd zu laden.
Zu beachten ist das das zu Verfügung gestellte device nicht mehr eth0 wie beim Sourceforgetreiber, sondern wlan0 heisst. Die Datei /etc/network/interfaces muss also angepasst werden. Außerdem wird die Karte normalerweise im Modus Ad-Hoc betrieben, dies ist nur richtig wenn die Karte ohne AccessPoint betrieben werden soll. Um die Karte in den Managed-Mode zu schalten muss man in die Datei /etc/network/interfaces noch die Zeile wireless_mode Managed einfügen.

5. Probleme

Bei Dualboot-Systemen mit Windows ist zu beobachten das sich der USB Adapter nicht mehr richtig ansprechen lässt und keine Netzwerkverbindung unter Linux zu stande kommt wenn vorher Windows geladen war. Auch ein entladen und neuladen des Treibers half nicht.
Das System muss erst komplett heruntergefahren und wieder neu gestartet werden um den Adpater funktionstüchtig zu betreiben.
Falls jemand eine Lösung für dieses Problem hat würde ich mich über eine Mail freuen sk@unixwerk.de