感谢支持
我们一直在努力

Linux环境使用中移动TD上网卡实录

[背景] 


上周三,高升桥有个会。到了会议室,赶紧拿出本本,想看看LINUX环境能否通过信息中心的无线上网安全认证,几经周折,CMCC的网络能连接上,网关也能ping通,但就TM不能打开网页。后来想想这种方式不用试也知道肯定是行不通的,因为信息中心早就要求过,要登录公司网络,必须安装安全认证终端软件。问题是这个软件只有WINDOWS版本,并无LINUX版本。其实,也有一个解决方案——WINEWINE全称叫Wine Is Not an Emulator,呵呵,又一个GNUGNU’s Not Unix)风格的命名,典型的程序员玩笑。我这个人有点偏执,一直认为在LINUX环境下装个转换层来运行WIN程序是种不伦不类的行为,宁愿不用这个程序。没辙,这条路走不同,想其他方法。


09年夏,公司为增强员工移动办公效率(也可以视为福利啦),同时也是为测试TD网络,特为每人配备了一个G3上网卡。当时有两类品牌,华为和中兴,我选的是华为的,毕竟是国际大牌子,哈哈。以前在WINDOWS环境下用过几次,感觉效果还不错,下载电影一般能达到130KBS左右的速度(没买的赶快弄一个,@_@),后来转到LINUX环境,由于没有对应驱动,家里有宽带、单位又有台式机,也就没花时间去研究G3上网卡如何在LINUX中使用。嘿,这次找到使用场景了,想法在LINUX下驱动G3上网卡,以后开会就不会再回到没有网络的原始社会啦~~~


[环境]


笔记本:     THINKPAD T410I


操作系统:  openSUSE 11.3


内核:        2.6.34.7


G3上网卡: HUAWEI G3 ET 18,型号好像是这个,背面磨花了)


应用程序:  usb_modeswitchwvdial


 


[原理]


 


非常简单,先识别设备,再拨号联网,搞定。想急着操作的童鞋直接调到下节,要了解细节的朋友继续哈。


1.      系统识别G3上网卡。HUAWEI G3上网卡官方只发布过WIN下的驱动,并未见LINUX下的,如何让LINUX识别它?告诉你,其实你电脑里早就安装好它的驱动程序,只是你不知道罢了。不信,试试,先插好上网卡,执行lsusb | grep “Huawei”,系统提示Bus 002 Device 003: ID 12d1:1da1 Huawei Technologies Co., Ltd.信息则说明驱动程序已经安装好了。我明明没下载LINUX下的驱动程序,更没点击安装,怎么会自动就有了呢?这个还得说说LINUXWINDOWS对驱动程序的不同管理方式,简单地说,LINUX将世面常见设备驱动程序都包含在内核中,无须单独下载,WIN则需要到设备官网单独下载安装,至于为何LINUX要采用这种方式则不在本文探讨范围内。那系统既然已经识别到上网卡,是否可以立即使用?不行!LINUX虽识别到它,但默认是把他视为一个USB的存储设备,你必须想法告诉系统,这个东东不是简单的U盘,而是个具备拨号功能的MODEN,如何告诉,哒哒哒哒哒哒~~,上面让你准备的usb_modeswitch派上用场了,从这个程序名可以看出来,它能实现USB设备模式切换的功能;


2.      G3上网卡拨号上网。好了,现在系统正确识别到你的G3上网卡,执行拨号命令即可大功告成,wvdial,简单应用的拨号程序。


 


[操作]


 


1.      获取G3上网卡USB信息。执行


lsusb | grep “Huawei”


系统显示类似如下


Bus 002 Device 003: ID 12d1:1da1 Huawei Technologies Co., Ltd.


记录下你对应12d1:1da1位置的信息;


2.      G3上网卡从U盘模式转换为MODEN模式。


1)       指定要进行模式转换的设备。用如下信息替换/etc/usb_modeswitch.conf内容


DefaultVendor=0x12d1


DefaultProduct=0x1da1


TargetVendor=0x12d1


TargetProduct=0x1da1


HuaweiMode=1


2)       进行模式转换。执行


usb_modeswitch -c /etc/usb_modeswitch.conf


显示如下信息


Looking for target devices …


 Found devices in target mode or class (1)


Looking for default devices …


 Found devices in default mode or class (1)


Accessing device 012 on bus 001 …


Using endpoints 0x05 (out) and 0x85 (in)


Inquiring device details; driver will be detached …


Looking for active driver …


 OK, driver found (“dummy”)


 OK, driver “dummy” detached


 


SCSI inquiry data (for identification)


————————-


  Vendor String: HUAWEI


   Model String: Mobile CMCC CD


Revision String: 1.25


————————-


 


USB description data (for identification)


————————-


Manufacturer: HUAWEI Mobile


     Product: HUAWEI Mobile System Solution


  Serial No.: 111111-11-111111


————————-


Sending Huawei control message …


 OK, Huawei control message sent


-> Run lsusb to note any changes. Bye.


注:这一步可能命令执行过程可能僵死,重新插拔试下


