Como habilitar o canal Wi-Fi 12 no Raspberry Pi 3?

15

Preciso que meu RPi 3 se conecte a uma rede Wi-Fi usando o canal 12, mas não consigo obter o adaptador Wi-Fi integrado para usar este canal.

Isto é o que eu fiz:

$ sudo apt-get install wireless-regdb iw crda
$ sudo iw reg set NO
$ sudo iwlist wlan0 channel
wlan0     11 channels in total; available frequencies :
      Channel 01 : 2.412 GHz
      Channel 02 : 2.417 GHz
      Channel 03 : 2.422 GHz
      Channel 04 : 2.427 GHz
      Channel 05 : 2.432 GHz
      Channel 06 : 2.437 GHz
      Channel 07 : 2.442 GHz
      Channel 08 : 2.447 GHz
      Channel 09 : 2.452 GHz
      Channel 10 : 2.457 GHz
      Channel 11 : 2.462 GHz

Como você pode ver, a lista não inclui o canal 12 (ou 13). Existe uma maneira de ativar o canal 12 para o adaptador embutido?

Atualização: É isso que recebo no dmesg:

[    5.506232] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code
[    5.756813] brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists
[    5.756854] brcmfmac: brcmf_add_if: ignore IF event
[    5.765557] cfg80211: Calling CRDA to update world regulatory domain
[    5.867878] lirc_rpi: auto-detected active high receiver on GPIO pin 18
[    5.875184] lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0
[    5.875222] lirc_rpi: driver registered!
[    5.885249] bcm2835-rng 3f104000.rng: hwrng registered
[    5.902514] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000
[    6.026071] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code
[    6.026108] cfg80211: World regulatory domain updated:
[    6.026124] cfg80211:  DFS Master region: unset
[    6.026141] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[    6.026173] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[    6.026197] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[    6.026211] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[    6.026246] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[    6.026277] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[    6.026307] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[    6.026332] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[    6.026345] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[    6.026421] cfg80211: Calling CRDA for country: NO
[    6.070591] cfg80211: Regulatory domain changed to country: NO
[    6.070607] cfg80211:  DFS Master region: ETSI
[    6.070613] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[    6.070621] cfg80211:   (2400000 KHz - 2483500 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[    6.070628] cfg80211:   (5150000 KHz - 5250000 KHz @ 80000 KHz, 200000 KHz AUTO), (N/A, 2301 mBm), (N/A)
[    6.070635] cfg80211:   (5250000 KHz - 5350000 KHz @ 80000 KHz, 200000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[    6.070643] cfg80211:   (5470000 KHz - 5795000 KHz @ 160000 KHz), (N/A, 2698 mBm), (0 s)
[    6.070650] cfg80211:   (5815000 KHz - 5850000 KHz @ 35000 KHz), (N/A, 3301 mBm), (0 s)
[    6.070656] cfg80211:   (17100000 KHz - 17300000 KHz @ 200000 KHz), (N/A, 2000 mBm), (N/A)
[    6.070662] cfg80211:   (57000000 KHz - 66000000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
perja
fonte
11
Você definiu sua região. Administrações diferentes têm bandas diferentes, e o Wi-Fi não permitirá frequências não autorizadas.
Milliways 3/03/16
Sim, se eu entendi direito, este comando deve ter definido a região: sudo iw reg set NO
perja
Provavelmente existem muitas maneiras de mexer com configurações regionais. Por que não usar apenas raspi-configda maneira padrão.
Milliways
3
Ok, eu também fiz uma atualização / atualização / dist-upgrade e uma rpi-update e uma BRANCH = next rpi-update como parte desse processo. Não sei se algum deles também foi necessário.
Joan
11
@ joan: foi isso! sudo BRANCH = próxima rpi-update e, em seguida, uma reinicialização resolveu o problema.
perja

Respostas:

9

"Em circunstâncias normais, NUNCA é necessário executar o rpi-update, pois ele sempre leva ao firmware e ao kernel de ponta e, porque essa pode ser uma versão de teste, pode deixar o seu RPi não inicializável". https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911 Até a documentação rpi-update agora alerta "Mesmo no Raspbian, você deve usar isso apenas por um bom motivo. Isso proporciona a você a mais recente vantagem kernel / firmware ".

Eu apenas tive um problema idêntico. A solução, no meu caso, foi seguir a sugestão de joan a partir dos comentários abaixo da pergunta.

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo rpi-update

[reboot]

sudo branch=next rpi-update

[reboot]

Após a conclusão, os canais 12 e 13 aparecem na lista produzida por iwlist wlan0 channel.

goobering
fonte
3
Para o registro: depois do "sudo branch = next rpi-update" o kernel foi atualizado de 4.1.18 para 4.4.3 e o firmware de algo para 41f8b4812ad653abf321b8c54cb4bee57ebdb129 (em /boot/.firmware_revision).
perja
você fez meu dia.
blfuentes 18/03/16
Como você obtém o rpi-updatecomando?
IgorGanapolsky
11
@IgorGanapolsky "Em circunstâncias normais, NUNCA é necessário executar o rpi-update, pois ele sempre leva você ao firmware e ao kernel de ponta e, porque essa pode ser uma versão de teste, pode deixar o seu RPi não inicializável". raspberrypi.org/forums/viewtopic.php?p=916911#p916911
Milliways
Se você usa o canal 13, verifique se está autorizado a sua região.
Piotr Kula
5

Seguir a resposta do @ goobering não foi o suficiente para mim. Eu era capaz de atualizar meu firmware, mas uma vez que tentei executá- sudo branch=next rpi-updatelo me disse que já estava o mais tardar. Eu não estava.

Usando o hash de firmware do @ perja (abaixo da resposta original) eu corri;

sudo rpi-update 41f8b4812ad653abf321b8c54cb4bee57ebdb129

Isso me levou de 4.1.18 a 4.4.3.

Isso significa (pelo menos para mim) que as etapas completas foram;

sudo raspi-config (set Wifi Country to GB, or a country that works for you)
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo rpi-update
shutdown -r now
sudo rpi-update 41f8b4812ad653abf321b8c54cb4bee57ebdb129
shutdown -r now

E viola, agora posso ver o canal 12!

Tenho a sensação de que você pode agrupar esses rpi-updates em um comando, mas é mais seguro pegar o mestre mais recente primeiro, fazer uma reinicialização bem-sucedida e depois tentar 4.4.3.

O tempo de inicialização no 3 é tão rápido assim mesmo ;-)

Post do blog relacionado

Toby
fonte
2

A solução de Shan-Desai funciona bem, mas eu encontrei um problema ao implementá-lo.

Quando eu queria definir o canal Wlan, estava recebendo um erro informando que o dispositivo está em uso e ocupado. Mas, depois de desligar e ligar novamente o dispositivo [em termos de software], o problema desapareceu. Então, o que eu fiz é o seguinte

$ sudo apt-get install wireless-regdb iw crda
$ sudo iw reg set CA 
$ sudo ifconfig wlan0 down
$ sudo ifconfig wlan0 up
$ sudo iwconfig wlan0 channel 11

Outra questão a ser observada é o fato de que as alterações de canal são redefinidas para o padrão a cada reinicialização do RPi. Portanto, para manter essas alterações no seu RPi, sugiro escrever um shell script no diretório raiz e chamá-lo no crontab após a reinicialização. Eu fiz isso por

$ nano wlan0_setup.sh

e preencha o arquivo da seguinte maneira:

$ sudo iw reg set CA 
$ sudo ifconfig wlan0 down
$ sudo ifconfig wlan0 up
$ sudo iwconfig wlan0 channel 11

Em seguida, salvei o arquivo e o tornei um shell script executável executando

$ sudo chmod +x /home/pi/wlan0_setup.sh

Agora que o script é executável executando

$ sh wlan0_setup.sh

podemos adicioná-lo ao crontab executando

$ crontab -e 

quando o crontab abrir, vá para o final do arquivo e adicione o seguinte

@reboot sh /home/pi/wlan0_setup.sh

salve e saia do editor. Ao fazer isso, o script wlan0_setup.sh será executado em cada reinicialização do RPi.

Espero que isso ajude, desejo a todos boa sorte.

Babak D
fonte
1

Obrigado pela resposta Toby, parece que o SHA-1 commit hash como argumento para o comando rpi-update foi necessário para atualizar o firmware para fazê-lo funcionar para ver os canais 12 e 13.

Mas também tenho que agradecer a Shan-Desai, pois a configuração do código do país usando o iw reg set $COUNTRYCODEcomando também foi uma parte muito importante do processo - sem essas configurações, havia apenas 11 canais permitidos / visíveis o tempo todo como padrão e o código do país definido era 00 (não tenho certeza se este realmente pertence a algum país ou se era apenas "ambiente seguro" para todos os países do mundo).

Mig

Michal Mig Novotny
fonte
1

Relatando a partir do futuro - (onde o kernel raspian é 4.9), posso dizer que sudo raspi-configagora oferece uma opção Set wifi countryabaixo localization. A partir daí, você pode definir um código de idioma que habilite os canais 12 e 13.

LudvigH
fonte
Eu recebo um erro com esta opção: "Não foi possível se comunicar com o wpa_supplicant" seguido por "Ocorreu um erro ao executar a opção I4 Alterar país de Wi-fi".
glenneroo
Sim, tentei isso, mas não ajuda.
Jonathan
0

Para adicionar uma nota a esta consulta

Eu tenho um Raspberry Pi - 2 Modelo B e uso um adaptador LogiLink WiFi nele.

Ao executar, iwlist scaneu posso ver todos os canais de 1 a 14 (sim! Eu posso verificar o canal 14)

Mas se eu realmente quero usar o canal 12 ou 13 usando iwconfig wlan0 channel 12ou iwconfig wlan0 channel 13não posso fazê-lo inicialmente, já que ele retorna

Error for wireless request "Set Frequency" (8B04) :
SET failed on device wlan0 ; Invalid argument.

Como estou na Europa, posso acessar esses canais de acordo com os regulamentos e usá-los. Isso foi resolvido de acordo com as seguintes etapas

sudo apt-get update
sudo apt-get install wireless-regdb iw crda

e depois fez o seguinte

sudo iw reg set *In CAPS your Country Code*

com certeza agora iwconfig wlan0 channel 13funcionará e o status pode ser verificado usandoiwconfig wlan0

Isso pode ser um pouco fora do tópico, mas funciona bem, pois não tive o problema de não conseguir verificar os canais 12 e 13, mas não poder usá-lo.

Eu obtive as informações usando este link em alemão

Nota

verifique com a padronização do seu país se você pode ou não usar esses canais, ou não, já que em alguns países esses canais são usados ​​para outros fins.

Shan-Desai
fonte
0

Eu uso a primeira solução (goobering), e não funcionou.

Após pesquisar na Internet, achei que isso poderia ser de ajuda. Tudo que você precisa fazer é instalar o crda e definir a região wifi.

https://www.raspberrypi.org/forums/viewtopic.php?t=36961#p308569 O RPI 3 não vê meu wifi

Se você usar o wpa_supplicant, precisará alterar o country/etc/wpa_supplicant/wpa_supplicant.conf

Peter Lai
fonte
Você não precisa instalar nenhum software. Apenas em sudo iw listtodos os canais de 1 a 14 estão listados no Raspbian Stretch and Buster.
Ingo
-2

Meus elogios a todos. Isso me levará a um caminho que estou procurando. AC - tabelas junto com as tabelas b-n +. Obrigado. Quando iniciei as redes sem fio, eles eram protocolos 802.11 1mb. Usando uma antena Omni e unidirecional, fiz várias redes 802.11b +. O material AC era muito caro na época. A compatibilidade era escassa.

Joel Huebner
fonte
Não entendo o que você quer dizer e como essa resposta confusa ajuda a resolver o problema.
Ingo