本帖最后由 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后面添加
-
,
-
{
-
.desc = "sw1",
-
.type = EV_KEY,
-
.code = BTN_0,
-
.debounce_interval = TL_WR703N_KEYS_DEBOUNCE_INTERVAL,
-
.gpio = TL_WR703N_GPIO_BTN_SW1,
-
.active_low = 0,
-
},
-
{
-
.desc = "sw2",
-
.type = EV_KEY,
-
.code = BTN_1,
-
.debounce_interval = TL_WR703N_KEYS_DEBOUNCE_INTERVAL,
-
.gpio = TL_WR703N_GPIO_BTN_SW2,
-
.active_low = 0,
-
}
复制代码
然后新建/etc/hotplug.d/button/10-slider,内容如下
-
#!/bin/sh
-
-
if [ $ACTION == "released" ] ; then
-
if [ $BUTTON == "BTN_1" ] ; then
-
# 3G
-
执行命令
-
elif [ $BUTTON == "BTN_0" ] ; then
-
# Router
-
执行命令
-
fi
-
elif [ $BUTTON == "BTN_0" ] || [ $BUTTON == "BTN_1" ] ; then
-
if grep -qe "sw1.*in hi" /sys/kernel/debug/gpio ; then
-
if grep -qe "sw2.*in hi" /sys/kernel/debug/gpio ; then
-
# AP
-
执行命令
-
fi
-
fi
-
fi
复制代码
上面是处理热切换3个不同位置执行不同的命令。
还没完,还要处理冷启动时根据滑块现有的位置来执行相应的命令,新建/etc/init.d/slider,如下:
-
#!/bin/sh /etc/rc.common
-
-
START=22
-
boot() {
-
if grep -qe "sw2.*in hi" /sys/kernel/debug/gpio ; then
-
if grep -qe "sw1.*in hi" /sys/kernel/debug/gpio ; then
-
# AP
-
执行命令
-
else
-
# Router
-
执行命令
-
fi
-
else
-
# 3G
-
执行命令
-
fi
-
}
复制代码
最后, 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) ” ,在后面添加:
-
[ "$hwid" = "07200103" ] && {
-
hwid="07030101"
-
}
复制代码
找到 “ p_w_picpathid=$(tplink_get_p_w_picpath_hwid "$1") ” ,在后面添加:
-
[ "$p_w_picpathid" = "07200103" ] && {
-
p_w_picpathid="07030101"
-
}
复制代码
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-瑞银
|