Як увімкнути Wi-Fi канал 12 на Raspberry Pi 3?


15

Мені потрібен мій RPi 3 для підключення до мережі Wi-Fi за допомогою каналу 12, але я не в змозі отримати вбудований адаптер Wi-Fi для використання цього каналу.

Це те, що я зробив:

$ 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

Як ви бачите, до списку не входить канал 12 (або 13). Чи є спосіб включити канал 12 для вбудованого адаптера?

Оновлення. Це те, що я отримую в 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
Ви встановили свій регіон. У різних адміністрацій є різні діапазони, і WiFi не дозволить несанкціоновану частоту.
Міллівей

Так, якщо я правильно це розумію, ця команда повинна була встановити регіон: sudo iw reg set NO
perja

Напевно, існує багато способів узгодитись із регіональними налаштуваннями. Чому б просто не використовувати raspi-configце стандартним способом.
Міллівей

3
Гаразд, я також зробив оновлення / оновлення / dist-upgrade та rpi-update та BRANCH = наступне rpi-оновлення як частина цього процесу. Я не знаю, чи потрібні були якісь з них.
Жанна

1
@joan: це було все! sudo BRANCH = наступне оновлення rpi, а потім перезавантаження вирішило проблему.
перя

Відповіді:


9

"У звичайних обставинах НІКОЛИ не потрібно запускати rpi-оновлення, оскільки це завжди приводить вас до передового програмного забезпечення та ядра, і тому, що це може бути тестова версія, вона може залишити ваш RPi незавантаженим". https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911 Навіть документація про оновлення rpi зараз попереджає "Навіть на Raspbian ви повинні використовувати це лише з поважної причини. Це дає вам останню перевагу кровотоку ядро / прошивка. "

У мене щойно була однакова проблема. У моєму випадку рішенням було відповідати пропозиції Джоан із коментарів під питанням.

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo rpi-update

[reboot]

sudo branch=next rpi-update

[reboot]

Після завершення канали 12 і 13 з'являються у списку, створеному компанією iwlist wlan0 channel.


3
Для запису: після "sudo гілка = наступне rpi-оновлення" ядро ​​було оновлено з 4.1.18 до 4.4.3, а прошивка з чогось до 41f8b4812ad653abf321b8c54cb4bee57ebdb129 (від /boot/.firmware_revision).
перя

ти мене вразив.
blfuentes

Як ви отримуєте rpi-updateкоманду?
ІгорГанапольський

1
@IgorGanapolsky "У звичайних обставинах НІКОЛИ не потрібно запускати rpi-оновлення, оскільки це завжди приводить вас до передового програмного забезпечення та ядра, і тому, що це може бути тестова версія, вона може залишити ваш RPi незавантаженим". raspberrypi.org/forums/viewtopic.php?p=916911#p916911
Milliways

Якщо ви використовуєте канал 13, переконайтеся, що ви дозволені у своєму регіоні.
Пьотр Кула

5

Наступна відповідь @ goobering не дуже зробила це для мене. Я зміг оновити свою прошивку, але як тільки я спробував sudo branch=next rpi-updateїї запустити, сказав, що я вже пізніше. Я не був.

Використовуючи хеш програмного забезпечення @ perja (нижче початкової відповіді), я побіг;

sudo rpi-update 41f8b4812ad653abf321b8c54cb4bee57ebdb129

Це отримало мене з 4.1.18 до 4.4.3.

Це означає (принаймні для мене) завершені кроки;

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

І віолу, я зараз бачу канал 12!

У мене є відчуття, що ви можете згорнути ці rpi-updateкоманди в одну команду, але відчувати себе безпечніше спочатку схопити останнього майстра, зробити успішну перезавантаження, а потім спробувати 4.4.3.

Час завантаження на 3 так чи інакше швидкий ;-)

Пов’язана публікація в блозі


2

Рішення Шан-Дезай добре працює, але під час його реалізації я зіткнувся з проблемою.

Коли я хотів встановити канал Wlan, у мене з’явилася помилка про те, що пристрій використовується та зайнятий. Але після вимкнення та повторного ввімкнення пристрою [програмно-технічно] проблема усунулася. Тому я зробив наступне

$ 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

Ще одне, що слід зауважити, - це те, що зміни каналу скидаються до стандартних параметрів при кожному перезавантаженні RPi. Отже, щоб зберегти ці зміни у вашому RPi, я б запропонував написати скрипт оболонки в кореневий каталог і викликати його в crontab при перезавантаженні. Я зробив це мимо

