admin管理员组

文章数量:1568308

2024年4月24日发(作者:)

linux(rhel,ubuntu)使用3G上网卡(华为EC156)无线上网

此页由Linux Wiki用户Chenxing于2010年8月2日 (星期一) 04:25的最后更改。

o8xv0123@整理,并根据国外网友jayadeep提供的方法,以华为EC156为例,提供了添加

/etc/usb_modswitch.d/目录下配置文件的方法。

出自Linux Wiki

虽然3G上网卡名目繁多,但因其原理大致相似(USB拨号设备),在Linux中使用并不困难。本文所介绍

的方法在“华为EC1261”和Archlinux上测试通过。

简介

通过3G上网卡无线上网,一般需要进行少许配置,对于某些型号的3G上网卡(如华为EC1260等),也

可在升级固件后直接使用固件中的Linux上网工具。下面分别介绍两种方案:

通用方法:自己配置

需要两大步骤:让系统识别3G上网设备为Modem、利用该设备拨号上网。

让Linux正确识别3G上网设备

多数3G上网卡内嵌了Windows驱动,首次插入Windows时先作为U盘安装驱动,驱动则会把自己“变

成”Modem。以后再插入时,之前安装的驱动会自动将其转换为USB Modem,以便拨号上网。

而Linux系统默认已经包含了多数3G上网卡的驱动,故只需设法让上网卡被识别为“Modem”,而非带

有Windows驱动的U盘。

幸运的是,usb_modeswitch可以方便地帮我们实现这一步骤,它存在于一些发行版(如Archlinux)

的软件仓库中,也可以从其网站上直接下载:

/usb_modeswitch/

对于多数型号的3G上网卡,安装后直接运行该程序即可:

# usb_modeswitch -W

程序运行成功的标志是在/dev中多出几个文件。

如:/dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2,此时第一步就完成了

~如果未成功,应做如下操作:

添加设备到usb_modeswitch

如果已经看到了/dev/ttyUSB0等文件,请略过此步。插上3G上网卡,使用lsusb工具:

# lsusb

在输出中找到3G上网卡对应的设备及ID号(如果看不出来,可将插与不插3G上网卡时lsusb的输出相

比对):

Bus 003 Device 018: ID 12d1:1446 Huawei Technologies Co., Ltd. E1552 (HSPA modem)

之前失败的原因,多半是/etc/usb_modeswitch.d中没有与绿色部分同名的文件,可以从相似的文件名

复制一个,将DefaultVendor和DefaultProduct改成上面冒号前后的内容。

添加文件的方法如下,以华为EC156为例:

# lsusb

查看结果可知华为EC156的usb设备号为12d1:1505 故创建相应用户名的文件

# cd /etc/usb_modswitch.d/

# vi 12d1:1505

添加如下内容并保存

DefaultVendor= 0x12d1

DefaultProduct=0x1505

MessageContent="55534243000000

0"

NeedResponse=1

CheckSuccess=10

然后执行

# usb_modeswitch -c /etc/usb_modeswitch.d/12d1:1505

再次lsusb将发现设备号已经发生了改变,此时系统需要一些时间对新设备进行识别。大概10秒钟之后,

在Networkmanager中可以发现新的连接,设置账号密码可以拨号,比如,上海电信的evdo账号和密码

都是card。

此部分内容原帖地址:

/?t=1814583

感谢作者jayadeep

注:电信evdo信号不稳定,有时候连接会断开,连接断开后,需要重新插拔上网卡,并重新识别硬件。

本文标签: 上网卡设备驱动