Como desativar o adaptador sem fio de banda de 2,4 GHz

Como desativar o adaptador sem fio de banda de 2,4 GHz

Para fins de depuração, é possível desabilitar 2,4 GHz para conexões sem fio no Linux (Linux Mint 13 LTS, Cinnamon). Ou seja, fazer com que o driver de rede estabeleça conexões usando apenas a banda de 5 GHz? Idealmente, estou procurando algum comando/parâmetro que não exija a recompilação do kernel. Placa de rede: Intel Corporation Centrino Ultimate-N 6300

Eu tentei configurar:

sudo iwconfig wlan0 channel 40

onde o canal 40 está na faixa desejada de 5 GHz, mas funciona apenas uma vez. Assim que a conexão é encerrada ou quando eu faço roaming de um ponto de acesso para outro, minha conexão de rede volta para a faixa de 2,4 Ghz.

Exemplo:

  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.
    

Responder1

Acredito que você pode fazer isso diretamente através do módulo Kernel. A maioria dos módulos do Kernel pode receber parâmetros que você pode passar quando o driver é carregado ou podem ser carregados através de um arquivo de configuração durante a inicialização.

Exemplo (2.6 Kernels)

Eu tenho um sistema Fedora 14 com os seguintes drivers wireless.

$ lsmod |grep iw
iwlagn                209751  0 
iwlcore               195714  1 iwlagn
mac80211              229095  2 iwlagn,iwlcore
cfg80211              134981  3 iwlagn,iwlcore,mac80211

O módulo no qual estamos interessados ​​é esse mac80211, aqui estão mais informações sobre ele:

$ 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)

Você também pode usar a -popção para obter apenas os parâmetros do módulo:

$ 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

Se você notar a seção na parte inferior onde especifica parm:, estes são os parâmetros que você pode passar para este módulo para alterar a forma como ele está configurado. A opção que te interessa é essa: ieee80211_disable_40mhz_24ghz. Você pode carregá-lo com este comando para desativá-lo:

$ sudo modprobe mac80211 ieee80211_disable_40mhz_24ghz=1

Módulos de descarregamento e carregamento

Para chegar a um ponto em que você possa fazer isso, você precisa descarregar os outros módulos que dependem deste. Você pode ver a lista de dependências na lsmodsaída acima, principalmente:

mac80211              229095  2 iwlagn,iwlcore

Portanto, precisamos desinstalar estes 2 módulos:

$ sudo rmmod iwlagn
$ sudo rmmod iwlcore

Agora podemos desinstalar o mac80211:

$ sudo rmmod mac80211

Agora podemos recarregá-lo com o parâmetro para desabilitar o recurso de 2,4 GHz:

$ sudo modprobe mac80211 ieee80211_disable_40mhz_24ghz=1

Agora podemos recarregar os outros 2 módulos:

$ sudo modprobe iwlagn

É suficiente para just modprobeo driver mais alto da pilha, o Kernel se encarregará de recarregar quaisquer módulos adicionais dos quais dependa.

$ lsmod | grep iw
iwlagn                209751  0 
iwlcore               195714  1 iwlagn
mac80211              229095  2 iwlagn,iwlcore
cfg80211              134981  3 iwlagn,iwlcore,mac80211

Exemplo (núcleos 3.x)

As coisas mudaram um pouco com os Kernels Linux 3.x. O parâmetro ieee80211_disable_40mhz_24ghzfoi movido de mac80211módulo para cfg80211módulo. Portanto, todas as etapas ainda são relevantes, exceto que você precisará substituir o cfg80211módulo onde mac80211foi usado.

Com quais parâmetros um módulo foi carregado?

Não existe um comando para fazer isso diretamente, mas alguns módulos expõem essas informações no /sys/modulesistema de arquivos. Por exemplo:

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

Referências

informação relacionada