Jak włączyć kanał Wi-Fi 12 na Raspberry Pi 3?

15

Potrzebuję mojego RPi 3, aby połączyć się z siecią Wi-Fi za pomocą kanału 12, ale nie jestem w stanie uzyskać wbudowanego adaptera Wi-Fi do korzystania z tego kanału.

Oto co zrobiłem:

$ 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

Jak widać, lista nie obejmuje kanału 12 (lub 13). Czy istnieje sposób włączenia kanału 12 dla wbudowanego adaptera?

Aktualizacja: Oto, co otrzymuję w 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
źródło
1
Czy ustawiłeś swój region? Różne administracje mają różne pasma, a WiFi nie zezwala na nieautoryzowane częstotliwości.
Milliways,
Tak, jeśli dobrze to rozumiem, to polecenie powinno ustawić region: sudo iw reg set NO
perja
Prawdopodobnie istnieje wiele sposobów na manipulowanie ustawieniami regionalnymi. Dlaczego nie raspi-configzrobić tego po prostu w standardowy sposób.
Milliways,
3
OK, w ramach tego procesu wykonałem także aktualizację / aktualizację / aktualizację i aktualizację rpi oraz BRANCH = następna aktualizacja rpi. Nie wiem, czy któryś z nich był również potrzebny.
joan
1
@joan: to było to! sudo BRANCH = następna aktualizacja rpi, a następnie ponowne uruchomienie rozwiązało problem.
perja

Odpowiedzi:

9

„W normalnych okolicznościach NIGDY nie trzeba uruchamiać aktualizacji rpi, ponieważ zawsze prowadzi to do najnowocześniejszego oprogramowania układowego i jądra, a ponieważ może to być wersja testowa, nie można uruchomić RPi”. https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911 Nawet dokumentacja aktualizacji rpi teraz ostrzega: „Nawet na Raspbian powinieneś używać tego tylko z uzasadnionego powodu. Dzięki temu uzyskasz najnowszą przewagę kernel / firmware. ”

Właśnie miałem identyczny problem. W moim przypadku rozwiązaniem było podążanie za sugestią Joanny zawartą w komentarzach pod pytaniem.

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo rpi-update

[reboot]

sudo branch=next rpi-update

[reboot]

Po zakończeniu kanały 12 i 13 pojawią się na liście stworzonej przez iwlist wlan0 channel.

goobering
źródło
3
Dla przypomnienia: po jądrze „sudo branch = next rpi-update” jądro zostało zaktualizowane z 4.1.18 do 4.4.3 i firmware od czegoś do 41f8b4812ad653abf321b8c54cb4bee57ebdb129 (z /boot/.firmware_revision).
perja
uczyniłeś mój dzień.
blfuentes
Jak uzyskać rpi-updatedowodzenie?
IgorGanapolsky
1
@IgorGanapolsky „W normalnych okolicznościach NIGDY nie trzeba uruchamiać aktualizacji rpi, ponieważ zawsze prowadzi ona do najnowocześniejszego oprogramowania układowego i jądra, a ponieważ może to być wersja testowa, może nie dać się uruchomić RPi”. raspberrypi.org/forums/viewtopic.php?p=916911#p916911
Milliways
Jeśli korzystasz z kanału 13, upewnij się, że masz pozwolenie w swoim regionie.
Piotr Kula,
5

Śledzenie odpowiedzi @ goobering nie zrobiło tego dla mnie. Byłem w stanie zaktualizować oprogramowanie, ale kiedy spróbowałem sudo branch=next rpi-updatego uruchomić , powiedziałem, że jestem już najpóźniej. Nie byłem.

Używając skrótu oprogramowania układowego @ perja (poniżej oryginalnej odpowiedzi) uruchomiłem;

sudo rpi-update 41f8b4812ad653abf321b8c54cb4bee57ebdb129

To doprowadziło mnie z 4.1.18 do 4.4.3.

Oznacza to (przynajmniej dla mnie) kompletne kroki;

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

I altówka, teraz widzę kanał 12!

Wydaje mi się, że możesz połączyć je rpi-updatew jedno polecenie, ale bezpieczniej jest najpierw chwycić najnowszego mistrza, wykonać udany restart, a następnie spróbować 4.4.3.

Czas uruchamiania 3 jest zresztą tak szybki ;-)

Powiązany post na blogu

Toby
źródło
2

Rozwiązanie Shan-Desai działa dobrze, ale napotkałem problem podczas jego wdrażania.

Kiedy chciałem ustawić kanał Wlan, otrzymałem błąd informujący, że urządzenie jest używane i zajęte. Ale po wyłączeniu i ponownym włączeniu urządzenia [programowo] problem zniknął. Więc to, co zrobiłem, jest następujące

$ 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

Inną kwestią, na którą należy zwrócić uwagę, jest fakt, że zmiany kanałów resetują się do wartości domyślnych przy każdym ponownym uruchomieniu RPi. Aby zachować te zmiany w RPi, sugerowałbym napisanie skryptu powłoki w katalogu głównym i wywołanie go w crontab po ponownym uruchomieniu. Zrobiłem to przez

