首先通过dmesg命令查看PCMCIA卡设备名。
$ dmesg | grep tty
[ 46.660000] ttyS2: LSR safety check engaged!
[ 46.660000] ttyS2: LSR safety check engaged!
[ 49.608000] ttyS2: LSR safety check engaged!
[ 695.124000] ttyS3: detected caps 00000700 should be 00000100
[ 695.124000] 0.0: ttyS3 at I/O 0x2e8 (irq = 3) is a 16C950/954
接下来:
映射到/dev/modem
代码:
$ sudo ln -sf /dev/ttyS3 /dev/modem
这一步也是方便wvdial命令的直接执行,因为当CDMA卡插入时设备名有时会有所不同。
编辑/etc/wvdial.conf
$ sudo gedit /etc/wvdial.conf
修改内容为:
[Modem0]
Modem = /dev/modem
Baud = 57600
SetVolume = 1
Dial Command = ATDT
Init1 = ATZ
FlowControl = Hardware (CRTSCTS)
[Dialer Defaults]
Username = CARD
Password = CARD
Phone = #777
Stupid Mode = 1
Inherits = Modem0
安装setserial:
$ sudo apt-get install setserial
然后:
$ sudo setserial /dev/ttyS3 baud_base 230400
以上配置完成后执行:
$ sudo wvdial
可以看到:
--> WvDial: Internet dialer version 1.56
--> Initializing modem.
--> Sending: ATZ
OK
--> Modem initialized.
--> Sending: ATDT#777
--> Waiting for carrier.
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu Jun 21 23:39:50 2007
--> Pid of pppd: 6077
--> Using interface ppp0
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> local IP address 220.200.218.146
--> pppd: H[18]
--> [06][08]� [06][08]
--> remote IP address 220.192.208.18
--> pppd: H[18]
--> [06][08]� [06][08]
--> primary DNS address 220.192.0.130
--> pppd: H[18]
--> [06][08]� [06][08]
--> secondary DNS address 220.192.8.58
--> pppd: H[18]
--> [06][08]� [06][08]
--> Connect time 10.4 minutes.
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> local IP address 220.192.211.10
--> pppd: H[18]
--> [06][08]� [06][08]
--> remote IP address 220.192.208.17
--> pppd: H[18]
--> [06][08]� [06][08]
--> primary DNS address 220.192.0.130
--> pppd: H[18]
--> [06][08]� [06][08]
--> secondary DNS address 220.192.8.58
--> pppd: H[18]
--> [06][08]� [06][08]
这时ping220.192.208.17却出现如下提示:
PING 220.192.208.17 (220.192.208.17) 56(84) bytes of data.
From 220.192.208.17 icmp_seq=1 Packet filtered
From 220.192.208.17 icmp_seq=2 Packet filtered
From 220.192.208.17 icmp_seq=3 Packet filtered
郁闷。但...route看看路由表吧。
$ route
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
220.192.208.17 * 255.255.255.255 UH 0 0 0 ppp0
只看到这一行,网关不正确。于是手动加上一句:
$ sudo route add default ppp0
再次查看路由表,可以看到为其配置了默认网关,这里,我也弄不清楚为什么拨号以后没有得到默认路由。
$ route
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
220.192.208.17 * 255.255.255.255 UH 0 0 0 ppp0
default * 0.0.0.0 U 0 0 0 ppp0
cdma卡拨号成功后,如果有一段时间闲置未做什么操作,CDMA卡会自动重新握手,获取新的IP。
$ dmesg | grep tty
[ 46.660000] ttyS2: LSR safety check engaged!
[ 46.660000] ttyS2: LSR safety check engaged!
[ 49.608000] ttyS2: LSR safety check engaged!
[ 695.124000] ttyS3: detected caps 00000700 should be 00000100
[ 695.124000] 0.0: ttyS3 at I/O 0x2e8 (irq = 3) is a 16C950/954
接下来:
映射到/dev/modem
代码:
$ sudo ln -sf /dev/ttyS3 /dev/modem
这一步也是方便wvdial命令的直接执行,因为当CDMA卡插入时设备名有时会有所不同。
编辑/etc/wvdial.conf
$ sudo gedit /etc/wvdial.conf
修改内容为:
[Modem0]
Modem = /dev/modem
Baud = 57600
SetVolume = 1
Dial Command = ATDT
Init1 = ATZ
FlowControl = Hardware (CRTSCTS)
[Dialer Defaults]
Username = CARD
Password = CARD
Phone = #777
Stupid Mode = 1
Inherits = Modem0
安装setserial:
$ sudo apt-get install setserial
然后:
$ sudo setserial /dev/ttyS3 baud_base 230400
以上配置完成后执行:
$ sudo wvdial
可以看到:
--> WvDial: Internet dialer version 1.56
--> Initializing modem.
--> Sending: ATZ
OK
--> Modem initialized.
--> Sending: ATDT#777
--> Waiting for carrier.
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu Jun 21 23:39:50 2007
--> Pid of pppd: 6077
--> Using interface ppp0
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> local IP address 220.200.218.146
--> pppd: H[18]
--> [06][08]� [06][08]
--> remote IP address 220.192.208.18
--> pppd: H[18]
--> [06][08]� [06][08]
--> primary DNS address 220.192.0.130
--> pppd: H[18]
--> [06][08]� [06][08]
--> secondary DNS address 220.192.8.58
--> pppd: H[18]
--> [06][08]� [06][08]
--> Connect time 10.4 minutes.
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> pppd: H[18]
--> [06][08]� [06][08]
--> local IP address 220.192.211.10
--> pppd: H[18]
--> [06][08]� [06][08]
--> remote IP address 220.192.208.17
--> pppd: H[18]
--> [06][08]� [06][08]
--> primary DNS address 220.192.0.130
--> pppd: H[18]
--> [06][08]� [06][08]
--> secondary DNS address 220.192.8.58
--> pppd: H[18]
--> [06][08]� [06][08]
这时ping220.192.208.17却出现如下提示:
PING 220.192.208.17 (220.192.208.17) 56(84) bytes of data.
From 220.192.208.17 icmp_seq=1 Packet filtered
From 220.192.208.17 icmp_seq=2 Packet filtered
From 220.192.208.17 icmp_seq=3 Packet filtered
郁闷。但...route看看路由表吧。
$ route
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
220.192.208.17 * 255.255.255.255 UH 0 0 0 ppp0
只看到这一行,网关不正确。于是手动加上一句:
$ sudo route add default ppp0
再次查看路由表,可以看到为其配置了默认网关,这里,我也弄不清楚为什么拨号以后没有得到默认路由。
$ route
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
220.192.208.17 * 255.255.255.255 UH 0 0 0 ppp0
default * 0.0.0.0 U 0 0 0 ppp0
cdma卡拨号成功后,如果有一段时间闲置未做什么操作,CDMA卡会自动重新握手,获取新的IP。