OpenWrt路由器WIFI开启13信道

标签: , , , , , ,

随着智能手机的普及,无线路由器逐渐成为每个家庭的标配,但这也就造成了WIFI信号之间的干扰日益严重,特别是2.4GHz频段。减少WIFI信号相互干扰的方法之一是使用不同的信道,2.4GHz频段可以分为14个信道,但是大部分国家规定只能使用1-13信道,在日本可以用1-14信道,而在美国只能用1-11信道。

用工具分析了一下附近WIFI的信道,以1、6、11居多,于是想把家里刷了OpenWrt的路由器(型号是NETGEAR WNDRMAC)的WIFI信道改成13以减少干扰(13信道和11信道的频率有重叠部分,理论上改成14信道更好,但是不符合法律规定)。

于是进到OpenWrt的LuCI界面,发现无论将地区设置成哪个国家,信道都只能选择1-11,也就是美国标准;而另一台刷了OpenWrt的路由器(型号是华为HG255D)却不存在这个问题,设置成中国就能选择13信道。难道是NETGEAR做了手脚强制使用美国标准?通过一番搜索,在OpenWrt的文档中关于NETGEAR WNDR3700的页面上找到这样一段话:

  • Netgear ships the WNDR3700 with EEPROM chip stating that the router should restrict to US settings. Outside America, they ship software that ignores this chip. This is a bad thing as it means that your OpenWrt can’t work properly for the next two reasons.
  • In the USA, it is illegal to ship router firmware that can (through incorrect settings) bypass radio regulations.
  • Atheros (the wireless chip maker in the WNDR3700) asks open source folks not to ship compiled builds that bypass radio restrictions, even though their hardware vendors do this. This means if you bought hardware from one of the manufacturers (and you’re one of the 95% of the world’s population that doesn’t live in the USA) that doesn’t set the value in the EEPROM correctly, you’re kinda screwed if you want to use OpenWrt…

简单翻译一下就是说,Netgear在芯片上限制了只能使用美国设置,但是在美国以外的地方,他们的软件(也就是路由器固件)却忽略了这个芯片。在美国,路由器固件必须遵守无线电管理条例(即只能使用1-11信道),否则是违法的;而Atheros(无线网卡芯片制造商)请求开源软件的作者不要编译逾越无线电管理条例的固件,即便他们的硬件生产商这样做。

翻译出来太拗口,总结一下就是说,如果路由器的无线网卡芯片是Atheros,并且你使用的是官网编译的OpenWrt固件,那么你的路由器就只能使用1-11信道。

既然OpenWrt官网的固件不行,那就只好自己编译了,只要在编译的时候将.config设置中的CONFIG_ATH_USER_REGD改成y即可。编译OpenWrt固件对我来说并不难,但是重新刷固件,重新安装软件,重新配置路由器需要花费大量的时间,如此大动干戈仅仅为了开启13信道显然是不值得的,那有没有其他办法呢?幸好有一位大神写了一个补丁:

http://luci.subsignal.org/~jow/reghack/README.txt

NETGEAR WNDRMAC的芯片是ar71xx系列的,所以只需要运行下面的命令:

cd /tmp/
wget http://luci.subsignal.org/~jow/reghack/reghack.mips.elf
chmod +x reghack.mips.elf
./reghack.mips.elf /lib/modules/*/ath.ko
./reghack.mips.elf /lib/modules/*/cfg80211.ko
reboot

重启之后终于可以开启13信道了,真是折腾。

参考链接:

https://wiki.openwrt.org/toh/netgear/wndr3700#wireless_regulatory_issues

https://dev.openwrt.org/ticket/6923

http://sadevil.org/blog/tag/config_ath_user_regd/

赞赏

微信赞赏支付宝赞赏

随机文章:

  1. Asc/AscB/AscW和Chr/ChrB/ChrW函数之间的区别
  2. 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包(续)
  3. 用VBS实现PHP的sha1_file函数
  4. 用VBS脚本查询纯真IP库QQWry.dat
  5. 又一个VBS病毒源码的解密

4 条评论 发表在“OpenWrt路由器WIFI开启13信道”上

  1. Anonymous说道:

    请教下楼主Openwrt什么版本,看大神补丁介绍适用于老版本的固件“This version is made for current OpenWrt trunk. To patch older releases like 12.09”,我的是Barrier Breaker 14.07不知能否正常运行

  2. zylin说道:

    很绝望http://luci.subsignal.org已经打不开了,请问有没别的解决方案

留下回复