我需要我的RPi 3使用通道12连接到Wi-Fi网络,但是我无法获得内置的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)


评论

您设定好地区了吗?不同的主管部门拥有不同的频段,WiFi将不允许未经授权的频率。

是的,如果我理解正确,则此命令应已设置区域:sudo iw reg set NO

可能有很多方法来摆弄区域设置。为什么不只是使用raspi-config来以标准方式进行操作呢?

好的,我还执行了update / upgrade / dist-upgrade以及rpi-update和BRANCH = next rpi-update作为此过程的一部分。我不知道它们是否也有必要。

@joan:就是这样! sudo BRANCH = next rpi-update,然后重新启动即可解决此问题。

#1 楼


“在通常情况下,不需要运行rpi-update,因为它总是可以带您到领先的固件和内核,因为这可能是测试版本,可能会使RPi无法启动”。 https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911
即使是rpi-update文档现在也警告说:“即使在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产生的列表中。

评论


作为记录:在“ sudo branch = next rpi-update”之后,内核从4.1.18更新到4.4.3,固件从某些版本更新为41f8b4812ad653abf321b8c54cb4bee57ebdb129(来自/boot/.firmware_revision)。

–perja
16 Mar 3 '16 at 17:34

你让我今天一整天都感觉很好。

– blfuentes
16年3月18日在19:17

您如何获得rpi-update命令?

– IgorGanapolsky
16年7月18日在1:37

@IgorGanapolsky“在通常情况下,永远不需要运行rpi-update,因为它总是可以带您到领先的固件和内核,因为这可能是测试版本,可能会使您的RPi无法启动”。 raspberrypi.org/forums/viewtopic.php?p=916911#p916911

–地铁
16年8月4日,0:07

如果您使用频道13,请确保您被允许进入您所在的地区。

–Piotr Kula
16-09-22在18:05



#2 楼

遵循@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汇总到一个命令中,但是先获取最新的master主机更安全,先成功重启,然后尝试4.4.3。
反正3的启动时间太快了;-)

相关博客文章

#3 楼

Shan-Desai的解决方案效果很好,但是在实现它时遇到了一个问题。

当我想设置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上,建议您在根目录中编写一个shell脚本,并在重新启动后在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


使其成为可执行的Shell脚本,现在通过运行

$ sh wlan0_setup.sh


该脚本是可执行的/>我们可以通过执行

$ crontab -e 

将其添加到crontab中。crontab打开时,转到文件末尾并添加以下

/>
@reboot sh /home/pi/wlan0_setup.sh


,然后保存并退出编辑器。这样,wlan0_setup.sh脚本将在RPi的每次重新启动时运行。

我希望这会有所帮助,祝大家好运。

#4 楼

从将来的报告-(树莓派内核为4.9)我可以看出sudo raspi-config现在在Set wifi country下提供了一个选项localization。从那里可以设置启用通道12和13的语言环境。

评论


我收到此选项错误:“无法与wpa_supplicant通信”,然后显示“运行选项I4更改Wi-fi国家时出错”。

– Glenneroo
18年9月14日在1:50

是的,尝试过此操作但无济于事。

–乔纳森
19年12月3日,0:09

#5 楼

感谢Toby的答复,似乎必须将SHA-1 commit hash作为rpi-update命令的参数来更新固件,以使其能够正常工作以查看通道12和13。

但是我也必须感谢Shan-Desai,因为使用iw reg set $COUNTRYCODE命令设置国家/地区代码也是该过程中非常重要的部分-如果没有此设置,则默认情况下始终只有11个通道/可见,并且国家/地区代码设置为00 (不确定这个国家是否真正属于任何国家,还是仅仅是对全世界所有国家来说都是“安全设置”)。

Mig

#6 楼

为该查询添加注释

我有一个Raspberry Pi-2型B,并且在其上使用LogiLink WiFi适配器。

执行iwlist scan后,我可以看到所有通道从1到14(是的!我可以扫描通道14)

但是如果我实际上想使用iwconfig wlan0 channel 12iwconfig wlan0 channel 13使用通道12或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的问题,但不能能够使用它。

我使用此链接以德语获取了信息

注意

请检查您所在国家/地区的标准化情况是否使用后一种渠道,因为在某些国家/地区这些渠道已用于其他目的。

#7 楼

我使用第一个解决方案(goobering),但没有用。

在Internet上搜索后,我发现这些可能有所帮助。您需要做的就是安装crda并设置wifi区域。

https://www.raspberrypi.org/forums/viewtopic.php?t=36961#p308569
RPI 3不能看不到我的wifi

如果使用wpa_supplicant,则必须在/etc/wpa_supplicant/wpa_supplicant.conf中更改country

评论


您不需要安装任何软件。就像sudo iw list一样,Raspbian Stretch和Buster上列出了所有通道1到14。

– Ingo
19年8月21日在8:47

#8 楼

频道由您的无线接入点以及您所居住的国家/地区设置。美国只有12个不同的频道。有些国家有14个...不在美国。您可以将WAP设置为3个不同的频道空间,并且不与邻居竞争或重叠。
1、6或12可为您提供最大的范围,重叠的机会也最少。这是您必须在收音机上播放的内容,而不是客户端(RaspPi)。他们只是选择设置为频道空间的SSID。

#9 楼

我对所有人的赞赏。这将使我进入寻找的道路。 AC-表格以及b-n +表格。谢谢。当我启动无线网络时,它们是802.11 1mb协议。使用全向和单向天线,我完成了许多802.11b +网络连接。当时AC的东西太贵了。兼容性很少。

评论


我不明白您想说什么,这个困惑的答案如何帮助您解决问题。

– Ingo
19-10-16在8:57

802.11 b-n是具有加密狗wifi的较早的Pi。我相信ZW,3A,3B,4B都具有802.11 b-n 2.4 GHz和a-c 5 GHz,这可能更加清楚。哦,是的,我对那个职位感到厌倦。哎呀

–乔尔·休布纳(Joel Huebner)
20年6月17日,下午3:21