|
本帖最后由 7440909 于 2015-9-10 16:17 编辑
注意:antclan的帖子已加入模式切换开关的内容,需要的同学自己去看。
本人菜鸟一个,对OpenWrt也无任何基础,在此胡言乱语,望高手莫笑。
敬请参考下面几帖(感谢kukusail的提醒):
1。https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=83746
2。https://www.right.com.cn/forum/thread-91571-1-1.html
#########################以下不是正文但看看也无妨################
入手了一个720N v3 ,想自己学着编译自己专属的OpenWrt,但是由于自己对OpenWrt一无所知,便照着这篇antclan的:
https://www.right.com.cn/forum/thread-91571-1-1.html
所讲的方法学着自己编译。但是过了八九天,编译了不下30遍还是错误的,就是lan口不起作用,电脑的lan口只能插在720N的wan口,因此也没法拨号,也不知道错误在哪儿。最后终于在无意中发现,原来按照antclan的帖子讲的去做是完全对的,我的错误(这算不上是错误吧)是network的配置写反了,具体参看这篇帖子的回复讨论13楼以下内容:
https://www.right.com.cn/forum/thread-100003-1-1.html
估计是编译时的环境差异吧,也有可能是lan口和wan口是反的。就因为一个network的配置文件,让我花了这么多天的时间。
#######################以上不是正文################################
#####################################正文开始##################################
首先,保证你有一个Lunix操作系统,不管是运行在物理机上还是虚拟机上的都行,我的是运行在物理机上的Ubuntu12.0 LTS,CPU是AMD的, 因此,以下教程均基于这台机子,不保证在其他机子上也是这样。
一.编译环境准备:
下面的命令安装编译OpenWrt所需要的软件- sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev subversion
复制代码 二.同步OpenWrt官方源码: 我用的是trunk版的,因此,以下基于trunk,一条一条的执行下面的命令(不包含“#”,特别提醒不要在命令前加sudo):- # mkdir OpenWrt
- # cd OpenWrt
- # svn co svn://svn.openwrt.org/openwrt/trunk/
- #cd trunk
- #svn up
- # ./scripts/feeds update -a
- # ./scripts/feeds install -a
- # make defconfig
复制代码 三.执行 下面这条命令,同样也不要加sudo出现下面的界面,需要设置的是有箭头的地方其他用默认就好



最后就这样(没画箭头的地方不需要改动,默认就行,等编译好对openwrt有大概了解后再去修改其他):

设置完成后保存。
至此,编译环境设置完成。
接下来就是改源代码使720N能用了,这个antclan老大的这篇帖子讲得很详细了,参看:https://www.right.com.cn/forum/thread-91571-1-1.html的编译教程(隐藏内容)
1.更改/OpenWrt/trunk/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr703n.c
- ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1);
- ath79_init_mac(ath79_eth1_data.mac_addr, mac, 2);
- ath79_register_mdio(0, 0x0);
- ath79_register_eth(0);
- ath79_register_eth(1);
- ath79_register_wmac(ee, mac);
复制代码 效果如下:
2.更改 /OpenWrt/trunk/target/linux/ar71xx/base-files/lib/upgrade/platform.sh (这一步不做好像也无所谓)- local hwid
- local imageid
- hwid=$(tplink_get_hwid)
- [ "$hwid" = "07200103" ] && {
- hwid="07030101"
- }
- imageid=$(tplink_get_image_hwid "$1")
- [ "$imageid" = "07200103" ] && {
- imageid="07030101"
- }
- [ "$hwid" != "$imageid" ] && {
- echo "Invalid image, hardware ID mismatch, hw:$hwid image:$imageid."
- return 1
- }
复制代码 效果如下:

3.更改(主要是为了使路由的Router Model显示为 TP-LINK TL-WR720N V3)/OpenWrt/trunk/target/linux/ar71xx/base-files/lib/ar71xx.sh- echo "$AR71XX_BOARD_NAME" > /tmp/sysinfo/board_name
- echo "TP-LINK TL-WR720N V3" > /tmp/sysinfo/model
- }
- ar71xx_board_name()
复制代码 效果如下:

另外需要放在trunk目录下files文件夹中的所有文件我已经上传到华为网盘,http://dl.vmall.com/c08v3yq3w7,下载后解压放到trunk文件夹下就行了,注意由于文件所有权的问题,请用chown命令更改文件所有全,比如你当前的用户名为user,则运行命令- chown -R user /home/user/OpenWrt/trunk/files
复制代码 说明:
把user换成你的账户名,比如我的账户名是onion,就这样- chown -R onion /home/onion/OpenWrt/trunk/files
复制代码 将files文件的所有权改为当前用户,不然可能会有错误。
要改的基本上就是这写了,完成后直接输入命令:就行了。编译完成后的.bin文件在trunk/bin/ar71xx目录下。用固件头修改工具 http://dl.vmall.com/c0w7haa9y0 将*factor.bin的固件头修改(其实可以在编译前修改固件头的penWRt的固件头定义在 /OpenWrt/trunk/tools/firmware-utils/src/mktplinkfw.c 和/OpenWrt/trunk/target/linux/ar71xx/image/Makefile )为07200103,00000001,就可以刷了。但要做好路由变砖的心理准备,要救也挺简单的,参看这篇文章:
https://www.right.com.cn/forum/thread-100003-1-1.html
另外,由于编译平台不同的原因,lan口和wan口是反的,那就更改network的配置,具体参看这篇帖子https://www.right.com.cn/forum/thread-100003-1-1.html 13楼以下的内容,一定能解决。
不能保证一次成功,一定要做好变砖的准备,未雨绸缪总是对的,也要学会TTL修砖。在下可是反复编译了几十遍才成功的。
最后祝愿意自己动手的朋友能一击成功.附上这篇帖子https://www.right.com.cn/forum/thread-91571-1-1.html的截图,方便对比

|
评分
-
查看全部评分
|