针对国内AR9341/AR9331芯片进行的openwrt源码修正

Openwrt官方的tplink源码是针对海外版本的tplink的,而海外版本的tplink的区别,除了flash比较大之外,还有就是网络端口的顺序是反过来的,自然led灯也是反过来的,因此如果想要制作适合国内使用的固件的话,最好对源码进行修正下,当然不修正也没有什么大问题,就是插的时候忘了怎么插,led乱闪,不影响路由器正常工作。

AR9341芯片的路由器有很多,像水星/迅捷的MW/FW300R、310R,tplink841v8等等。水星迅捷tplink是同一家我就不解释了,反正固件通用。Openwrt官方里面有的是tplink841v8,因此我们用841v8作为模板,适当修改下。

1.修正LED的顺序

LED的配置在target/linux/ar71xx/base-files/etc/board.d/01_leds

注意不用版本的openwrt路径可能有区别,但接下来修改的内容是一样的:

搜索841,可以看到841-v8的地方有个|\的标志,意思是跟下面的tl-wr941nd-v5配置是一样的,可以看到这里对wan、lan1234等都有定义,我们要改的是lan1234对应0x2、4、8、10就行了,附上改好的效果:

修改led

其实其他路由也可以这么修正,不过要测试下才知道怎么改了。有空测试好了把9331的发上来。

2.修正网络端口的顺序

openwrt的tplink估计的网口经常是反过来的,所以要进行修正……

这个方法来自恩山:

AR9331修正方法:以编译tl-wr741n-v4固件为例,找到文件mach-tl-wr741nd-v4.c,在目录attitude_adjustment/target/linux/ar71xx/files/arch/mips/ath79/下,将代码
ath79_setup_ar933x_phy4_switch(true, true); 改为ath79_setup_ar933x_phy4_switch(false, false);或者直接删掉。
AR9341修正方法:以编译tl-wr841n-v8固件为例,在刚才的目录下找到文件mach-tl-wr841n-v8.c,将代码
ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_PHY_SWAP);改为ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_ONLY_MODE);
ath79_switch_data.phy_poll_mask = BIT(0);改为ath79_switch_data.phy_poll_mask = BIT(4);
ath79_eth0_data.phy_mask = BIT(0);改为ath79_eth0_data.phy_mask = BIT(4);

841-v8我有个修正好的文件……我记得好像是从bb用到现在都没有啥问题,直接替换就好了……

路径在:/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v8.c

下载地址

提取码  3c2a

9331的话……待我有空测试了再传一个……

3.修正flash的大小

openwrt源码的flash大小都是默认海外版原装机器的flash大小的,比如841-v8就是4M大小,而在国内的玩家一般都是自己改内存和改flash的,所以会有8M或者16M等。一般至少8M才够挥霍吧,添加集成几个包什么的,就很容易超过4M的大小了,这个时候根据openwrt的定义的话就会编译出错,提示too big,因为你定义的flash是4M的,超过4M就编译失败。所以我们一般要对flash的定义修改,一般改大大的,比如16M。这个定义一般是在makefile里面:

路径:/target/linux/ar71xx/image/Makefile

然后呢,搜索你的型号,照葫芦画瓢修改相关参数就好了,例如我把841-v8改成了16M:

16M

HWID是升级的时候检查是不是相同型号用的……

当然不是每个型号都是像tplink这种格式写的,反正是照葫芦画瓢就是了。

另外修改了之后要make clean再编译才生效的。

 


原文链接:https://03k.org/fix-9341.html

本站博文无特别声明均为原创,转载请注明原文链接。本站软件均搜集自互联网,供学习研究之用,请下载后24小时内删除。

疑问OR交流点我加QQ群喵喵喵!


发表评论

电子邮件地址不会被公开。 必填项已用*标注