デバッグ目的でLinux(Linux Mint 13 LTS、Cinnamon)で2.4 Ghzワイヤレス接続を無効にできますか?つまり、ネットワークドライバが接続を確立するために5Ghz帯域のみを使用するように強制しますか?理想的には、カーネルを再コンパイルする必要がないいくつかのコマンド/引数を探しています。ネットワークカード:Intel Centrino Ultimate-N 6300
私は以下を設定しようとしています:
sudo iwconfig wlan0 channel 40
チャネル40が必要な5Ghzの範囲内ですが、これは一度だけ機能します。接続が終了したり、あるアクセスポイントから別のアクセスポイントにローミングしたりすると、ネットワーク接続は2.4 GHzの範囲に戻ります。
例:
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.
答え1
カーネルモジュールから直接これを行うことができると思います。ほとんどのカーネルモジュールは、ドライバのロード時に渡すことができるパラメータを使用するか、起動時に設定ファイルを介してそれらをロードできます。
はい(2.6カーネル)
以下のワイヤレスドライバを含むFedora 14システムがあります。
$ lsmod |grep iw
iwlagn 209751 0
iwlcore 195714 1 iwlagn
mac80211 229095 2 iwlagn,iwlcore
cfg80211 134981 3 iwlagn,iwlcore,mac80211
私たちが興味を持っているモジュールはこれですmac80211
。これに関する詳細情報は次のとおりです。
$ 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)
-p
スイッチを使用してモジュールパラメータを取得することもできます。
$ 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
下部に指定されたセクションがある場合は、parm:
このモジュールに渡して設定方法を変更できるパラメータです。興味のあるオプションは次のとおりですieee80211_disable_40mhz_24ghz
。以下をロードして無効にできます。
$ sudo modprobe mac80211 ieee80211_disable_40mhz_24ghz=1
モジュールのアンロードとロード
これを実行できるポイントに達するには、このモジュールに依存する他のモジュールを削除する必要があります。lsmod
上記の出力では、主に次の依存関係のリストが表示されます。
mac80211 229095 2 iwlagn,iwlcore
したがって、次の 2 つのモジュールを削除する必要があります。
$ sudo rmmod iwlagn
$ sudo rmmod iwlcore
これでmac80211を削除できます。
$ sudo rmmod mac80211
これで、2.4GHz機能を無効にするパラメータを使用してリロードできます。
$ sudo modprobe mac80211 ieee80211_disable_40mhz_24ghz=1
これで、他の2つのモジュールを再ロードできます。
$ sudo modprobe iwlagn
これはスタックの最も高いドライバに十分でありjust modprobe
、カーネルは依存する他のモジュールを再ロードします。
$ lsmod | grep iw
iwlagn 209751 0
iwlcore 195714 1 iwlagn
mac80211 229095 2 iwlagn,iwlcore
cfg80211 134981 3 iwlagn,iwlcore,mac80211
はい(3.xカーネル)
3.x Linuxカーネルの出現により、状況が若干変更されました。パラメータがモジュールからモジュールに移動されieee80211_disable_40mhz_24ghz
ました。したがって、使用中のモジュールを置き換える必要がある場合を除いて、すべての手順は依然として関連しています。mac80211
cfg80211
cfg80211
mac80211
モジュールにどのパラメータがロードされますか?
これを直接実行するコマンドはありませんが、一部のモジュールは/sys/module
この情報をファイルシステムに公開します。たとえば、
$ cat /sys/module/mac80211/parameters/ieee80211_disable_40mhz_24ghz
Y