本帖最后由 antclan 于 2012-9-27 07:51 编辑

挂载U盘extroot后不能上网的,请参考: http://www.right.com.cn/forum/thread-101781-1-1.html

20120914更新: 修改pppd增加多拨成功率(测试)
增加pptp、pptpd支持。
见二楼20120914版。


20120906更新: 更新到trunk版本r33311
更新模式切换开关定义方法
增加20120905版,支持mentoHust(锐捷认证),剩余200多K空间。
原20120825版本移至二楼。
增加20120906版,含H3C+mentoHust两种认证,没条件测试是否可用,见二楼。
增加20120831纯净版,见二楼。
4M空间限制很难集成脱机+NAS,故不再出4M脱机版本。可以刷20120905版,通过extroot扩展后安装脱机软件。

20120825更新: 更新到trunk版本r33227
增加模式开关定义
NAS部分增加NTFS支持
增加android共享手机网络功能
增加mwan2负载均衡
增加瑞银网卡支持
新编译一个Samba专用固件,见二楼!下个计划编译脱机固件;下下个计划编译8M多功能固件。

20120803更新: 修正 “按住reset键30秒恢复出厂设置” 实际上只短暂按一下就恢复出厂设置的BUG。
目前:按住reset键30秒后led闪烁,60秒之前松开reset键则恢复出厂设置。

20120802更新
既然都想自己编译,那就说说怎么改吧,授人以鱼不如授人渔,很简单。

--------------------------------------------------------怎样编译720n固件---------------------------------------------------------

提醒没有救砖经验的同学请慎重!

我编译的固件,我都自己测试过,只要不刷错,不会有问题。刷机有风险,请慎重!!!
我讲的不是很详细,然后可以参考7440909的帖子,很详细: http://www.right.com.cn/forum/thread-100292-1-1.html
然后帖子字数限制,有一部分已经被我删除了,比如那个reset恢复出厂设置。

a. 模式切换开关
编辑  target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr703n.c
build_dir/linux-ar71xx_generic/linux-3.3.8/arch/mips/ath79/mach-tl-wr703n.c
两个文件内容一样的,都要改,找到“#define TL_WR703N_GPIO_USB_POWER    8”,在后面添加两行:
#define TL_WR703N_GPIO_BTN_SW1        18
#define TL_WR703N_GPIO_BTN_SW2        20
在“static struct gpio_keys_button tl_wr703n_gpio_keys[] __initdata = ”,紧接着reset后面添加
  1. ,

  2. {

  3. .desc        = "sw1",

  4. .type        = EV_KEY,

  5. .code        = BTN_0,

  6. .debounce_interval = TL_WR703N_KEYS_DEBOUNCE_INTERVAL,

  7. .gpio        = TL_WR703N_GPIO_BTN_SW1,

  8. .active_low    = 0,

  9. },

  10. {

  11. .desc        = "sw2",

  12. .type        = EV_KEY,

  13. .code        = BTN_1,

  14. .debounce_interval = TL_WR703N_KEYS_DEBOUNCE_INTERVAL,

  15. .gpio        = TL_WR703N_GPIO_BTN_SW2,

  16. .active_low    = 0,

  17. }

复制代码
然后新建/etc/hotplug.d/button/10-slider,内容如下
  1. #!/bin/sh


  2. if [ $ACTION == "released" ] ; then

  3. if [ $BUTTON == "BTN_1" ] ; then

  4. # 3G

  5. 执行命令

  6. elif [ $BUTTON == "BTN_0" ] ; then

  7. # Router

  8. 执行命令

  9. fi

  10. elif [ $BUTTON == "BTN_0" ] || [ $BUTTON == "BTN_1" ] ; then

  11. if grep -qe "sw1.*in  hi" /sys/kernel/debug/gpio ; then

  12. if grep -qe "sw2.*in  hi" /sys/kernel/debug/gpio ; then

  13. # AP

  14. 执行命令

  15. fi

  16. fi

  17. fi

复制代码
上面是处理热切换3个不同位置执行不同的命令。
还没完,还要处理冷启动时根据滑块现有的位置来执行相应的命令,新建/etc/init.d/slider,如下:
  1. #!/bin/sh /etc/rc.common


  2. START=22

  3. boot() {

  4. if grep -qe "sw2.*in  hi" /sys/kernel/debug/gpio ; then

  5. if grep -qe "sw1.*in  hi" /sys/kernel/debug/gpio ; then

  6. # AP

  7. 执行命令

  8. else

  9. # Router

  10. 执行命令

  11. fi

  12. else

  13. # 3G

  14. 执行命令

  15. fi

  16. }

复制代码
最后, chmod +x /etc/init.d/slider
/etc/init.d/slider enable
模式切换开关完成。

b. 添加网卡
720n比703n多个网口,如果直接刷703n固件,怎么编辑/etc/config/network都没用的,720n有两个网卡,一个eth0,还有
个eth1,那就增加一个咯:
target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr703n.c
build_dir/linux-ar71xx_generic/linux-3.3.8/arch/mips/ath79/mach-tl-wr703n.c
编辑上面两个文件(内容一样都要改),找到 “ ath79_register_eth( 0 ); ” 添加一个 “ ath79_register_eth( 1 ); ”
这里详细说下,第一个成功注册到的是WAN口,第二个则是LAN口,所以如果ath79_register_eth( 0 )在前,而
把ath79_register_eth( 1 )放在后面的话,那么eth0就是WAN口了,自然eth1就是LAN口了。
但是可以把这两个语句调换下顺序,如这样:
ath79_register_eth( 1 );
ath79_register_eth( 0 );
最后配置/etc/config/network 的话,eth1对应WAN,而eth0就是LAN。

