在Linux下通过PPP上WCDMA

折腾了一番通过几种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文件可以不改。

你可能感兴趣的:(linux)