找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 7170|回复: 3

H618b、rg100a刷OpenWrt固件及使用3G上网卡+宽带合并

[复制链接]
发表于 2013-11-19 14:35 | 显示全部楼层 |阅读模式
http://qinfux.vicp.net/read.php?tid=365
H618b、rg100a刷OpenWrt固件及使用3G上网卡+宽带合并。

  关于AC901,请参考 http://www.51nb.com/forum/viewthread.php?tid=1073931&
运行 pppd /dev/ttyUSB0 115200 connect "chat -s -v -f /etc/chatscripts/3g.chat" 拔号试试
看日志,如果能拨上,请修改/lib/network/3g.sh,删除下面的内容
test -z "$pincode" || {
        PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
               echo "$config(3g): Failed to set the PIN code."
               set_3g_led 0 0 0
               return 1
        }
}

已更新单路由多个3G网卡宽带合并教程:http://www.51nb.com/forum/viewth ... &extra=page%3D1
2010/5/5   最近更新:h618b+MU350速度只有40K左右,rg100a没有此问题。不知是不是USB驱动包的问题,有待测试。(很抱歉,教程出来前,没能仔细测试。)
2010/5/2   最近更新:3G+PPPoE更加完美[无需考虑谁先接入了]
2010/4/28 最近更新:增加宽带合并——3G+PPPoE


本文仅针对h618b、rg100a路由器,3G上网卡MU350及移动的TD-SCDMA(WCDMA、EVDO未测试),固件OpenWrt。
关于宽带合并,正努力研究中...看到有些人在等这个教程,所以先把已有的成果整理出来吧,大家一起研究。

由于本人只有h618b、rg100a路由,如你有其他等基于BCM5354、BCM6358的路由器,请自行谨慎选择其他固件。
刷机有风险,变砖本人概不负责!!!



一、刷机

      1. h618b刷机
h618b刷机很容易,且一般情况不会刷死。
下载OpenWrt固件:http://downloads.openwrt.org/bac ... cm-2.4-squashfs.trx
再下载一个通用的刷机工具,或者直接用命令行版的tftp。
先把PC网卡IP地址设成路由器同一个网段:192.168.1.x
开一个CMD窗口,PING路由器的默认IP:ping 192.168.1.1 -t,暂时不要关闭该CMD。


运行刷机工具,路由器IP填上:192.168.1.1,选择我们下载的固件。


然后把路由器关掉,同时观察CMD,当出现Hardware error时,再迅速打开路由器电源,当出现TTL=100的时候,点击刷机工具的“更新固件”按钮。


提示刷新成功后,观察CMD,等了一会,又能PING通192.168.1.1了,固件刷新完成。


(小技巧:有时候不会那么容易出现TTL=100,当关闭电源,打开电源出现TTL=64...(2到3行)后再次关掉电源,在出现Hardware error后立即打开电源,一般就会出现TTL=100了。也就是要开关各两次,这个时间的把握自己去体会,呵呵。)

      2. rg100a刷机
比h618b刷机貌似更容易,呵呵。
先PC连到rg100a的LAN1口,记住一定要是LAN1口,不然刷不上的,且把IP地址改成和路由器同一个网段,即:192.168.1.x
下载OpenWrt固件,和h618b的固件是不一样的,别搞错了。
http://downloads.openwrt.org/bac ... -128k-bc310-cfe.bin

把路由器电源关掉,按住reset键不放再打开电源,持续20秒左右,然后浏览器打开192.168.1.1,出现刷机登录页面


用户:telecomadmin 密码:nE7jA%5m,登录进去后就来到了刷机页面。
根据rg100a及cfe版本不一样,用户名密码有可能是下面这些:
用户:telecomadmin 密码:nE7jA%5m
用户:admin 密码:8mCnC@bj
用户:bjcnchgw 密码:8mCnC@bj
或者密码就是用户名来的。


选择我们下载下来的固件,升级,接下来很简单不多说了。刷新完成后路由会自动重启,过一会 Ping 192.168.1.1 通了,OK固件刷新完成。

