RT61
Aus Gentoo Linux Wiki
Inhaltsverzeichnis |
[Bearbeiten] Ralink Wireless Chipsatz RT61
In vielen aktuellen Notebooks und WLAN-Karten (PCI, USB, Cardbus) steckt inzwischen der Chipsatz RT61 von Realtek. Ähnlich wie die Rt2500-er Chipsätze kann dieser auch über Ndiswrapper mit Windows-Treibern, proprietären Realtek-Treiber (Paket ralink-rt61) und die freien RT61-Treiber des rt2x00-Projekts, die ab Linux-Kernel 2.6.24 bereits in Linux enthalten sind, angesteuert werden.
Die ersten beiden Varianten werde ich der Kürze zuliebe hier auslassen (vielleicht erbarmt sich ja jemand, diesen Artikel zu erweitern).
[Bearbeiten] Offenen RT61-Treiber installieren
Zur Installation muss im Kernel Device Drivers -> Network -> Wireless Lan aktiviert sein, der im Kernel enthaltene 802.11b/g-Stack jedoch inaktiviert.
Der RT61-Treiber ist derzeit noch maskiert, wir müssen ihn also vor der Installation unmaskieren:
echo "net-wireless/rt61" >> /etc/portage/package.keywords
Nun können wir den Treiber installieren:
emerge rt61
Man sollte daran denken, dass dieses Modul bei einer Neuinstallation der Kernelmodule überschrieben wird, es danach also neu emerged werden muss.
[Bearbeiten] RT61-Treiber konfigurieren
[Bearbeiten] Modul-Konfiguration
In die /etc/modules.autoload.d/kernel-2.6 schreiben wir bei Bedarf den Eintrag "rt61". Wenn der Kernel Module automatisch nachladen kann, wird das jedoch nicht nötig sein.
[Bearbeiten] Init-Konfiguration
An dieser Stelle ergeben sich zwei Möglichkeiten: man kann die Konfiguration dem Kernelmodul überlassen (wie beim Rt2500 vorgeschlagen), indem man die Einstellungen in die Datei /etc/Wireless/rt61sta.dat schreibt, oder - den flexibleren Weg - indem man die Konfiguration den Init-Skripten überläßt:
Zunächst erstellt man dazu einen Symlink, der ein Init-Skript für die Netzwerkkarte erstellt:
cd /etc/init.d ln -s net.lo net.ra0
Die weitere Konfiguration findet sich in /etc/conf.d/wireless
# Konfiguration ohne wpa_supplicant (denn dieser funktioniert nicht mit dem rt61-Treiber) modules_ra0=( "ifconfig" "iwconfig" "!wpa_supplicant" ) # Diese 3 AccessPoints vorziehen preferred_aps=( "OhneSchutz" "MitWEP" "MitWPA" ) # WEP und WPA brauchen hier Einträge, auch wenn diese nicht genutzt werden können. key_MitWEP="s:WEPkeYalsAsciiCode enc open" key_MitWPA="s:WPAkeYstehTwoanderS enc open" # Die eigentliche Konfiguration für WEP/WPA erfolgt mit ifconfig/iwconfig/iwpriv: iwconfig_MitWEP=( "channel=5" ) iwpriv_MitWEP=( "set AuthMode=WEPAUTO" "set Key1Type=1" "set Key1Str=WEPkeYalsAsciiCode" ) iwconfig_MitWPA=( "channel=9" ) iwpriv_MitWPA=( "set AuthMode=WPAPSK" "set EncrypType=TKIP" "set WPAPSK=WPAkeYalsAsciiCode" ) # IP mit DHCP beziehen config_ra0=( "dhcp" ) # dhcpcd timeouts dhcpcd_ra0="-t 10"
Um mehr über die Optionen zu erfahren, die an den rt61-Treiber mittels iwpriv übergeben werden können, lese man die /usr/share/doc/rt61-1.1.0_beta2/README.bz2.
[Bearbeiten] rt61pci-Treiber in Kernel 2.6.24
Mit der Veröffentlichung des Kernels 2.6.24 wurden die überarbeiteten rt2x00-Treiber aufgenommen, die nun den mac80211-WLAN-Stack verwenden und daher vom wpa_supplicant unterstützt werden. Folgende Einträge müssen in der Kernel-Konfiguration vorgenommen werden, um diesen Treiber zu installieren:
CONFIG_CFG80211=m CONFIG_NL80211=y CONFIG_WIRELESS_EXT=y CONFIG_MAC80211=m CONFIG_MAC80211_RCSIMPLE=y CONFIG_RT2X00=m CONFIG_RT2X00_LIB=m CONFIG_RT2X00_LIB_PCI=m CONFIG_RT2X00_LIB_FIRMWARE=y CONFIG_RT61PCI=m
[Bearbeiten] Was ist wlan0_rename und warum geht die Karte nicht?
Der neue Treiber hat nun geänderte Device-Namen: Statt ra0 heißt die Karte nun wlan0. Außerdem findet ifconfig auch noch wmaster0, der eine Repräsentation des rt2x00-Stacks darstellt. Die Entwickler wollen dieses Device nach Möglichkeit in künftigen Versionen verstecken, damit nicht das passiert, was mir beim ersten Versuch passierte: dass udev das erste WLAN-Device (nämlich wmaster0) nach ra0 umbenennt und versucht, dieses als Karte zu betreiben.
Um diesen Fehler zu beheben, ändere man die /etc/udev/rules.d/70-persistent-net.rules zu folgendem Inhalt:
/etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0x10de:0x0269 (forcedeth)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:16:17:55:0c:cb", NAME="eth0"
# PCI device 0x1814:0x0302 (rt61pci)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:19:db:05:4f:9c", ATTRS{type}=="1", NAME="wlan0"
Danach einfach /etc/init.d/net.ra0 in /etc/init.d/net.wlan0 umbenennen und schon ist das Problem gelöst.
[Bearbeiten] Der freie Access Point im Cafe benutzt Channel 13, die Karte kennt aber plötzlich nur noch 11!
Was man vorher mit CountryRegion=1 beheben konnte, muss man nun im WLAN-Stack einstellen, genauer in den Modul-Optionen von mac80211. Dazu schreibe man folgende Zeile in /etc/modprobe.conf:
options mac80211 ieee80211_regdom=64
Nach dem Neuladen aller Module erkennt die Karte auch wieder alle Kanäle. Man sollte jedoch darauf achten, dass dieser Betriebsmodus nicht in allen Ländern erlaubt ist. Wenn Ihnen dunkle Lieferwagen mit Antennen auf dem Dach folgen, sollten sie ihn vielleicht doch wieder ausschalten.
[Bearbeiten] Konfiguration
Jetzt, nachdem die Karte läuft, kann man sie auch konfigurieren. Die Konfiguration per iwpriv funktioniert beim neuen Treiber zwar nicht mehr, dafür geht es wunderbar mittels wpa_supplicant.
