¿Cómo habilitar el canal Wi-Fi 12 en Raspberry Pi 3?

15

Necesito mi RPi 3 para conectarme a una red Wi-Fi usando el canal 12, pero no puedo obtener el adaptador Wi-Fi incorporado para usar este canal.

Esto es lo que he hecho:

$ 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 puede ver, la lista no incluye el canal 12 (o 13). ¿Hay alguna manera de habilitar el canal 12 para el adaptador incorporado?

Actualización: Esto es lo que obtengo en 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
fuente
1
¿Has establecido tu región? Las diferentes administraciones tienen diferentes bandas, y WiFi no permitirá frecuencias no autorizadas.
Milliways
Sí, si lo entiendo correctamente, este comando debería haber configurado la región: sudo iw reg set NO
perja
Probablemente hay muchas formas de jugar con la configuración regional. ¿Por qué no usarlo raspi-configpara hacerlo de la manera estándar?
Milliways
3
Bien, también hice una actualización / actualización / dist-upgrade y una actualización rpi y una RAMA = próxima actualización rpi como parte de este proceso. No sé si alguno de ellos también fue necesario.
joan
1
@joan: eso fue todo! sudo BRANCH = next rpi-update y luego un reinicio resolvió el problema.
perja

Respuestas:

9

"En circunstancias normales, NUNCA hay necesidad de ejecutar rpi-update, ya que siempre te lleva al núcleo y al firmware de vanguardia, y debido a que puede ser una versión de prueba, podría dejar tu RPi no arrancable". https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911 Incluso la documentación de actualización de rpi ahora advierte "Incluso en Raspbian solo deberías usar esto con una buena razón. Esto te da la última ventaja. kernel / firmware ".

Acabo de tener un problema idéntico. La solución, en mi caso, fue seguir la sugerencia de joan de los comentarios debajo de la pregunta.

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo rpi-update

[reboot]

sudo branch=next rpi-update

[reboot]

Al finalizar, los canales 12 y 13 aparecen en la lista producida por iwlist wlan0 channel.

goobering
fuente
3
Para el registro: después de "sudo branch = next rpi-update" el kernel se actualizó de 4.1.18 a 4.4.3 y el firmware de algo a 41f8b4812ad653abf321b8c54cb4bee57ebdb129 (de /boot/.firmware_revision).
perja
me has alegrado el día.
blfuentes
Cómo se consigue rpi-update comando?
IgorGanapolsky
1
@IgorGanapolsky "En circunstancias normales, NUNCA es necesario ejecutar rpi-update, ya que siempre te lleva al núcleo y al firmware de vanguardia, y debido a que puede ser una versión de prueba, podría dejar tu RPi no arrancable". raspberrypi.org/forums/viewtopic.php?p=916911#p916911
Milliways
Si usa el canal 13, asegúrese de tener permiso en su región.
Piotr Kula
5

Seguir la respuesta de @gobering no lo hizo por mí. Pude actualizar mi firmware pero una vez que intenté ejecutarlo sudo branch=next rpi-updateme dijo que ya estaba a más tardar. Yo no estaba.

Utilizando el hash de firmware de @ perja (debajo de la respuesta original) corrí;

sudo rpi-update 41f8b4812ad653abf321b8c54cb4bee57ebdb129

Esto me llevó del 4.1.18 al 4.4.3.

Esto significa (al menos para mí) que los pasos completos fueron;

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

Y viola, ¡ahora puedo ver el canal 12!

Tengo la sensación de que podría acumular esos rpi-updates en un solo comando, pero se siente más seguro tomar el último maestro primero, hacer un reinicio exitoso y luego intentar 4.4.3.

El tiempo de arranque en el 3 es muy rápido de todos modos ;-)

Publicación de blog relacionada

Toby
fuente
2

La solución de Shan-Desai funciona bien, pero encontré un problema al implementarla.

Cuando quería configurar el canal Wlan, recibía un error que indicaba que el dispositivo estaba en uso y ocupado. Pero después de apagar y volver a encender el dispositivo [en cuanto al software], el problema desapareció. Entonces lo que hice es lo siguiente

$ 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

Otro asunto a tener en cuenta es el hecho de que los cambios de canal se restablecen a los valores predeterminados cada vez que se reinicia el RPi. Entonces, para mantener esos cambios en su RPi, sugeriría escribir un script de shell en el directorio raíz y llamarlo en crontab al reiniciar. Lo hice por

