Come abilitare il canale Wi-Fi 12 su Raspberry Pi 3?


15

Ho bisogno che il mio RPi 3 si connetta a una rete Wi-Fi tramite il canale 12, ma non riesco a ottenere l'adattatore Wi-Fi integrato per utilizzare questo canale.

Questo è quello che ho fatto:

$ 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

Come puoi vedere, l'elenco non include il canale 12 (o 13). Esiste un modo per abilitare il canale 12 per l'adattatore integrato?

Aggiornamento: questo è ciò che ottengo in 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)

1
Hai impostato la tua regione. Amministrazioni diverse hanno bande diverse e il WiFi non consentirà frequenze non autorizzate.
Milliways

Sì, se lo capisco correttamente, questo comando avrebbe dovuto impostare la regione: sudo iw reg set NO
perja

Probabilmente ci sono molti modi per giocherellare con le impostazioni regionali. Perché non usarlo solo raspi-configper farlo nel modo standard.
Milliways

3
Ok, ho anche fatto un aggiornamento / upgrade / dist-upgrade e un aggiornamento rpi e un BRANCH = prossimo aggiornamento rpi come parte di questo processo. Non so se qualcuno di loro fosse necessario.
joan

1
@joan: era quello! sudo BRANCH = successivo rpi-update e quindi un riavvio risolto il problema.
perja

Risposte:


9

"In circostanze normali non c'è MAI la necessità di eseguire rpi-update in quanto ti porta sempre al firmware e al kernel all'avanguardia e poiché quella potrebbe essere una versione di prova potrebbe non avviare il tuo RPi". https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911 Anche la documentazione di rpi-update ora avverte "Anche su Raspbian dovresti usarlo solo con una buona ragione. kernel / firmware."

Ho appena avuto un problema identico. La soluzione, nel mio caso, è stata quella di seguire il suggerimento di Joan dai commenti sottostanti alla domanda.

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo rpi-update

[reboot]

sudo branch=next rpi-update

[reboot]

Al termine, i canali 12 e 13 compaiono nell'elenco prodotto da iwlist wlan0 channel.


3
Per la cronaca: dopo "sudo branch = next rpi-update" il kernel è stato aggiornato dal 4.1.18 al 4.4.3 e il firmware da qualcosa a 41f8b4812ad653abf321b8c54cb4bee57ebdb129 (da /boot/.firmware_revision).
perja

mi hai reso felice.
blfuentes,

Come si ottiene il rpi-updatecomando?
IgorGanapolsky, il

1
@IgorGanapolsky "In circostanze normali non c'è MAI la necessità di eseguire rpi-update in quanto ti porta sempre al firmware e al kernel all'avanguardia e poiché quella potrebbe essere una versione di prova potrebbe lasciare il tuo RPi non avviabile". raspberrypi.org/forums/viewtopic.php?p=916911#p916911
Milliways

Se usi il canale 13 assicurati di essere autorizzato nella tua regione.
Piotr Kula,

5

Seguire la risposta di @ goobering non l'ha fatto per me. Sono stato in grado di aggiornare il mio firmware ma una volta provato a eseguirlo sudo branch=next rpi-updatemi ha detto che ero già al più tardi. Io non ero.

Usando l'hash del firmware di @ perja (sotto la risposta originale) ho corso;

sudo rpi-update 41f8b4812ad653abf321b8c54cb4bee57ebdb129

Questo mi ha portato dal 4.1.18 al 4.4.3.

Questo significa (almeno per me) i passaggi completi sono stati;

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, ora posso vedere il canale 12!

Ho la sensazione che potresti raggruppare quelle rpi-updates in un solo comando, ma è più sicuro prendere prima l'ultimo master, fare un riavvio riuscito, quindi provare 4.4.3.

Il tempo di avvio sul 3 è comunque così rapido ;-)

Post di blog correlati


2

La soluzione di Shan-Desai funziona bene, ma ho riscontrato un problema durante l'implementazione.

Quando volevo impostare il canale Wlan, stavo ricevendo un errore che indicava che il dispositivo è in uso e occupato. Ma dopo aver spento e riacceso il dispositivo [per quanto riguarda il software] il problema è scomparso. Quindi quello che ho fatto è il seguente

$ 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

Un'altra questione da prendere in considerazione è il fatto che le modifiche del canale vengono ripristinate ai valori predefiniti ad ogni riavvio dell'RPi. Quindi, al fine di mantenere tali modifiche sul tuo RPi, suggerirei di scrivere uno script di shell nella directory principale e chiamarlo in crontab al riavvio. L'ho fatto io