3)       转换完成。执行第一步命令显示如下信息


Bus 002 Device 009: ID 12d1:1d09 Huawei Technologies Co., Ltd.


如果先前的1da1变为 1d09那么恭喜你,最重要一步已经成功了;


4)       确认是否生成对应设备。执行


ls /dev/ttyA*


输出


ttyACM0  ttyACM1  ttyACM2


3.      MODEN拨号上网。


1)       生成G3上网卡拨号配置文件。执行


wvdialconf


输出
Editing `/etc/wvdial.conf’.

Scanning your serial ports for a modem.

Modem Port Scan<*1>: S0 S1 S2 S3
WvModem<*1>: Cannot get information for serial port.
ttyACM0<*1>: ATQ0 V1 E1 — OK
ttyACM0<*1>: ATQ0 V1 E1 Z — OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 — OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 — OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 — OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
ttyACM0<*1>: Modem Identifier: ATI — Manufacturer: HuaWei
ttyACM0<*1>: Speed 4800: AT — OK
ttyACM0<*1>: Speed 9600: AT — OK
ttyACM0<*1>: Speed 19200: AT — OK
ttyACM0<*1>: Speed 38400: AT — OK
ttyACM0<*1>: Speed 57600: AT — OK
ttyACM0<*1>: Speed 115200: AT — OK
ttyACM0<*1>: Speed 230400: AT — OK
ttyACM0<*1>: Speed 460800: AT — OK
ttyACM0<*1>: Max speed is 460800; that should be safe.
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
WvModem<*1>: Cannot get information for serial port.
ttyACM1<*1>: ATQ0 V1 E1 — OK
ttyACM1<*1>: ATQ0 V1 E1 Z — OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 — OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 — OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 — OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
ttyACM1<*1>: Modem Identifier: ATI — Manufacturer: HuaWei
ttyACM1<*1>: Speed 4800: AT — OK
ttyACM1<*1>: Speed 9600: AT — OK
ttyACM1<*1>: Speed 19200: AT — OK
ttyACM1<*1>: Speed 38400: AT — OK
ttyACM1<*1>: Speed 57600: AT — OK
ttyACM1<*1>: Speed 115200: AT — OK
ttyACM1<*1>: Speed 230400: AT — OK
ttyACM1<*1>: Speed 460800: AT — OK
ttyACM1<*1>: Max speed is 460800; that should be safe.
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
WvModem<*1>: Cannot get information for serial port.
ttyACM2<*1>: ATQ0 V1 E1 — OK
ttyACM2<*1>: ATQ0 V1 E1 Z — OK
ttyACM2<*1>: ATQ0 V1 E1 S0=0 — OK
ttyACM2<*1>: ATQ0 V1 E1 S0=0 &C1 — OK
ttyACM2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 — OK
ttyACM2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
ttyACM2<*1>: Modem Identifier: ATI — Manufacturer: HuaWei
ttyACM2<*1>: Speed 4800: AT — OK
ttyACM2<*1>: Speed 9600: AT — OK
ttyACM2<*1>: Speed 19200: AT — OK
ttyACM2<*1>: Speed 38400: AT — OK
ttyACM2<*1>: Speed 57600: AT — OK
ttyACM2<*1>: Speed 115200: AT — OK
ttyACM2<*1>: Speed 230400: AT — OK
ttyACM2<*1>: Speed 460800: AT — OK
ttyACM2<*1>: Max speed is 460800; that should be safe.
ttyACM2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK

Found an USB modem _disibledevent=0 &C1 &D2 +FCLASS=0″
ttyACM1<Info>: Speed 460800; init “ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0”
ttyACM2<Info>: Speed 460800; init “ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0”


2)       修改拨号配置文件。将/etc/wvdial.conf文件内容替换为


[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Password = any
Phone = *99***1#
Modem Type = USB Modem
Stupid Mode = 1
Baud = 460800
New PPPD = yes
Modem = /dev/ttyACM0
ISDN = 0
username = any


3)       拨号。执行


wvdial


输出


–> WvDial: Internet dialer version 1.60
–> Cannot get information for serial port.
–> 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.
–> Sending: ATDT*99***1#
–> Waiting for carrier.
ATDT*99***1#
CONNECT 2800000
–> Carrier detected. Starting PPP immediately.
–> Starting pppd at Mon Jun 22 11:11:50 2009
–> Pid of pppd: 4134
–> Using interface ppp0
–> local IP address 10.140.162.111
–> remote IP address 192.200.1.21
–> primary DNS address 221.130.33.60
–> secondary DNS address 221.130.33.52


–> Connected… Press Ctrl-C to disconnect


注:拨号前,必须先关闭系统自带的网络管理程序。在openSUSE中,你可以这样:Yast中,Network Devices –> Network Settings –> Globa Options –> Network Setup Methods –> Traditional method with ifup (instead of Network Manager)


 


好了,享受中移动TD高速上网的乐趣吧~~~

赞(1) 打赏
转载请注明出处:服务器评测 » Linux环境使用中移动TD上网卡实录
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