双十一买了一个树莓派4B,拿到手上第一件事儿当然是装系统,联网了。
系统我选择的是官方支持的Raspbian。烧写,开机一次成功,但是到了联网的时候就出问题了。
一开始GUI界面里是能搜到我所使用的WiFi的,但是一旦输入密码进行连接,就再也找不到我的那个SSID了。
这种现象只出现在5GWiFi上,使用2.4G完全能正常联网。
搜不到某个WiFi大概率是频段上出了问题,经过一番搜索在GitHub上发现有人和我有类似的经历。
https://github.com/raspberrypi/firmware/issues/1246
由于5GWiFi所使用的频率比较特殊,各个国家对于允许使用的信道有较大的差异。
对于频段的限制是通过软件实现的,因此我们设置WiFi地区来修改可以连接的频段。
使用iwlist channel
命令可以查看到当前允许连接的频段
上图是将地区设置为CN后可以连接的频段。可以看的5G可以使用的频段仅有149-165一共5个。这个范围其实是远小于中国实际可以使用的信道的。
早在2012年,中国就新开放了36-64频段,因此实际能使用的频段至少有36, 40, 44, 48, 52, 56, 60, 64, 149,153, 157, 161, 165,一共13个。
而我的WiFi正好设置使用56信道,因此树莓派不能连接就很正常了
知道问题在那儿就很简单了,第一个方法是在路由器上修改无线信道,改成149-165中的一个就解决所有问题了。
然而,改信道是不可能改信道的,这辈子都不可能改信道。你要问为啥?因为149-165信道内已经挤满了WiFi,你来感受一下
(左边那个最大的弧就是我的WiFi)
没办法,学校宿舍楼无线环境就是这么差。那只能方案2了,修改树莓派上WiFi的地区。使用rasp-config
或图形界面里的设置将地区改为US,然后再看看支持的信道:
嗯,这才像话嘛……
修改地区后,果然就能搜索到我的SSID了,选择连接一气呵成。
然后……更鬼畜的事情发生了,WiFi会在连上的几秒后自动断开,断开几秒后又会自动重新连上。
如果这个时候你使用iwlist channel
去查看能连接的信道,你会发现在连接成功后地区似乎又被修改为了CN,这个时候会因为信道不支持而自动断开
但是断开一段时间后又会自己恢复为US地区的信道,于是又能连上了……
这个操作似乎说明WiFi会在完成连接后自动协商当前的地区,当然我也没研究过802.11ac协议,这仅仅是一个猜测。
解决问题的方法也很简单,在路由器上把地区也修改为US
保存后WiFi就正常了。
牛逼,学了一手
路由器刷了openwrt, 5G wifi 没有指定信道,没有中国的那些频率,树莓派无线一直连不了。看了你的文章,终于找到原因,解决了。多谢
可以可以 还真是坑啊。。。
学习了
谢谢!很有帮助
设置一下时区就好了
我的只能连接5G信号,在屏幕HDMI 连接上的时候,2.4G信号连接不上,HDMI线一拔下来,2.4G连接马上正常。是不是有干扰。
感谢,问题解决了
如果你动手能力强, 可以看看这里的解决方案
除了 (52,56,60,64) 这几个信道, 其他都能用了.
参考链接:
https://github.com/raspberrypi/firmware/issues/1359#issuecomment-781081935
https://www.raspberrypi.org/forums/viewtopic.php?f=117&t=291609
https://zh.wikipedia.org/wiki/WLAN%E4%BF%A1%E9%81%93%E5%88%97%E8%A1%A8#5_GHz_(802.11a/h/j/n/ac/ax)%5B11%5D