
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:
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.
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 -p
opçã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 lsmod
saí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 modprobe
o 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_24ghz
foi movido de mac80211
módulo para cfg80211
módulo. Portanto, todas as etapas ainda são relevantes, exceto que você precisará substituir o cfg80211
módulo onde mac80211
foi 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/module
sistema de arquivos. Por exemplo:
$ cat /sys/module/mac80211/parameters/ieee80211_disable_40mhz_24ghz
Y