Comment activer le canal Wi-Fi 12 sur Raspberry Pi 3?

15

J'ai besoin de mon RPi 3 pour me connecter à un réseau Wi-Fi en utilisant le canal 12, mais je ne parviens pas à obtenir l'adaptateur Wi-Fi intégré pour utiliser ce canal.

Voici ce que j'ai fait:

$ 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

Comme vous pouvez le voir, la liste n'inclut pas le canal 12 (ou 13). Existe-t-il un moyen d'activer le canal 12 pour l'adaptateur intégré?

Mise à jour: voici ce que j'obtiens dans 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
la source
1
Avez-vous défini votre région. Différentes administrations ont des bandes différentes et le WiFi n'autorisera pas les fréquences non autorisées.
Milliways
Oui, si je comprends bien, cette commande aurait dû définir la région: sudo iw reg set NO
perja
Il existe probablement de nombreuses façons de jouer avec les paramètres régionaux. Pourquoi ne pas simplement l'utiliser raspi-configpour le faire de manière standard.
Milliways
3
D'accord, j'ai également fait une mise à jour / mise à niveau / dist-mise à niveau et une mise à jour rpi et une BRANCH = prochaine mise à jour rpi dans le cadre de ce processus. Je ne sais pas si l'un d'eux était également nécessaire.
joan
1
@joan: c'était ça! sudo BRANCH = prochaine mise à jour rpi, puis un redémarrage a résolu le problème.
perja

Réponses:

9

"Dans des circonstances normales, il n'est JAMAIS nécessaire d'exécuter rpi-update car cela vous amène toujours au firmware et au noyau de pointe et parce que cela peut être une version de test, cela pourrait laisser votre RPi non amorçable". https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911 Même la documentation de mise à jour rpi avertit désormais "Même sur Raspbian, vous ne devez utiliser cela que pour une bonne raison. Cela vous donne le dernier bord de saignement noyau / firmware. "

Je viens d'avoir un problème identique. La solution, dans mon cas, était de suivre la suggestion de joan dans les commentaires sous la question.

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo rpi-update

[reboot]

sudo branch=next rpi-update

[reboot]

À la fin, les canaux 12 et 13 apparaissent dans la liste produite par iwlist wlan0 channel.

goobering
la source
3
Pour mémoire: après "sudo branch = next rpi-update" le noyau a été mis à jour de 4.1.18 à 4.4.3 et le firmware de quelque chose à 41f8b4812ad653abf321b8c54cb4bee57ebdb129 (depuis /boot/.firmware_revision).
perja
tu as fait ma journée.
blfuentes
Comment obtenez-vous la rpi-updatecommande?
IgorGanapolsky
1
@IgorGanapolsky "Dans des circonstances normales, il n'est JAMAIS nécessaire d'exécuter rpi-update car cela vous amène toujours au firmware et au noyau de pointe et parce que cela peut être une version de test, cela pourrait laisser votre RPi non amorçable". raspberrypi.org/forums/viewtopic.php?p=916911#p916911
Milliways
Si vous utilisez le canal 13, assurez-vous que vous êtes autorisé à le faire dans votre région.
Piotr Kula
5

Suivre la réponse de @ goobering ne l'a pas vraiment fait pour moi. J'ai pu mettre à jour mon firmware mais une fois que j'ai essayé de le lancer, sudo branch=next rpi-updateil m'a dit que j'étais déjà au plus tard. Je n'étais pas.

En utilisant le hachage du firmware de @ perja (en dessous de la réponse d'origine), j'ai couru;

sudo rpi-update 41f8b4812ad653abf321b8c54cb4bee57ebdb129

Cela m'a fait passer du 4.1.18 au 4.4.3.

Cela signifie (pour moi au moins) que les étapes complètes étaient;

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

Et l'alto, je peux maintenant voir le canal 12!

J'ai le sentiment que vous pouvez regrouper ces rpi-updates en une seule commande, mais il est plus sûr de récupérer le dernier maître en premier, de redémarrer avec succès puis d'essayer 4.4.3.

Le temps de démarrage sur le 3 est si rapide de toute façon ;-)

Article de blog connexe

Toby
la source
2

La solution de Shan-Desai fonctionne bien, mais j'ai rencontré un problème lors de sa mise en œuvre.

Lorsque je voulais définir le canal Wlan, je recevais une erreur indiquant que l'appareil était utilisé et occupé. Mais après avoir éteint et rallumé l'appareil [au niveau logiciel], le problème a disparu. Donc ce que j'ai fait est le suivant

$ 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

Une autre chose à noter est le fait que les changements de canal sont réinitialisés par défaut à chaque redémarrage du RPi. Donc, afin de conserver ces modifications sur votre RPi, je suggère d'écrire un script shell dans le répertoire racine et de l'appeler dans crontab lors du redémarrage. Je l'ai fait par

