Como desabilitar o adaptador sem fio de banda de 2.4Ghz

4

Para fins de depuração, é possível desativar os 2.4GHz para conexões sem fio no Linux (Linux Mint 13 LTS, Cinnamon). Ou seja impor o driver de rede para estabelecer conexões usando apenas a banda de 5Ghz? Idealmente, estou procurando algum comando / parâmetro que não requeira recompilar o kernel. Placa de rede: Intel Corporation Centrino Ultimate-N 6300

Eu tentei definir:

sudo iwconfig wlan0 channel 40

onde o canal 40 está na faixa desejada de 5Ghz, mas isso só funciona uma vez. Assim que a conexão é finalizada ou quando eu perco de um ponto de acesso para outro, minha conexão de rede volta para o intervalo 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.
    
por Joris Kinable 19.09.2013 / 00:03

1 resposta

3

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

Exemplo (Kernels 2.6)

Eu tenho um sistema Fedora 14 com os seguintes drivers sem fio.

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

O módulo em que estamos interessados é o mac80211 one. Veja mais informações sobre isso:

$ 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 opção -p para obter apenas os parâmetros dos módulos:

$ 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ê observar a seção na parte inferior onde especifica parm: , esses são os parâmetros que você pode passar para este módulo para alterar a configuração. A opção em que você está interessado é a seguinte: ieee80211_disable_40mhz_24ghz . Você pode carregá-lo com este comando para desativá-lo:

$ sudo modprobe mac80211 ieee80211_disable_40mhz_24ghz=1

Descarregar & Carregando módulos

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

mac80211              229095  2 iwlagn,iwlcore

Portanto, precisamos desinstalar esses dois 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 desativar o recurso de 2,4 GHz:

$ sudo modprobe mac80211 ieee80211_disable_40mhz_24ghz=1

Agora podemos recarregar os outros dois módulos:

$ sudo modprobe iwlagn

É suficiente para just modprobe o driver mais alto na pilha, o Kernel terá o cuidado de recarregar quaisquer módulos adicionais dos quais ele depende.

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

Exemplo (Kernels 3.x)

As coisas mudaram um pouco com os Kernels Linux 3.x. O parâmetro ieee80211_disable_40mhz_24ghz foi movido do módulo mac80211 para o módulo cfg80211 . Portanto, todas as etapas ainda são relevantes, exceto que você precisará substituir o módulo cfg80211 em que mac80211 foi usado.

Quais parâmetros foram um módulo carregado?

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

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

Referências

por 19.09.2013 / 02:30

Tags