$ nano wlan0_setup.sh

і заповнити файл наступним чином:

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

Потім я зберег файл і зробив його запущеним сценарієм оболонки, запустивши

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

Тепер, коли сценарій виконується за допомогою запуску

$ sh wlan0_setup.sh

ми можемо додати його в crontab, виконавши

$ crontab -e 

коли відкриється crontab, перейдіть до кінця файлу та додайте наступне

@reboot sh /home/pi/wlan0_setup.sh

потім збережіть та вийдіть із редактора. Тим самим сценарій wlan0_setup.sh запускатиметься при кожному перезавантаженні RPi.

Я сподіваюся, що це допомагає, бажаю всім удачі.


1

Дякуємо за відповідь Тобі, схоже, що хеш-компіляція SHA-1, як аргумент команді rpi-update, була необхідна для оновлення мікропрограмного забезпечення, щоб він працював, щоб побачити канали 12 і 13.

Але я також повинен подякувати Шен-Дезай, оскільки налаштування коду країни за допомогою iw reg set $COUNTRYCODEкоманди було також дуже важливою частиною процесу - без цих параметрів було лише 11 каналів, дозволених / видимих ​​весь час як за замовчуванням та встановленого коду країни було 00 (не впевнений, чи справді ця країна належить до будь-якої країни чи це просто "безпечне налаштування" для всіх країн світу).

Міг


1

Звітування з майбутнього - (де ядро ​​расьпіана становить 4,9) Я можу сказати, що sudo raspi-configзараз пропонується варіант Set wifi countryпід localization. Звідти ви можете встановити локаль, який дозволяє канали 12 та 13.


Я отримую помилку з цією опцією: "Не вдалося зв’язатися з wpa_supplicant", а потім "Виникла помилка під час виконання I4 Змінити країну Wi-Fi".
glenneroo

Так, спробував це, але це не допомагає.
Джонатан

0

Щоб додати примітку до цього запиту

У мене є Raspberry Pi - 2 Model B, і я використовую адаптер LogiLink WiFi на ньому.

Після виконання роботи iwlist scanя можу бачити всі канали від 1 до 14 (так! Я можу сканувати канал 14)

Але якщо я дійсно хочу використовувати канал 12 або 13, використовуючи iwconfig wlan0 channel 12або iwconfig wlan0 channel 13не можу це зробити спочатку, оскільки він повертається

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

Оскільки я перебуваю в Європі, я можу отримати доступ до цих каналів відповідно до регламентів та користуватися ними. Це було вирішено відповідно до наступних кроків

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

а потім зробив наступне

sudo iw reg set *In CAPS your Country Code*

зараз достатньо впевнено, iwconfig wlan0 channel 13і стан можна перевірити за допомогоюiwconfig wlan0

Це може бути трохи поза темою, але це працює добре, оскільки у мене не було проблем з неможливістю сканувати канали 12 і 13, але не мати можливості ним користуватися.

Я отримав інформацію за допомогою цього посилання німецькою мовою

Примітка

будь ласка, уточніть у своїй стандартизації країни, чи можете ви використовувати ці канали чи ні, оскільки в деяких країнах ці канали використовуються для інших цілей.


0

Я використовую перше рішення (goobering), і воно не спрацювало.

Після пошуку в Інтернеті я виявив, що це може допомогти. Все, що вам потрібно зробити - це встановити crda та встановити область wifi.

https://www.raspberrypi.org/forums/viewtopic.php?t=36961#p308569 RPI 3 не бачить мій wifi

Якщо ви використовуєте wpa_supplicant, вам потрібно змінити countryв /etc/wpa_supplicant/wpa_supplicant.conf


Вам не потрібно встановлювати жодне програмне забезпечення. Просто з sudo iw listусіма каналами від 1 до 14 перераховані програми Raspbian Stretch and Buster.
Інго

-2

Мої вдячності всім. Це приведе мене до шляху, який я шукаю. AC - таблиці разом з b-n + таблицями. Дякую. Коли я запустив бездротові мережі, вони складали 802.11 1mb протоколи. За допомогою Omni & Uni-направленої антени я зробив багато 802.11b + мереж. АС речі були занадто дорогими на той час. Сумісність була рідкою.


Я не розумію, що ви хочете сказати, і як ця заплутана відповідь допомагає вирішити проблему.
Інго
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.