我这里刷的是OpenWrt官方版本,你也可以刷第三方中文版,比如:openwrt.org.cn的固件,有集成一些脱机下载之类的软件。另外如果固件大于8M的,你需要用小于8M(比如官方固件)的固件过度,然后再在OpenWrt管理页面刷大于8M的固件就可以了。
( 提示:有时候刷完了等很久都Ping不通?这时需要把PC上连路由的那个本地连接重新激活一下,也就是先“禁用”,后“启用”;或者把网线换到其他LAN口。)



二、OpenWrt的简单设置
现在的OpenWrt固件一般默认都有WEB管理界面了。


直接浏览器192.168.1.1登录。用户名:root,密码:空
OpenWrt默认WEB界面很简单,我们启用更强大的全功能luci-admin-full。(luci是OpenWrt默认的WEB管理插件)
我们telnet 192.168.1.1,OpenWrt默认启用的是luci-admin-mini,我们要把它移除。
输入命令:




[Copy to clipboard] [ - ]
CODE:
opkg remove luci-admin-mini


移除成功,需要重启路由。
输入命令:

[Copy to clipboard] [ - ]
CODE:
reboot


重启后进入WEB界面,这时候已经启用luci-admin-full了,发现比之前强大的多。

OpenWrt有很强大的软件管理opkg,为了后面安装软件更方便,我们先让路由器本身能上网。
WEB管理界面Network->General,修改lan口地址。


修改路由器lan口地址为:192.168.0.168,网关192.168.0.1,dns:192.168.0.1,保存。


回到PC上来,我PC有两个网卡,一个网卡连接路由器,一个连接Internet。
我们把与Internet连接的这个网卡共享上网,这样和路由器连接的这个网卡地址就自动变成了192.168.0.1


我们telnet到路由器192.168.0.168,ping 163.com,发现能上网了,目的达到,继续。。。
(PC没有两个网卡的朋友可以把3G上网卡作为共享上网之用。)

接下来安装USB、3G上网卡及拨号等需要的包
在telnet下,先update:

[Copy to clipboard] [ - ]
CODE:
opkg update


再安装包:

[Copy to clipboard] [ - ]
CODE:
opkg install kmod-usb-core kmod-usb-ohci kmod-usb-serial libusb kmod-usb-acm chat comgt usb-modeswitch


如果你的路由器暂时不能上网,可以把这些包用PC下载下来传到路由器上,再本地安装。
h618b对应固件的扩展包在这里:http://downloads.openwrt.org/backfire/10.03/brcm-2.4/packages/
rg100a对应固件的扩展包在这里:http://downloads.openwrt.org/backfire/10.03/brcm63xx/packages/



三、vlan设置
     首先3G上网是不需要物理wan口的,也就不用设置vlan了,所以如果你不使用ADSL等线路,那可以跳过本节。

     1. h618b的vlan设置
     h618b刷好官方固件后,wan口还是原来那个,无需设置vlan。如果你需要增加wan口,请往下看:

vlan原理:


如上图,eth0、eth1、eth2就好比是3个网卡,eth0是有线网卡,eth2是无线网卡,eth1保留。

再来看端口从port0一直到port5,把port5当成cpu。把前5个端口划分为2个vlan,即port0属于vlan 1,port1——port4属于vlan 0。
我们可以认为vlan 1就是wan口,vlan 0就是lan口了。
运行命令看下:

[Copy to clipboard] [ - ]
CODE:
cat /etc/config/network


看一下默认配置,就和上图一样

[Copy to clipboard] [ - ]
CODE:

config switch_vlan
          option device eth0
          option vlan 0
          option ports "1 2 3 4 5*"            #port1、2、3、4和cpu 5属于vlan 0

config switch_vlan
          option device eth0
          option vlan 1
          option ports "0 5*"                    #port0和cpu 5属于vlan 1

config interface lan
          option type     bridge
          option ifname   eth0.0               #把vlan 0配置成lan口,即port1、2、3、4都是lan口了。
          option proto    static
          option ipaddr   192.168.0.168
          option netmask  255.255.255.0
          option gateway 192.168.0.1
          option dns 192.168.0.1
          option nat      1

config interface wan
          option ifname eth0.1                  #把vlan 1配置成wan口,即port0就是wan口了。
          option proto dhcp