$ nano wlan0_setup.sh

i wypełnij plik, wykonując następujące czynności:

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

Następnie zapisałem plik i uczyniłem go wykonywalnym skryptem powłoki, uruchamiając go

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

Teraz, gdy skrypt jest wykonywalny przez uruchomienie

$ sh wlan0_setup.sh

możemy dodać go do pliku crontab, wykonując

$ crontab -e 

po otwarciu pliku crontab przejdź do końca pliku i dodaj następujące elementy

@reboot sh /home/pi/wlan0_setup.sh

następnie zapisz i zamknij edytor. W ten sposób skrypt wlan0_setup.sh będzie uruchamiany przy każdym ponownym uruchomieniu RPi.

Mam nadzieję, że to pomoże, życzę powodzenia.

Babak D.
źródło
1

Dzięki za odpowiedź Toby, wydaje się, że skrót SHA-1 zatwierdzenia jako argument polecenia rpi-update był konieczny do aktualizacji oprogramowania układowego, aby działał na kanałach 12 i 13.

Ale muszę też podziękować Shan-Desai, ponieważ ustawienie kodu kraju za pomocą iw reg set $COUNTRYCODEpolecenia było również bardzo ważną częścią tego procesu - bez tych ustawień było tylko 11 kanałów dozwolonych / widocznych przez cały czas jako domyślny i ustawiony kod kraju było 00 (nie jestem pewien, czy to naprawdę należy do jakiegokolwiek kraju, czy też było to po prostu „bezpieczne ustawienie” dla wszystkich krajów na całym świecie).

Mig

Michał Mig Novotny
źródło
1

Raportowanie z przyszłości - (gdzie jądro raspian ma 4.9). Mogę powiedzieć, że sudo raspi-configteraz oferuje opcję Set wifi countryponiżej localization. Stamtąd możesz ustawić ustawienia regionalne, które włączają kanały 12 i 13.

LudvigH
źródło
Występuje błąd związany z tą opcją: „Nie można nawiązać komunikacji z wpa_supplicant”, a następnie „Wystąpił błąd podczas uruchamiania opcji I4 Zmień kraj Wi-Fi”.
glenneroo,
Tak, próbowałem tego, ale to nie pomaga.
Jonathan
0

Aby dodać notatkę do tego zapytania

Mam Raspberry Pi - 2 Model B i używam na nim adaptera LogiLink WiFi.

Po występie iwlist scanwidzę wszystkie kanały od 1 do 14 (tak! Mogę skanować kanał 14)

Ale jeśli rzeczywiście chcesz korzystać z kanału 12 lub 13 przy użyciu iwconfig wlan0 channel 12lub iwconfig wlan0 channel 13nie mogę go początkowo ponieważ zwraca go

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

Ponieważ jestem w Europie, mogę uzyskać dostęp do tych kanałów zgodnie z przepisami i korzystać z nich. Zostało to rozwiązane zgodnie z następującymi krokami

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

a następnie zrobił następujące

sudo iw reg set *In CAPS your Country Code*

na pewno teraz iwconfig wlan0 channel 13będzie działać, a status można sprawdzić za pomocąiwconfig wlan0

To może być trochę nie na temat, ale działa dobrze, ponieważ nie miałem problemów z niemożnością skanowania kanałów 12 i 13, ale nie mogłem z nich korzystać.

Otrzymałem informacje, używając tego linku w języku niemieckim

Uwaga

sprawdź w standardzie Kraj, czy możesz korzystać z tych ostatnich kanałów, czy nie, ponieważ w niektórych krajach kanały te są wykorzystywane do innych celów.

Shan-Desai
źródło
0

Używam pierwszego rozwiązania (goobering) i to nie zadziałało.

Po wyszukiwaniu w Internecie znalazłem, że może to pomóc. Wszystko, co musisz zrobić, to zainstalować crda i ustawić region Wi-Fi.

https://www.raspberrypi.org/forums/viewtopic.php?t=36961#p308569 RPI 3 nie widzi mojego wifi

Jeśli używasz wpa_supplicant, musisz zmienić countryw /etc/wpa_supplicant/wpa_supplicant.conf

Peter Lai
źródło
Nie musisz instalować żadnego oprogramowania. Tylko sudo iw listwszystkie kanały od 1 do 14 są wymienione na Raspbian Stretch i Buster.
Ingo
-2

Moje pochwały dla wszystkich. To doprowadzi mnie do ścieżki, której szukam. AC - tabele wraz z tabelami b-n +. Dziękuję Ci. Kiedy zaczynałem sieci bezprzewodowe, były to protokoły 802.11 1mb. Korzystając z anteny dookólnej i jednokierunkowej, wykonałem wiele sieci 802.11b +. AC rzeczy były wtedy zbyt drogie. Kompatybilność była niewielka.

Joel Huebner
źródło
Nie rozumiem, co chcesz powiedzieć i jak ta niejasna odpowiedź pomaga rozwiązać problem.
Ingo