So deaktivieren Sie den WLAN-Adapter im 2,4-GHz-Band

So deaktivieren Sie den WLAN-Adapter im 2,4-GHz-Band

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:

  1. 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.
    
  2. 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 mac80211folgende. 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 lsmodAusgabe 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 modprobeden 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_24ghzwurde vom mac80211Modul ins cfg80211Modul verschoben. Alle Schritte sind also noch relevant, außer dass Sie im Modul ersetzen müssen, cfg80211wo mac80211verwendet 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/moduleDateisystem zur Verfügung. Beispiel:

$ cat /sys/module/mac80211/parameters/ieee80211_disable_40mhz_24ghz 
Y

Verweise

verwandte Informationen