
Ist es zu Debugging-Zwecken möglich, 2,4 GHz für drahtlose Verbindungen unter Linux (Linux Mint 13 LTS, Cinnamon) zu deaktivieren? Um also den Netzwerktreiber zu zwingen, Verbindungen nur über das 5-GHz-Band herzustellen? Idealerweise suche ich nach einem Befehl/Parameter, der keine Neukompilierung des Kernels erfordert. Netzwerkkarte: Intel Corporation Centrino Ultimate-N 6300
Ich habe versucht, Folgendes einzustellen:
sudo iwconfig wlan0 channel 40
wobei Kanal 40 im gewünschten 5GHz Bereich liegt, das funktioniert aber nur einmal. Sobald die Verbindung beendet wird oder ich von einem Access Point zum anderen roame, fällt meine Netzwerkverbindung wieder in den 2,4 GHz Bereich zurück.
Beispiel:
Sep 9 18:19:39 wpa_supplicant[1230]: Trying to authenticate with 00:1a:1e:88:3b:b1 (SSID='<hidden>' freq=5180 MHz) ---Connection is established correctly.
Sep 9 18:19:45 NetworkManager[908]: <info> (wlan0): roamed from BSSID 00:1A:1E:8A:5B:41 (<hidden>) to 00:1A:1E:88:3B:B1 (<hidden>) Sep 9 18:20:16 wpa_supplicant[1230]: Trying to authenticate with 00:1a:1e:88:3b:a1 (SSID='<hidden>' freq=2412 MHz) ---New connection is being established using the wrong frequency.
Antwort1
Ich glaube, Sie können dies direkt über das Kernelmodul tun. Die meisten Kernelmodule können Parameter annehmen, die Sie entweder beim Laden des Treibers übergeben oder beim Booten über eine Konfigurationsdatei laden können.
Beispiel (2.6 Kernel)
Ich habe ein Fedora 14-System mit den folgenden Wireless-Treibern.
$ lsmod |grep iw
iwlagn 209751 0
iwlcore 195714 1 iwlagn
mac80211 229095 2 iwlagn,iwlcore
cfg80211 134981 3 iwlagn,iwlcore,mac80211
Das Modul, das uns interessiert, ist das mac80211
folgende. Hier finden Sie weitere Informationen dazu:
$ modinfo mac80211
filename: /lib/modules/2.6.35.14-106.fc14.x86_64/kernel/net/mac80211/mac80211.ko
license: GPL
description: IEEE 802.11 subsystem
srcversion: 8D64C9A86E6BE7B4C1AF862
depends: cfg80211
vermagic: 2.6.35.14-106.fc14.x86_64 SMP mod_unload
parm: ieee80211_default_rc_algo:Default rate control algorithm for mac80211 to use (charp)
parm: ieee80211_disable_40mhz_24ghz:Disable 40MHz support in the 2.4GHz band (bool)
Sie können den Schalter auch verwenden -p
, um nur die Parameter eines Moduls abzurufen:
$ modinfo -p mac80211
ieee80211_disable_40mhz_24ghz:Disable 40MHz support in the 2.4GHz band
ieee80211_default_rc_algo:Default rate control algorithm for mac80211 to use
Wenn Sie den Abschnitt unten beachten, in dem angegeben wird parm:
, sind dies die Parameter, die Sie an dieses Modul übergeben können, um seine Konfiguration zu ändern. Die Option, die Sie interessiert, ist diese: ieee80211_disable_40mhz_24ghz
. Sie können sie mit diesem Befehl laden, um sie zu deaktivieren:
$ sudo modprobe mac80211 ieee80211_disable_40mhz_24ghz=1
Entlade- und Lademodule
Um an einen Punkt zu gelangen, an dem Sie dies tun können, müssen Sie die anderen Module entladen, die von diesem abhängen. Sie können die Abhängigkeitsliste in der lsmod
Ausgabe oben sehen, hauptsächlich:
mac80211 229095 2 iwlagn,iwlcore
Daher müssen wir diese beiden Module deinstallieren:
$ sudo rmmod iwlagn
$ sudo rmmod iwlcore
Jetzt können wir mac80211 deinstallieren:
$ sudo rmmod mac80211
Jetzt können wir es mit dem Parameter zum Deaktivieren der 2,4-GHz-Funktion neu laden:
$ sudo modprobe mac80211 ieee80211_disable_40mhz_24ghz=1
Jetzt können wir die anderen 2 Module neu laden:
$ sudo modprobe iwlagn
Es genügt, just modprobe
den obersten Treiber im Stapel zu verwenden. Der Kernel kümmert sich darum, alle weiteren Module, von denen er abhängt, neu zu laden.
$ lsmod | grep iw
iwlagn 209751 0
iwlcore 195714 1 iwlagn
mac80211 229095 2 iwlagn,iwlcore
cfg80211 134981 3 iwlagn,iwlcore,mac80211
Beispiel (3.x-Kernel)
Mit dem 3.x-Linux-Kernel hat sich einiges geändert. Der Parameter ieee80211_disable_40mhz_24ghz
wurde vom mac80211
Modul ins cfg80211
Modul verschoben. Alle Schritte sind also noch relevant, außer dass Sie im Modul ersetzen müssen, cfg80211
wo mac80211
verwendet wurde.
Mit welchen Parametern wurde ein Modul geladen?
Es gibt keinen Befehl, um dies direkt zu tun, aber einige Module stellen diese Informationen im /sys/module
Dateisystem zur Verfügung. Beispiel:
$ cat /sys/module/mac80211/parameters/ieee80211_disable_40mhz_24ghz
Y