再初始化一个mac地址给它:
找到 “ ath79_init_mac(ath79_eth 0 _data.mac_addr, mac, 0 ); ”  建议把这里的偏移量0改成1吧,不然eth0和无线网卡的mac
就相同了(不明白原作者为啥这样做,我觉得还是所有网卡的mac都不要相同的好,呵呵)
再添加一个 “ ath79_init_mac(ath79_eth 1 _data.mac_addr, mac, 2 ); ”  当然这里偏移量继续累加,改成2好了。
剩下去编辑network就行了。

c. 然后让OpenWrt的WEB界面通刷所有703n、720n固件。
703n的固件标识是:07030101,720n的是:07200103
/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
编辑上面文件,找到 “ hwid=$(tplink_get_hwid) ” ,在后面添加:
  1. [ "$hwid" = "07200103" ] && {

  2. hwid="07030101"

  3. }

复制代码
找到 “ p_w_picpathid=$(tplink_get_p_w_picpath_hwid "$1") ” ,在后面添加:
  1. [ "$p_w_picpathid" = "07200103" ] && {

  2. p_w_picpathid="07030101"

  3. }

复制代码
d. 因为没改固件标识,编译出来的都是07030103,所以把编译出来的factory改成07200103就好了。
(这里的意思是:把编译出来的factory固件的标识改成07200103后,tplink原厂固件就可以刷了。
还是这个原则不变:TP-Link原厂固件请刷factory,已经是OpenWrt了就刷sysupgrade。)
-------------------------------------------------------怎样编译720n固件结束-----------------------------------------------------------


固件说明:

20120905版4M固件:

1. 720N固件,基于703N修改。TP-Link原厂固件请刷factory,已经是OpenWrt了就刷sysupgrade。
且刷此固件后可直刷OpenWrt 703N、OpenWrt 720N、TP-Link 703N、TP-Link 720N固件,不用改固件头。

2. 4M固件,当然8M的flash也可以刷。

3. 支持MentoHUST(锐捷认证)、3G、NAS(仅支持ext4,不支持ntfs)、共享手机网络、MWAN2负载均衡、打印服务器、
远程唤醒、8187 3070、瑞银网卡,剩余200多K空间,具体见截图。
因试过4M空间集成脱机、NAS等有难度,故不再出4M的脱机固件,请用extroot扩展后自行安装。

4. MentoHUST没有条件测试,如不能自动获取IP,请把Web界面的DHCP script的值由“udhcpc -i”改成“udhcpc -renew”试试。

5. 关于extroot(既用U盘引导系统),没想到现在这么简单了。
简单说下:先把U盘在电脑里格式化成ext3或ext4。插上U盘,命令行运行blkid得到U盘的UUID值,复制到管理界面的相应UUID,
挂载选项“rw,sync”删掉后面的umask=000。然后勾上extroot和启用,文件系统选对应的ext3或ext4,保存应用OK。
重启下,看看剩余空间大了没,呵呵。
(umask=000只是为了让samba可写而加的参数。挂载USB存储设备时,如果不用samba请删之。)

6. 按住reset键30秒后led闪烁,60秒之前松开reset键则恢复出厂设置。

7. LAN/WAN两个网口正常。

8. 默认开启WiFi,无密码。

9. 支持模式切换开关,定义如下:
AP:    开启共享手机网络、开启无线
3G:    关闭共享手机网络、开启无线
Router:关闭共享手机网络、关闭无线

10.解释下共享手机网络,OpenWrt官方称为USB Tethering,指openwrt路由器通过USB连接智能手机,
而智能手机的网络共享给openwrt使用。
目前固件只支持Android系统共享网络功能,而支持iPhone需要集成的软件太多,空间有限,如果出8M固件
再考虑吧。
Android本来就支持WiFi热点,可能有点画蛇添足吧,呵呵。我是偶然发现openwrt还支持这个功能,
所以就研究了下,也许在某些情况下这个功能还是有用的吧。
使用方法:
a. 路由器模式开关切换至AP位置。
b. 用USB线连接路由器与手机。
c. 手机USB连接管理里面,选择 除了“内存卡读取”的其他模式,比如:选择“仅充电”;
然后在“设置”--“系统”里面找到“共享手机网络”,开启“USB绑定”就好了。
回到openwrt界面,会发现有个usb0的接口,已经自动获取了IP,这样openwrt就能使用手机
的网络了。

11.关于MWAN2负载均衡,效率还不错,还支持基于session的负载均衡,使用方法见/etc/config/mwan2里面的注释。
mwan2的作者新出了mwan3,有兴趣可以去看看: https://forum.openwrt.org/viewtopic.php?id=39052

12.703n可刷本固件,但是刷完后lan口不能用。需先用无线连接,然后编辑/etc/config/network ,
删除其中wan口配置,把lan的eth0改成eth1后,lan就可以用了。
如703n原厂固件web界面请刷factory,且需要先把固件标识改成07030101才能刷。

13.再说下打印服务器,没有测试,不知道这个版本能不能用,但20120803版有人试过可用,有需求请自行下载。
trunk就是不稳定啊,没办法~~

14.刷机有风险,变砖本人概不负责。

下载链接:
[antclan][20120905]720N-4M-MentoHust-MWAN2-NAS-3G-Printer-3070-8187-瑞银