上面是只有一个wan口的默认设置,如果要增加一个wan口,那就要再多分一个vlan出来。
可以这样:

[Copy to clipboard] [ - ]
CODE:

config switch_vlan
          option device eth0
          option vlan 0
          option ports "1 2 3 5*"               #port1、2、3、4和cpu 5属于vlan 0

config switch_vlan
          option device eth0
          option vlan 1
          option ports "0 5*"                    #port0和cpu 5属于vlan 1

config switch_vlan
          option device eth0
          option vlan 2
          option ports "4 5*"                    #port4和cpu 5属于vlan 2

config interface wan2
          option ifname eth0.2                 #把vlan 2配置成wan2口,即port4就是wan2了
          option proto dhcp


至于port0——port4和物理的lan1、lan2、lan3、lan4以及wan是怎么一一对应的,就需要自己去试了。
h618b刚好是port0对应其物理的wan口,port1对应物理lan1口,port2对应lan2...

另外:在Web管理页面Network->Switch也可以直观的配置vlan,如下图:



2. rg100a的vlan设置
rg100a刷好官方固件后,默认是没有wan口的,我们需要设置vlan来划分wan和lan。
vlan原理清楚了,就不多说了,只要注意rg100a的“有线网卡”是eth1就行了。

编辑 /etc/config/network

[Copy to clipboard] [ - ]
CODE:
vi /etc/config/network


按“i”键进入插入模式
改成如下:

[Copy to clipboard] [ - ]
CODE:

config interface loopback
        option ifname   lo
        option proto    static
        option ipaddr   127.0.0.1
        option netmask  255.0.0.0

config interface lan
        option type     bridge
        option ifname   eth1.0
        option proto    static
        option ipaddr   192.168.0.168
        option netmask  255.255.255.0
        option gateway 192.168.0.1
        option dns 192.168.0.1
        option nat      1

config interface wan
        option ifname eth1.1
        option proto dhcp
        config switch eth1
        option reset 1
        option enable_vlan 1

config switch eth1
        option reset 1
        option enable_vlan 1

config switch_vlan
        option device eth1
        option vlan 0
        option ports "1 2 3 5*"

config switch_vlan
        option device eth1
        option vlan 1
        option ports "0 5*"


改完后,按“ESC”键退到命令行模式
[Copy to clipboard] [ - ]
CODE:
:wq



保存退出。有关vi的用法,请baidu:”linux vi“,嫌麻烦可以直接用我修改好的network覆盖掉原来的,见附件(network.txt改成network)

再次申明:如果你只用3G上网卡来上网,是不需要设置vlan的。vlan为什么要讲这么多,因为这个与多wan合并息息相关,当然只是双3G上网卡合并也是不需要vlan的。

重启后,lan1口已经变成wan口了,记得把网线换到其他lan口,我们继续...



四、OpenWrt下识别3G上网卡
我们进到WEB管理页面设置管理密码System->Admin Password,设置密码后也就启用了强大的SSH,随之telnet服务也被关闭了。

3G上网卡我这里以MU350为例,由于MU350可以硬件关闭存储模式,所以可以更简单,不需要使用usb-modeswitch。
下载这个软件:FUN_P902M2V1.00.06
http://www.brsbox.com/xiefh/dirid/4720707 这个地址有,以前51NB也有的,自己搜搜之前的帖子。

安装,运行该软件,“关闭自启动并打开升级功能”就把MU350的存储模式关闭了,这样MU350在OpenWrt下就会直接被识别为modem了。
另外:MU350的拨号软件里面,设置->安全设置->关闭U盘和SD卡,效果也是一样的。
中兴的网卡是否都可以关闭存储模式,请各位验证。

网卡准备好了,接下来需要用到一个软件:WinSCP,可以用很方便的通过SSH连接到路由器,上传下载文件,执行命令等操作。
运行WinSCP后出现登录界面,填上路由器IP,文件协议选SCP,输入用户名密码。


登录后提示更新密匙,点击“更新”,再弹出两个错误提示直接忽略就ok了。