$ nano wlan0_setup.sh

y complete el archivo de la siguiente manera:

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

Luego guardé el archivo y lo convertí en un script de shell ejecutable ejecutando

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

Ahora que el script es ejecutable ejecutando

$ sh wlan0_setup.sh

podemos agregarlo en el crontab ejecutando

$ crontab -e 

cuando se abre el crontab, ve al final del archivo y agrega lo siguiente

@reboot sh /home/pi/wlan0_setup.sh

luego guarde y salga del editor. Al hacerlo, el script wlan0_setup.sh se ejecutará en cada reinicio del RPi.

Espero que esto ayude, les deseo mucha suerte.

Babak D
fuente
1

Gracias por la respuesta Toby, parece que el hash SHA-1 commit como argumento para el comando rpi-update fue necesario para actualizar el firmware para que funcione para ver los canales 12 y 13.

Pero también tengo que agradecer a Shan-Desai, ya que configurar el código del país usando el iw reg set $COUNTRYCODEcomando también fue una parte muy importante del proceso: sin esta configuración, solo había 11 canales permitidos / visibles todo el tiempo como predeterminado y el código de país establecido era 00 (no estoy seguro de si este realmente pertenece a algún país o si se trataba simplemente de "configuración segura" para todos los países del mundo).

Mig

Michal Mig Novotny
fuente
1

Informes desde el futuro - (donde el núcleo raspian es 4.9) Puedo decir que sudo raspi-configahora ofrece una opción Set wifi countrydebajo localization. Desde allí, puede establecer una configuración regional que habilite los canales 12 y 13.

LudvigH
fuente
Aparece un error con esta opción: "No se pudo comunicar con wpa_supplicant" seguido de "Hubo un error al ejecutar la opción I4 Cambiar país de Wi-Fi".
glenneroo
Sí, probé esto pero no ayuda.
Jonathan
0

Para agregar una nota a esta consulta

Tengo un Raspberry Pi - 2 Modelo B y uso un adaptador WiFi LogiLink .

Al realizar iwlist scan, puedo ver todos los canales del 1 al 14 (sí, puedo escanear el canal 14)

Pero si realmente quiero usar el canal 12 o 13 usando iwconfig wlan0 channel 12o iwconfig wlan0 channel 13no puedo hacerlo inicialmente ya que regresa

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

Como estoy en Europa, puedo acceder a estos canales de acuerdo con las regulaciones y usarlos. Esto se resolvió de acuerdo con los siguientes pasos

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

y luego hizo lo siguiente

sudo iw reg set *In CAPS your Country Code*

seguro que ahora iwconfig wlan0 channel 13funcionará y el estado se puede verificar usandoiwconfig wlan0

Esto puede estar un poco fuera de tema, pero funciona bien ya que no tuve los problemas de no poder escanear los canales 12 y 13, pero no pude usarlo.

Obtuve la información usando este enlace en alemán

Nota

verifique con la estandarización de su país si puede usar los últimos canales o no, ya que en algunos países estos canales se usan para otros fines.

Shan-Desai
fuente
0

Yo uso la primera solución (goobering), y no funcionó.

Después de buscar en Internet, descubrí que estos podrían ser de ayuda. Todo lo que necesita hacer es instalar crda y configurar la región wifi.

https://www.raspberrypi.org/forums/viewtopic.php?t=36961#p308569 RPI 3 no ve mi wifi

Si usa wpa_supplicant, debe cambiar countryen /etc/wpa_supplicant/wpa_supplicant.conf

Peter Lai
fuente
No necesita instalar ningún software. Solo con sudo iw listtodos los canales del 1 al 14 figuran en Raspbian Stretch y Buster.
Ingo
-2

Mis felicitaciones a todos. Esto me llevará a un camino que estoy buscando. AC - tablas junto con las tablas b-n +. Gracias. Cuando comencé las redes inalámbricas, eran protocolos 802.11 1mb. Usando una antena Omni y Unidireccional, hice muchas redes 802.11b +. El aire acondicionado era demasiado caro en ese momento. La compatibilidad era escasa.

Joel Huebner
fuente
No entiendo lo que quieres decir y cómo esta respuesta confusa ayuda a resolver el problema.
Ingo