$ nano wlan0_setup.sh

e popolare il file come segue:

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

Ho quindi salvato il file e ne ho eseguito uno script di shell eseguibile

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

Ora che lo script è eseguibile eseguendo

$ sh wlan0_setup.sh

possiamo aggiungerlo nel crontab eseguendolo

$ crontab -e 

quando si apre crontab, vai alla fine del file e aggiungi quanto segue

@reboot sh /home/pi/wlan0_setup.sh

quindi salva ed esci dall'editor. In questo modo, lo script wlan0_setup.sh verrà eseguito su ogni riavvio dell'RPi.

Spero che questo ti aiuti, ti auguro buona fortuna.


1

Grazie per la risposta Toby, sembra che l'hash di commit SHA-1 come argomento per il comando rpi-update fosse necessario per aggiornare il firmware per farlo funzionare per vedere i canali 12 e 13.

Ma devo anche ringraziare Shan-Desai perché impostare il codice paese usando il iw reg set $COUNTRYCODEcomando era una parte molto importante del processo - senza queste impostazioni c'erano solo 11 canali consentiti / visibili tutto il tempo come predefinito e il codice paese impostato era 00 (non sono sicuro che questo appartenga davvero a qualsiasi paese o se fosse solo una "impostazione sicura" per tutti i paesi del mondo).

Mig


1

Segnalazione dal futuro - (dove il kernel raspian è 4.9) Posso dire che sudo raspi-configora offre un'opzione Set wifi countrysotto localization. Da lì è possibile impostare una locale che abilita i canali 12 e 13.


Ottengo un errore con questa opzione: "Impossibile comunicare con wpa_supplicant" seguito da "Si è verificato un errore durante l'esecuzione dell'opzione I4 Cambia Paese Wi-fi".
glenneroo,

Sì, ho provato questo ma non aiuta.
Jonathan,

0

Per aggiungere una nota a questa query

Ho un Raspberry Pi - 2 Modello B e uso un adattatore WiFi LogiLink su di esso.

Durante l'esecuzione iwlist scanposso vedere tutti i canali da 1 a 14 (sì! Posso scansionare il canale 14)

Ma se in realtà voglio usare il canale 12 o 13 usando iwconfig wlan0 channel 12o iwconfig wlan0 channel 13non posso farlo inizialmente dal momento che ritorna

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

Dato che sono in Europa, posso accedere a questi canali in base alle normative e usarli. Questo è stato risolto secondo i seguenti passaggi

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

e quindi ha fatto quanto segue

sudo iw reg set *In CAPS your Country Code*

sicuramente abbastanza ora iwconfig wlan0 channel 13funzionerà e lo stato può essere verificato usandoiwconfig wlan0

Questo potrebbe essere un po 'fuori tema, ma funziona bene poiché non ho avuto i problemi di non essere in grado di scansionare i canali 12 e 13 ma di non poterlo usare.

Ho ottenuto le informazioni usando questo link in tedesco

Nota

si prega di verificare con la standardizzazione del proprio Paese se è possibile utilizzare o meno questi ultimi canali poiché in alcuni paesi questi canali vengono utilizzati per altri scopi.


0

Uso la prima soluzione (goobering) e non ha funzionato.

Dopo la ricerca su Internet, ho scoperto che potrebbero essere d'aiuto. Tutto quello che devi fare è installare crda e impostare la regione wifi.

https://www.raspberrypi.org/forums/viewtopic.php?t=36961#p308569 RPI 3 non vede il mio wifi

Se usi wpa_supplicant, devi cambiare countryin /etc/wpa_supplicant/wpa_supplicant.conf


Non è necessario installare alcun software. Solo con sudo iw listtutti i canali da 1 a 14 sono elencati su Raspbian Stretch e Buster.
Ingo,

-2

Le mie lodi a tutti. Questo mi porterà a un percorso che sto cercando. AC - tabelle insieme alle tabelle b-n +. Grazie. Quando ho iniziato le reti wireless erano protocolli 802.11 1mb. Usando un'antenna Omni e Uni-direzionale ho fatto molta rete 802.11b +. La roba AC era troppo costosa al momento. La compatibilità era scarsa.


Non capisco cosa vuoi dire e come questa risposta confusa aiuti a risolvere il problema.
Ingo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.