编辑/etc/modules.d/60-usb-serial 把MU350的信息加进去,不管是否已经关闭了上网卡的存储模式或者其他3G卡都需要加入这个信息。
【这里有个常识请注意:linux和windows的换行符是不一样的,所以请不要在windows下面新建的文本文件上传到路由器里面,请直接用WinSCP新建文件就可以了,或者直接用vi命令新建文件。不然windows下建的脚本直接拖过来可能是不能用的。】

每个网卡不一样,请根据实际情况改成你的,其实就是usb-modeswitch里的了,

[Copy to clipboard] [ - ]
CODE:
usbserial vendor=0x19d2 product=0x0003 # ZTE MU350


这里我们看看ET128的情况,ET128的usb-modeswitch.conf内容如下:

[Copy to clipboard] [ - ]
CODE:
# ET128
DefaultVendor= 0x12d1
DefaultProduct= 0x1da1
TargetVendor= 0x12d1
TargetProduct= 0x1d09
DetachStorageOnly=0
HuaweiMode=1


如果有Target值我们就要取这个值,否则就是Default值了。
根据上面的信息,那ET128的/etc/modules.d/60-usb-serial内容如下:

[Copy to clipboard] [ - ]
CODE:
usbserial vendor=0x12d1 product=0x1d09 # ET128


重启路由,插上MU350,WinSCP连接到路由,打开终端输入命令查看是否MU350已被识别。

[Copy to clipboard] [ - ]
CODE:
dmesg | grep usb


如出现下面类似信息,就OK了(出现一个ttyUSB0并不能说明就被识别了,一般情况会有ttyUSB0、ttyUSB1、ttyUSB2这样多个设备出现才能说明网卡被识别了)

[Copy to clipboard] [ - ]
CODE:
usbserial.c: Generic converter detected
usbserial.c: Generic converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
usbserial.c: Generic converter detected
usbserial.c: Generic converter now attached to ttyUSB1 (or usb/tts/1 for devfs)
usbserial.c: Generic converter detected
usbserial.c: Generic converter now attached to ttyUSB2 (or usb/tts/2 for devfs)
usbserial.c: Generic converter detected
usbserial.c: Generic converter now attached to ttyUSB3 (or usb/tts/3 for devfs)


设备/dev/usb/tts/0就是我们的MU350猫了。
还有设备不一定被挂载在/dev/usb...
也有可能是:/dev/ttyUSB0这样的,mu350在rg100a下就是这样
也有可能是:/dev/ttyACM0这样的...

上面是讲的3G上网卡的识别。如你的3G上网卡不能关闭存储模式,那就要用到usb-modeswitch了,这个软件前面我们已经装了。
我们直接新建/etc/usb-modeswitch.conf,内容如下:

[Copy to clipboard] [ - ]
CODE:
# ZTE MU350
#
# Contributor: Dale Lane
DefaultVendor= 0x19d2;
DefaultProduct= 0x0003
# choose one of these:
DetachStorageOnly=0
MessageContent=5553424312345678000000000000061b000000020000000000000000000000


再执行usb_modeswitch -W,就能把MU350切换到modem模式了。

ET128的usb-modeswitch.conf内容如下:

[Copy to clipboard] [ - ]
CODE:
# ET128
DefaultVendor= 0x12d1
DefaultProduct= 0x1da1
TargetVendor= 0x12d1
TargetProduct= 0x1d09
DetachStorageOnly=0
HuaweiMode=1


使用usb-modeswitch后,设备不一定是/dev/usb/tts/0或者/dev/ttyUSB0,也有可能是/dev/usb/tts/1或者/dev/ttyUSB1

3G网卡的识别最重要的是/etc/usb-modeswitch.conf的创建,相关网卡的信息需要大家一起研究和收集了。

(补充:建议更新usb-modeswitch,和安装usb-modeswitch-data这个包到最新版,trunk版一般都包含最新的软件包,地址如下:http://downloads.openwrt.org/snapshots/trunk/brcm63xx/packages/
usb-modeswitch、usb-modeswitch-data最新版能监视3G网卡的接入,把网卡(USB)自动转换成串口。
装完usb-modeswitch-data后,/etc/usb_modeswitch.d目录下有很多配置文件,也就是以前的usb_modeswitch.conf。
只不过文件名的格式需要改成[DefaultVendor: DefaultProduct],很简单只要对照自己的网卡修改就ok了)