$ nano wlan0_setup.sh

et remplissez le fichier comme suit:

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

J'ai ensuite enregistré le fichier et en ai fait un script shell exécutable en exécutant

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

Maintenant que le script est exécutable en exécutant

$ sh wlan0_setup.sh

on peut l'ajouter dans la crontab en exécutant

$ crontab -e 

lorsque la crontab s'ouvre, allez à la fin du fichier et ajoutez ce qui suit

@reboot sh /home/pi/wlan0_setup.sh

puis enregistrez et quittez l'éditeur. Ce faisant, le script wlan0_setup.sh s'exécutera à chaque redémarrage du RPi.

J'espère que cela vous aide, je vous souhaite bonne chance.

Babak D
la source
1

Merci pour la réponse Toby, il semble que le hachage de validation SHA-1 en tant qu'argument de la commande rpi-update était nécessaire pour mettre à jour le firmware pour le faire fonctionner pour voir les canaux 12 et 13.

Mais je dois également remercier Shan-Desai car la configuration du code de pays à l'aide de la iw reg set $COUNTRYCODEcommande était également une partie très importante du processus - sans ces paramètres, il n'y avait que 11 canaux autorisés / visibles tout le temps par défaut et le code de pays défini. était 00 (je ne sais pas si celui-ci appartient vraiment à un pays ou s'il s'agissait simplement d'un "cadre sûr" pour tous les pays du monde).

Mig

Michal Mig Novotny
la source
1

Rapport du futur - (où le noyau raspian est 4.9) Je peux dire que sudo raspi-configpropose maintenant une option Set wifi countrysous localization. De là, vous pouvez définir un environnement local qui active les canaux 12 et 13.

LudvigH
la source
Je reçois une erreur avec cette option: "Impossible de communiquer avec wpa_supplicant" suivi de "Une erreur s'est produite lors de l'exécution de l'option I4 Changer le pays Wi-Fi".
glenneroo
Ouais, j'ai essayé ça mais ça n'aide pas.
Jonathan
0

Pour ajouter une note à cette requête

J'ai un Raspberry Pi - 2 Model B et j'utilise un adaptateur WiFi LogiLink dessus.

Lors de l'exécution, iwlist scanje peux voir tous les canaux de 1 à 14 (oui! Je peux balayer le canal 14)

Mais si je veux réellement utiliser le canal 12 ou 13 en utilisant iwconfig wlan0 channel 12ou iwconfig wlan0 channel 13je ne peux pas le faire initialement car il revient

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

Étant donné que je suis en Europe, je peux accéder à ces chaînes conformément à la réglementation et les utiliser. Cela a été résolu selon les étapes suivantes

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

puis a fait ce qui suit

sudo iw reg set *In CAPS your Country Code*

bien sûr maintenant iwconfig wlan0 channel 13fonctionnera et le statut peut être vérifié en utilisantiwconfig wlan0

Cela peut être un peu hors sujet mais cela fonctionne bien car je n'ai pas eu le problème de ne pas pouvoir balayer les canaux 12 et 13 mais de ne pas pouvoir l'utiliser.

J'ai obtenu les informations en utilisant ce lien en allemand

Remarque

veuillez vérifier avec la normalisation de votre pays si vous pouvez ou non utiliser ces derniers canaux, car dans certains pays, ces canaux sont utilisés à d'autres fins.

Shan-Desai
la source
0

J'utilise la première solution (goobering), et cela n'a pas fonctionné.

Après une recherche sur Internet, j'ai trouvé que cela pouvait être utile. Tout ce que vous avez à faire est d'installer crda et de définir la région wifi.

https://www.raspberrypi.org/forums/viewtopic.php?t=36961#p308569 RPI 3 ne voit pas mon wifi

Si vous utilisez wpa_supplicant, vous devez changer countrydans /etc/wpa_supplicant/wpa_supplicant.conf

Peter Lai
la source
Vous n'avez pas besoin d'installer de logiciel. Juste avec sudo iw listtous les canaux 1 à 14 sont répertoriés sur Raspbian Stretch et Buster.
Ingo
-2

Mes félicitations à tous. Cela m'amènera sur un chemin que je recherche. AC - tables avec les tables b-n +. Je vous remercie. Quand j'ai commencé les réseaux sans fil, c'était des protocoles 802.11 1mb. En utilisant une antenne omnidirectionnelle et unidirectionnelle, j'ai fait beaucoup de mise en réseau 802.11b +. Le matériel AC était beaucoup trop cher à l'époque. La compatibilité était rare.

Joel Huebner
la source
Je ne comprends pas ce que vous voulez dire et comment cette réponse confuse aide à résoudre le problème.
Ingo