折腾了一番通过几种USB上网卡在Linux下上WCDMA,在此记录一下:
通用配置文件:
/etc/ppp/peers/wcdma :
/dev/ttyACM0
460800
connect '/etc/ppp/chat-wcdma'
noauth
usepeerdns
noipdefault
defaultroute
----
注意,其中的/dev/ttyACM0 是串口设备,后面描述。
/etc/ppp/chat-wcdma
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
exec /usr/sbin/chat -v
/
ECHO
ON
/
ABORT
'BUSY'
/
ABORT
'NO ANSWER'
/
ABORT
'ERROR'
/
TIMEOUT
20
/
''
'AT'
/
OK
AT+CFUN=6
/
OK 'AT+CGDCONT=1,"IP","3gnet",,0,0' /
OK
'ATDT*99#'
/
CONNECT
其中的3gnet 就是联通WCDMA上网需要的APN啦。 CFUN=6是让索爱MD-400只工作在WCDMA网络下。相应地CFUN=5就只工作再GSM/GPRS/EDGE下, CFUN=1就是全自动选择
拨号连接时,用
pppd call wcdma
即可。你可以自己设置IP伪装NAT等等事宜。
以上是用索尼爱立信MD-400上网卡设置的,如果你用的是华为E1750, 那么设备名就换成/dev/ttyUSB0 即可。
无论是索爱MD400还是华为E1750, 都需要小工具 usb_modeswitch 1.0.2 切换其倒霉的USB工作状态,详细的介绍和下载可以去这里看看: http://www.draisberghof.de/usb_modeswitch/
如果是电信的天翼CDMA2000 EV-DO 3G, 测试了一下华为EC1260,基本区别不大,注意以下几点:
1, 2.6.19之后的核心有专门对付EC1260的代码, 插进去直接就令其工作在Modem模式,你会看到有/dev/ttyUSB0设备,可以不需要usb_modeswitch的帮助。低版本核心可能还离不开。
2, EVDO没有APN的概念,上面的/etc/ppp/chat-wcdma 脚本改成这样即可:
[root@pxi4g ppp]# cat chat-evdo
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
exec /usr/sbin/chat -v
/
ECHO
ON
/
ABORT
'BUSY'
/
ABORT
'NO ANSWER'
/
ABORT
'ERROR'
/
TIMEOUT
20
/
''
'AT'
/
OK
'ATDT#777'
/
CONNECT
也就是说,直接拨特殊号码#777即可。 peers/wcdma文件可以不改。