SDB:配置3G数据上网卡

跳转至: 导航, 搜索
该文章介绍如何在 openSUSE 上配置使用 3G 数据上网卡,使用的是一个华为生产的联通数据上网卡作为示例。

测试版本

推荐条目

Icon-manual.png

{{{2}}}

相关条目

Icon-help.png

{{{3}}}

工具准备

首先要保证系统里已经安装 usb_modeswitchwvdial 这两个包,因为我们要使用这两个命令,一个是用来切换 usb 模式的,一个是用来拨号的。

切换上网卡 usb 模式

插入华为的 3g 联通数据上网卡(实例型号是 HUAWEI E261),使用如下 lsusb 命令查看信息:

lsusb
Bus 002 Device 003: ID 12d1:1436 Huawei Technologies Co., Ltd.
这里如果不是 HUAWEI 设备,请使用相应的关键字.

记录下 ID,也就是 12d1:1436 ,一个厂商号,一个设备号。 然后使用如下命令将切换 usb 模式:

# usb_modeswitch --default-vendor 0x12d1 --default-product 0x1436 --target-vendor 0x12d1 --target-product 0x1436 --huawei-mode
Looking for target devices ...
found matching product ID
adding device
Found devices in target mode or class (1)
Looking for default devices ...
found matching product ID
adding device
Found device in default mode, class or configuration (1)
Accessing device 003 on bus 002 ...
Getting the current device configuration ...
OK, got current device configuration (1)
Using first interface: 0x00
Using endpoints 0x01 (out) and 0x82 (in)
Not a storage device, skipping SCSI inquiry

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI Technology
Product: HUAWEI Mobile
Serial No.: not provided
-------------------------
Sending Huawei control message ...
OK, Huawei control message sent
-> Run lsusb to note any changes. Bye.
这里具体请查看 usb_modeswitch 手册,不同设备,命令的最后一个参数可能不同。

然后,

# ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2

已经有了3个 ttyUSB 设备。

配置 wvdial

运行下面的命令来生成 wvdial 的配置文件:

# wvdialconf
Editing `/etc/wvdial.conf'.

Scanning your serial ports for a modem.

Modem Port Scan<*1>: S0 S1 S2 S3 S4 S5 S6 S7
ttyUSB0<*1>: ATQ0 V1 E1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB0<*1>: Modem Identifier: ATI -- Manufacturer: huawei
ttyUSB0<*1>: Speed 9600: AT -- OK
ttyUSB0<*1>: Max speed is 9600; that should be safe.
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
ttyUSB2<*1>: ATQ0 V1 E1 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB2<*1>: Modem Identifier: ATI -- Manufacturer: huawei
ttyUSB2<*1>: Speed 9600: AT -- OK
ttyUSB2<*1>: Max speed is 9600; that should be safe.
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK

Found a modem on /dev/ttyUSB0.
Modem configuration written to /etc/wvdial.conf.
ttyUSB0: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
ttyUSB2: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"

可以看到,配置文件在 /etc/wvdial.conf ,然后修改一下该文件,我修改后的文件内容如下:

# cat /etc/wvdial.conf
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem = /dev/ttyUSB0
Phone = *99#
Idle Seconds = 300
Modem Type = Analog Modem
Stupid Mode = 1
Compuserve = 0
Baud = 9600
Auto DNS = 1
Dial Command = ATDT
Ask Password = 0
ISDN = 0
Password = any
Username = any

拨号上网

接下来就直接运行 wvdial 拨号:

# wvdial
--> WvDial: Internet dialer version 1.60
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Idle Seconds = 300, disabling automatic reconnect.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Mon Jan 14 23:46:44 2013
--> Pid of pppd: 32212
--> Using interface ppp0
--> pppd: [1e][7f]
--> pppd: [1e][7f]
--> pppd: [1e][7f]
--> pppd: [1e][7f]
--> pppd: [1e][7f]
--> local IP address 172.20.197.35
--> pppd: [1e][7f]
--> remote IP address 10.64.64.64
--> pppd: [1e][7f]
--> primary DNS address 202.106.195.68
--> pppd: [1e][7f]
--> secondary DNS address 202.106.46.151
--> pppd: [1e][7f]
--> Script /etc/ppp/ip-up run successful
--> Default route Ok.
--> Nameserver (DNS) Ok.
--> Connected... Press Ctrl-C to disconnect
--> pppd: [1e][7f]

可以看到已经设置了 IP 地址,和 DNS 服务器地址,也就是 OK 啦!!

ifconfig 一下,可以看到如下的链接信息:

ppp0 Link encap:Point-to-Point Protocol
inet addr:172.20.197.35 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:20496 errors:0 dropped:0 overruns:0 frame:0
TX packets:18854 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:14708447 (14.0 Mb) TX bytes:2844560 (2.7 Mb)

这样就大功告成啦!

其他

最后也可以使用 qtwvdialer 这个图形界面工具来进行拨号,记得要使用 root 权限来运行。