另外如果华为的卡用usb-modeswitch不能被识别,可以试试安装这个包:huaweiaktbbo

[Copy to clipboard] [ - ]
CODE:
opkg install huaweiaktbbo


然后直接运行命令:huaweiaktbbo

[Copy to clipboard] [ - ]
CODE:
huaweiaktbbo



五、使用3G上网卡拨号
登录到路由WEB界面,3G拨号之前,我们先把路由lan口地址改回192.168.1.1
3G拨号软件前面我们已经装好了,现在只要添加3G拨号接口就行了。
Network->Interfaces,我们添加一个接口td01:


具体设置见下图:


我们看到上图Service type有3个可选:UTMS/GPRS、CDMA、EV-DO
UTMS/GPRS使用脚本:/etc/chatscripts/3g.chat
CDMA、EV-DO使用脚本:/etc/chatscripts/evdo.chat

3G拨号是依靠comgt完成的,由于td-scdma只是我们国家的国际标准,这里不能被直接支持,我们需要把拨号脚本替换成td的,这里我替换掉UTMS/GPRS拨号脚本:/etc/chatscripts/3g.chat
请把附件3g.chat(3g.txt改成3g.chat)替换到/etc/chatscripts/3g.chat

修改完成后就自己开始拨号,也可以手动拨号,成功拨号后如下图


恭喜,到这一步已经能顺利拨号了,但还没完,我们继续...
为了让每次重启路由后能自动拨号,我们新建一个文件 /etc/init.d/td01
内容如下:

[Copy to clipboard] [ - ]
CODE:
#!/bin/sh /etc/rc.common
START=99
start() {
sleep 30
ifup td01
}


(补充:可以更新comgt这个包到最新的trunk版,该版本带自动拨号脚本,更新后就无需td01这个了,很方便!
先删除旧版comgt: opkg remove comgt
再安装新版comgt:opkg install http://downloads.openwrt.org/sna ... 0.32-9_brcm63xx.ipk)

设置可执行权限

[Copy to clipboard] [ - ]
CODE:
chmod +x /etc/init.d/td01


设置可用

[Copy to clipboard] [ - ]
CODE:
/etc/init.d/td01 enable


更完美点,让3G上网卡每次插入USB口后就自动拨号,编辑 /etc/hotplug.d/usb/10-usb
把ifup td01添加进去,如下:
(补充:如你把comgt更新到最新版了,那也就无需修改/etc/hotplug.d/usb/10-usb了,因为新版comgt已自带类似脚本了。)

[Copy to clipboard] [ - ]
CODE:

#!/bin/sh
# Copyright (C) 2009 OpenWrt.org
case "$ACTION" in
     add)
               # update LEDs
          ifup td01
                  ;;
     remove)
               # update LEDs
          ifdown td01
  ;;
esac


如果你要用到usb-modeswitch,也可以把usb_modeswitch -W也加到上面的脚本里,这样只要3G上网卡插上去就可以自动被识别了。需要使用wifi的朋友注意下,这里加了这个脚本后,在每次重启路由后需要手动wifi up,不然不会自己启动wifi的。



六、多网口负载平衡及宽带合并
初步实现了3G上网卡和PPPoE宽带合并,双3G上网卡合并还有些问题。
双PPPoE合并,及其他方式没有条件测试。

3G上网拨号接口我们之前已经添加了,我们来添加PPPoE拨号,直接修改WAN口:


设置很简单,不多说了
PPPoE+3G拨号成功,如图:


接下来设置多WAN口合并,就是我们前面讲过一个组件:
Multi-WAN Load Balancing,地址:https://forum.openwrt.org/viewtopic.php?id=23904&p=1
我们用它来实现WAN+td01的宽带合并。
先安装该组件:

[Copy to clipboard] [ - ]
CODE:
opkg install ftp://ftp.netlab7.com/luci-app-multiwan_1.0.3.ipk


