Der in Ubuntu 10.04 integrierte WLAN-Treiber für den Ralink Technology (148f:3070) Chip [Hama Mini WLAN USB-Stick] kann nur eine 54-Mbit-Verbindung aufbauen, darum müssen wir eine neuere Version des Treibers selber kompilieren.
lsusb | grep -i ralink Bus 001 Device 002: ID 148f:3070 Ralink Technology, Corp.
Zuerst müssen wir den Sourcecode des Treibers für den Ralink Technology 3070 Wireless-LAN Chip von der Herstellerseite herunterladen.
Danach installieren wir uns ein wenig Kernelzubehör, …
sudo su - aptitude install linux-headers-`uname-r` make gcc bzip2 build-essential
… den Sourcecode entpacken wir in einem dazu geeigneten Verzeichnis.
tar xvjf DPO_RT3070_LinuxSTA_V2.3.0.2_20100412.tar.bz2 cd DPO_RT3070_LinuxSTA_V2.3.0.2_20100412
Nun müssen wir eine kleine Anpassung am Treiber vornehmen …
gksu gedit ./os/linux/usb_main_dev.c
… den bestehenden Code …
#include "rt_config.h" // Following information will be show when you run 'modinfo' // *** If you have a solution for the bug in current version of driver, please mail to me. // Otherwise post to forum in ralinktech's web site(www.ralinktech.com) and let all users help you. *** MODULE_AUTHOR("Paul Lin "); MODULE_DESCRIPTION("RT2870 Wireless Lan Linux Driver"); #ifdef CONFIG_STA_SUPPORT #ifdef MODULE_VERSION MODULE_VERSION(STA_DRIVER_VERSION); #endif #endif // CONFIG_STA_SUPPORT // ...
… in …
#include "rt_config.h" // Following information will be show when you run 'modinfo' // *** If you have a solution for the bug in current version of driver, please mail to me. // Otherwise post to forum in ralinktech's web site(www.ralinktech.com) and let all users help you. *** MODULE_AUTHOR("Paul Lin "); MODULE_DESCRIPTION("RT2870 Wireless Lan Linux Driver"); MODULE_LICENSE("GPL"); #ifdef CONFIG_STA_SUPPORT #ifdef MODULE_VERSION MODULE_VERSION(STA_DRIVER_VERSION); #endif #endif // CONFIG_STA_SUPPORT // ...
… verändern. Also das „MODULE_LICENSE(„GPL“);“ einfügen, das Konfigurationsfile „RT2870STA.dat“ passen wir nach der Anleitung im UbuntuUsers-Wiki an.
Beispiel:
#The word of "Default" must not be removed Default CountryRegion=5 CountryRegionABand=7 CountryCode=DE ChannelGeography=1 SSID=WLAN-NAME NetworkType=Infra WirelessMode=6 Channel=13 BeaconPeriod=100 TxPower=100 BGProtection=0 TxPreamble=0 RTSThreshold=2347 FragThreshold=2346 TxBurst=1 PktAggregate=0 WmmCapable=1 AckPolicy=0;0;0;0 AuthMode=WPA2PSK EncrypType=AES WPAPSK=WLAN-SCHLUESSEL DefaultKeyID=1 Key1Type=0 Key1Str= Key2Type=0 Key2Str= Key3Type=0 Key3Str= Key4Type=0 Key4Str= PSMode=CAM AutoRoaming=0 RoamThreshold=70 APSDCapable=0 APSDAC=0;0;0;0 HT_RDG=1 HT_EXTCHA=0 HT_OpMode=0 HT_MpduDensity=4 HT_BW=1 HT_BADecline=0 HT_AutoBA=1 HT_AMSDU=0 HT_BAWinSize=64 HT_GI=1 HT_MCS=33 HT_MIMOPSMode=3 HT_DisallowTKIP=1 HT_STBC=0 IEEE80211H=0 TGnWifiTest=0 WirelessEvent=0 CarrierDetect=0 AntDiversity=0 BeaconLostTime=4 PSP_XLINK_MODE=0
Nach der erfolgreichen Anpassung des Konfigurationsfiles kopieren wir es.
cp RT2870STA.dat RT3070STA.dat
Nun müssen wir den Treiber kompilieren …
make
… und im Anschluss installieren wir Ihn.
sudo make install
Um den Installationsvorgang abzuschließen, müssen wir die von uns angepassten Konfigurationsfiles noch ins „/etc“ kopieren.
sudo mkdir -p /etc/Wireless/RT2870STA sudo mkdir -p /etc/Wireless/RT3070STA sudo cp RT2870STA.dat /etc/Wireless/RT2870STA sudo cp RT3070STA.dat /etc/Wireless/RT3070STA
So, jetzt deaktivieren wir die nur mit 54 Mbit funktionierenden Treiber von Ubuntu LTS Lucid Lynx, …
gksu gedit /etc/modprobe.d/blacklist.conf
… am Schluss der Datei fügen wir …
# for rt3070 chip blacklist rt2800usb blacklist rt2870sta
… ein. Jetzt entladen wir die zwei Module, damit wir keinen Neustart machen müssen.
sudo rmmod rt2800usb sudo rmmod rt2870sta
In der Datei modules …
gksu gedit /etc/modules
… tragen wir am Ende folgende Zeilen ein …
# RT3070 rt3070sta
… damit das Modul automatisch beim Starten geladen wird. Die Treiber-Installation haben wir nun abgeschlossen.
Damit sich unser neuer WLAN-Stick mit unserem WLAN verbindet, müssen wir den WPA-Supplicant installieren …
sudo aptitude install wpasupplicant
… und konfigurieren.
gksu gedit /etc/wpa_supplicant/wpa_supplicant.conf
Im WPA-Supplicant Konfigurationsfile tragen wir nun folgendes für ein WPA2-PSK WLAN ein, …
ctrl_interface=/var/run/wpa_supplicant eapol_version=1 ap_scan=2 network={ ssid="WLAN-NAME" key_mgmt=WPA-PSK proto=RSN pairwise=CCMP group=CCMP psk="WLAN-SCHLUESSEL" }
… für nähere Informationen oder ein anderes WLAN-Netz könnt ihr einfach im UbuntuUsers-Wiki nachschauen. Wichtig ist das die Einstellungen zu dem vorhin konfigurierten RT2870STA.dat/RT3070STA.dat Konfigurationsfile passen.
Jetzt müssen wir unserem Ubuntu sagen, dass es für das neue WLAN-Interface unser Konfigurationsfile laden soll.
gksu gedit /etc/network/interfaces
Am Ende fügen wir …
#new wlan interface auto ra0 iface ra0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
… ein. Natürlich unter der Voraussetzung, dass DHCP (iface ra0 inet dhcp) beim Router eingestellt ist.
Zu guter Letzt können wir noch folgenden Befehl in die Konsole eingeben, …
sudo aptitude remove network-manager sudo aptitude autoremove
… um den GNOME Network Manager zu deinstallieren (…nicht zwingend). Neustart!
reboot
Quellen:
WLAN auf Netbook unter Ubuntu
UbuntuUsers Wiki WLAN/wpa supplicant
Belkin N Wireless Stick unter Ubuntu Jaunty Jackalop
> 1 gksu gedit /etc/modprobe.d/blackist.conf
Da fehlt ein l 🙂
korrigiert – danke – 🙂
um ein Kernelmodul automatisch beim booten zu starten ist der richtige Ort die Datei /etc/modules
wenn man schon etwas in die /etc/rc.local einträgt, dann trägt man dort nur den Befehl ein ohne sudo.
Das Paket wpasupplicant (das Paket heiss nicht wpa_supplicant) sollte doch bei einer normalen Installation bereits installiert sein.
Hi Ubunux,
danke für deine Kritik – das was du geschrieben hast ist selbstverständlich alles korrekt!!
Ich habe den Artikel etwas angepasst.
Vielen Dank
Dein Artikel ist echt super! Ich verfahre bislang ähnlich, habe noch ein paar Fragen:
– wozu muss die Lizenzinformation angepasst werden? Das mache ich bis jetzt nicht
– warum schmeißt du den Netzwerk Manager raus, ich nutze den rt3572 erfolgreich mit diesem.
– kann man den Treiber ggf. von DKMS verwalten lassen? Sonst muss man jedes Mal neu kompilieren bei Kernelupdates.
Vielen Dank & Gruß
Christian
Hi Christian,
den Netzwerk Manager habe ich entfernt, weil ich ihn nicht verwende. Für mich, an meinem Media-PC, ist es einfach die Einstellungen über SSH in der Datei „/etc/network/interfaces“ zutreffen, anstelle eine Tastatur anzuschließen. Genau aus diesem Grund habe ich „können“ geschrieben, es ist keine Pflicht!
Keine Ahnung ob man den Treiber über DKMS verwalten kann, mit DKMS habe ich mich noch nie beschäftigt. Ich musste ihn auch schon, wegen einen Kernel-Update, neu kompilieren.
Viele Grüße Nico