2.4Ghz 대역 무선 어댑터를 비활성화하는 방법

2.4Ghz 대역 무선 어댑터를 비활성화하는 방법

디버깅 목적으로 Linux(Linux Mint 13 LTS, Cinnamon)에서 2.4Ghz 무선 연결을 비활성화할 수 있습니까? 즉, 네트워크 드라이버가 연결을 설정하기 위해 5Ghz 대역만 사용하도록 강제합니까? 이상적으로는 커널을 다시 컴파일할 필요가 없는 일부 명령/인수를 찾고 있습니다. 네트워크 카드: Intel Centrino Ultimate-N 6300

나는 다음을 설정하려고 한다:

sudo iwconfig wlan0 channel 40

채널 40이 필요한 5Ghz 범위 내에 있지만 이는 한 번만 작동합니다. 연결이 종료되거나 한 액세스 포인트에서 다른 액세스 포인트로 로밍하면 네트워크 연결이 2.4Ghz 범위로 돌아갑니다.

예:

  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.
    

답변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

따라서 다음 두 모듈을 제거해야 합니다.

$ 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되었습니다 . 따라서 사용 중인 모듈을 대체 해야 하는 경우를 제외하고 모든 단계는 여전히 관련이 있습니다 .mac80211cfg80211cfg80211mac80211

모듈에 어떤 매개변수가 로드됩니까?

이를 직접 수행하는 명령은 없지만 일부 모듈은 /sys/module파일 시스템에 이 정보를 노출합니다. 예를 들어:

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

인용하다

관련 정보