作者一直在更新,所以请根据前面的地址改成最新版本再安装。
装完重启就会出现Network->Multi-WAN这个菜单
我们进去设置一下,假设两个WAN口合并,详见下图:


Load Balancer Distribution:负载比例分配,比重越大走的流量越多。
Health Monitor Frequency:健康检测频率,单位秒。就是每隔多少秒检测该WAN是否在线咯。
Health Monitor ICMP Host(s):用来健康检测PING的对象。我这里写的是baidu和163的IP。
Health Monitor ICMP Timeout:很好理解了,健康检测PING超时时间。
Attempts Before WAN Failover:该WAN发生故障了,不在线了?重复检测的次数,以确定真的掉线。
Attempts Before WAN Recovery:恢复该WAN流量前,检测该WAN是否真的在线的次数。晕,有点别扭,自己理解吧。
Failover Traffic Destination:该WAN发生故障后,转移到哪个网口。
最下面的是策略路由,比如可以让所有80端口的网页流量都走WAN,其他走3G,以优化网页浏览体验。

目前该组件还不太完美,有个小问题(不知道是不是因为有3G才这样的):
当PPPoE和3G都接入后,需要手动把Multi-WAN再启动一次,也就按下Multi-WAN设置页面的“Save & Apply”按钮,合并才会生效。
貌似不是很方面,但是有个解决办法,修改一个脚本/etc/hotplug.d/net/10-net:

[Copy to clipboard] [ - ]
CODE:
case "$ACTION" in
add|register)
  case "$PHYSDEVDRIVER" in
   natsemi) sleep 1;;
  esac
  addif


在上面语句后面添加:

[Copy to clipboard] [ - ]
CODE:
sh /usr/bin/multiwan restart



当检测有网络接入时,自动重启Multi-WAN。
经过上面修改后,3G+PPPoE基本上完美了,无需考虑顺序问题了,3G和PPPoE随便插,不管谁先谁后,谁上谁下,随便插好了, 哈哈

关于宽带合并
可以考虑使用m-route,效率比Multi-WAN更高。请参考下面地址的m-route部分
http://www.51nb.com/forum/viewth ... &extra=page%3D1



/etc/usb-modeswitch.conf 相关3G网卡信息需要大家一起交流研究,这个是重点,请大家反馈信息。


目前rg100a(同样配置的还有DB120、DCHG-800-A、h108b)作为单纯的3G路由器很稳定,也是最便宜的3G路由方案了。h618b稍微贵一点,但可刷固件比较多。
还有OpenWrt很强大,只要你有颗折腾的心,脱机下载、Openvirtual**、PPPoE Server、Web Server等通通不在话下,正所谓你想要什么就装什么,而且安装软件也很简单。

已更新单路由多个3G网卡宽带合并教程:http://www.51nb.com/forum/viewth ... &extra=page%3D1原创
http://www.51nb.com/forum/viewthread.php?tid=948344





  openwrt使用opkg从本地电脑安装软件方法

一般我们用opkg安装软件有两种,
1是连上网络后从官方网站安装opkg update;opkg install XXX
2是把软件下载下来,传到路由器tmp目录安装opkg install XXX.ipk
对于1来说,如果路由暂时上不了网,就无法使用,方法2又有些麻烦
这里提供的方法是:
1在本机上开ftp,或http服务,随便什么工具
2修改/etc/opkgconfig
把里边第一行那个网址改成本地服务器放安装包的服务目录
比如ftp://192.168.1.25/a
3从官网下载用需要的软件包放在服务器上/a 目录下
4这一步很重要,一定要把packages这个文件下载回来放在此/a目录下
5现在可以像方法1一样使用升级了
6如果对依赖关系搞不清楚,直接把整个packages目录下载下来,反正用工具下又不麻烦,
大小也可以忍受,2971个文件才212M
发表于 2013-11-19 22:46 | 显示全部楼层
h618b刷 openwrt会不会很慢呀??????
发表于 2013-11-20 11:53 | 显示全部楼层
我移动的ET188,插上一直都没成功{:soso_e109:}
发表于 2013-11-20 16:09 | 显示全部楼层
h618b刷 openwrt 无线正常吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-6-13 13:25

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表