Debian下成功使用中兴3G无线网卡(ZTE AC2726)拔号上网

包含网卡/无线网的网络问题和ADSL/校园网/宽带拨号支持及代理/共享等网络使用问题
头像
buzhu2000
帖子: 17
注册时间: 2009-01-31 23:40

Debian下成功使用中兴3G无线网卡(ZTE AC2726)拔号上网

#1

帖子 buzhu2000 » 2009-05-09 23:45

五一在电信办了个3G上网业务(CDMA2000 EVDO RevA),1800包年,每月限时150小时,由于是在推广期间,给冲了2000元,另送一个中兴的无线网卡,型号是AC2726。桂林城市小,价格竟然还要贵些,好像北京160元能包300小时呢。

现在大多数高速无线上网卡都内置存储空间,用于存储驱动程序和拨号软件等。当首次将这种设备插入USB接口时,该设备被识别为CD-ROM,驱动程序和拨号软件就在其中。当安装完网卡的驱动程序后,再次将其插入时,则被识别为Modem等设备,我的这个网卡还可以插Micro-SD卡,同时作U盘用。以上这些好像称为ZeroCD技术。

很遗憾,内置的驱动和拨号软件都是for windows的。在Debian下插入网卡,只能被识别为CD-ROM,无法识别成Modem。usb-modeswitch是一个用来切换这种使用了 ZeroCD技术的无线网卡工作模式的程序(参考www.draisberghof.de/usb_modeswitch),让它能够在Linux下被识别成Modem。可是无论我怎么配置也无法让我的AC2726工作在Modem模式下,此时网卡的ID号是0x19d2:0xfff5,而它工作在 Modem模式下的ID号是0x19d2:0xfff1(在windows下的设备管理器里可察看)。网上切换成功的也都是中兴以MF开头的型号,AC2726是最近新出的,可能使用了某种新的手段吧,使得usb-modeswitch无法正确工作。

Google一番后,发现TuXHaT成功在Linux下使用中兴AC8710的无线网卡(参考www.tuxhat.com/linux /reliance-netconnect-broadband-on-linux/),AC8710被识别为CD-ROM时的ID号是 0x19d2:0xfff6, Modem时的ID号是0x19d2:0xfff1,跟我的差不多,我的应该也可以。在中兴网站下载了AC8700 Linux驱动的DEB包(www.ztemt.com.cn/ennewzte/service/ziliao.action)(中文页面并没有提供),安装时提示无法载入ztemt.ko模块,根据TuXHaT所说,该模块与Linux自带USB串口驱动usbserial.ko差不多,因此我直接使用了usbserial.ko,这样的话,只需将DEB包中的ztemtEVDO.sh,10- ztemtEVDO.rules,ztemtvcdromd分别copy到/lib/udev/,/etc/udev/rules/,/sbin下即可,DEB包中大部分是一个拨号程序。(PS:DEB包中包含ztemt.ko模块的源代码,也可以自己重新编译,这样可能会避免因速度限制需重新编译 usbserial.ko模块这一步,请读到这篇文章的朋友一试)。以root身份运行ztemtvcdromd,然后插入网卡,这时网卡已被正确的识别为Modem,ID号显示的是0x19d2:0xfff1(lsusb可察看) ,再modprobe usbserial vendor=0x19d2 product=0xfff1,dmesg信息:
[ 492.101466] usbserial_generic 4-1:1.0: generic converter detected
[ 492.101554] usb 4-1: generic converter now attached to ttyUSB0
[ 492.104567] usbserial_generic 4-1:1.1: generic converter detected
[ 492.104626] usb 4-1: generic converter now attached to ttyUSB1
[ 492.106513] usbserial_generic 4-1:1.2: generic converter detected
[ 492.106574] usb 4-1: generic converter now attached to ttyUSB2
[ 492.108543] usbserial_generic 4-1:1.3: generic converter detected
[ 492.108608] usb 4-1: generic converter now attached to ttyUSB3
[ 492.110521] usbserial_generic 4-1:1.4: generic converter detected
[ 492.110583] usb 4-1: generic converter now attached to ttyUSB4
[ 492.112530] usbserial_generic 4-1:1.5: generic converter detected
[ 492.112594] usb 4-1: generic converter now attached to ttyUSB5
[ 492.112778] usb 4-1: New USB device found, idVendor=19d2, idProduct=fff1
[ 492.112782] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 492.112786] usb 4-1: Product: ZTE CDMA Tech
[ 492.112789] usb 4-1: Manufacturer: ZTE, Incorporated
Modem对应的设备为/dev/ttyUSB0。接下来就可以使用wvdial拔号了,下面是我的wvdial.conf:
[Modem0]
Modem=/dev/ttyUSB0
Baud=921600
SetVolume=0
Dial Command=ATDT
Init1=ATZ
FlowControl=Hardware(CRTS CTS)
[Dialer 3g]
Username=ctnet@mycdma.cn
Password=vnet.mobi
Phone=#777
Stupid Mode=1
Inherits=Modem0

执行wvdial 3g,这时已可成功拔号上网了,但是在上网的过程中,会出现速度无法超过62KB的问题,又Google一番后,原来使用的usbserial是针对低速的设备设计的,使用的缓冲区很小,并没考虑现在这种高速上网设备,因此造成网速有限制。可以通过修改usbserial的源代码,使其具有大小可变的缓冲区(参考www.evdoforums.com/thread4381.html),其步骤如下:
1、下载安装内核源码。

2、copy当前内核配置文件至内核源代码目录下,
cp /boot/config-$(uname -r) /usr/src/linux-2.6.28/.config

3、cd到内核源码目录,为编译模块创建配置文件。
cd /usr/src/linux-source-2.6.24/ && make menuconfig

4、创建一个usbserial.c的补丁文件/root/usbserial.c.patch,内容如下:

--- linuxold/drivers/usb/serial/usb-serial.c 2006-12-31 17:40:28.000000000 -0600
+++ linux/drivers/usb/serial/usb-serial.c 2009-05-02 23:55:08.000000000 -0600
@@ -58,4 +58,5 @@
*/
+static ushort maxRSize, maxWSize, maxISize;
static int debug;
static struct usb_serial *serial_table[SERIAL_TTY_MINORS]; /* initially all NULL */
@@ -817,4 +818,6 @@
}
buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
+ if (buffer_size < maxRSize)
+ buffer_size = maxRSize;
port->bulk_in_size = buffer_size;
port->bulk_in_endpointAddress = endpoint->bEndpointAddress;
@@ -841,4 +844,6 @@
}
buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
+ if (buffer_size < maxWSize)
+ buffer_size = maxWSize;
port->bulk_out_size = buffer_size;
port->bulk_out_endpointAddress = endpoint->bEndpointAddress;
@@ -866,4 +871,6 @@
}
buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
+ if (buffer_size < maxISize)
+ buffer_size = maxISize;
port->interrupt_in_endpointAddress = endpoint->bEndpointAddress;
port->interrupt_in_buffer = kmalloc (buffer_size, GFP_KERNEL);
@@ -1191,2 +1198,8 @@
module_param(debug, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(debug, "Debug enabled or not");
+module_param(maxRSize, ushort, 0);
+MODULE_PARM_DESC(maxRSize, "User specified USB input buffer size");
+module_param(maxWSize, ushort, 0);
+MODULE_PARM_DESC(maxWSize, "User specified USB output buffer size");
+module_param(maxISize, ushort, 0);
+MODULE_PARM_DESC(maxISize, "User specified USB interrupt buffer size");

4、对内核源码中的usbserial.c应用补丁文件
cd /usr/src/linux-2.6.28 && patch -Np0 -i /root/usbserial.c.patch
如果未能运行成功,也可以手工对usbserial.c进行修改,只要把以上标有“+”的行加入usbserial.c中相应位置即可。

5、编译修改后的模块(这里实际上编译了所有的USB串口模块,但至少比编译整个内核快得多)
make -C /lib/modules/$(uname -r)/build M=/usr/src/linux-2.6.28/drivers/usb/serial

6、备份当前使用的usbserial.ko,然后将上步生成的usbserial.ko copy到/lib/modules/kernel/drivers/usb/serial/

7、卸载掉旧的usbserial(rmmod usbserial),然后载入新的usbserial,现在我们可以分别指定usbserial使用的接收与发送缓冲区的大小了,modprobe usbserial vendor=0x19d2 product=0xfff1 maxRSize=4096 maxWSize=1024

重新拨号上网,网速已和在windows下没有什么区别了,至此,AC2726已经能够很正常地运行在我的Debian下了。(PS:可以把 ztemtvcdromd和modprobe usbserial vendor=0x19d2 product=0xfff1 maxRSize=4096 maxWSize=1024这两个命令加入到/etc/init.d/rc.local,免得每次都要手工输入)。

我现在使用KPPP拨号,方便计时。EVDO的速度还不错,峰值飙到过300多,平常也能经常上到一两百K,帖一张截图吧。
附件
3.png
上次由 buzhu2000 在 2009-05-15 22:06,总共编辑 1 次。
Acer 4930
Intel Core 2 Duo T5800
160GB Hitachi HTS54321 SATA/DVD-Super Multi
1GB x 2 RAM (DDR II 667)
14.1-inch WXGA 1280X800
nVIDIA Geforce 9300M GS(256M)
RTL8111 Gigabit Ethernet,Intel WIFI-Link 5100AGN
Mint Debian Edition
roadd
帖子: 53
注册时间: 2009-04-26 0:36

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#2

帖子 roadd » 2009-05-10 8:12

很重要的经验。不知能否用在中兴的mu350上,这是个TD上网卡。
头像
buzhu2000
帖子: 17
注册时间: 2009-01-31 23:40

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#3

帖子 buzhu2000 » 2009-05-10 9:58

MU350也是这种内置驱动的设备,因此关键是要让网卡被识别为Modem,若能认识,再dmesg看看有没有生成/dev/ttyUSB0之类的设备,若有的话,配置好拔号软件应该就可以了,使用wvdial的话应该修改下Baud、Username、Password、Phone这几个参数,这可以在windows下找到的。
Acer 4930
Intel Core 2 Duo T5800
160GB Hitachi HTS54321 SATA/DVD-Super Multi
1GB x 2 RAM (DDR II 667)
14.1-inch WXGA 1280X800
nVIDIA Geforce 9300M GS(256M)
RTL8111 Gigabit Ethernet,Intel WIFI-Link 5100AGN
Mint Debian Edition
roadd
帖子: 53
注册时间: 2009-04-26 0:36

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#4

帖子 roadd » 2009-05-10 17:59

我的mu350按照这个帖子
viewtopic.php?f=116&t=161759&start=15
里所说安装usb-modeswitch和 vodafone-mobile-connect后,已经能识别出/dev/ttyUSB0了。在那个帖子的16楼还有我附上的结果。这里再摘抄一下今天的结果:
lsusb的:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 15ca:00c3 Textech International Ltd. Mini Optical Mouse
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 19d2:0003
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
看里面的Bus 002 Device 003: ID 19d2:0003后面为空,是不是没识别到modem?
在看dmesg结果:
[ 8.365430] usb-storage: device scan complete
[ 8.368408] scsi 2:0:0:0: CD-ROM ZTE Corp CD-ROM 0.01 PQ: 0 ANSI: 0
[ 8.407378] sr1: scsi3-mmc drive: 76x/144x writer dvd-ram cartridge changer
[ 8.417510] sr 2:0:0:0: Attached scsi CD-ROM sr1
[ 8.417595] sr 2:0:0:0: Attached scsi generic sg2 type 5
[ 8.920130] udev: starting version 141
[ 9.201512] usbcore: registered new interface driver hiddev
看样子认出他是个CDROM了。看接下来的:
[ 11.200831] usb 2-2: configuration #1 chosen from 1 choice
[ 11.276686] usbcore: registered new interface driver usbserial
[ 11.276703] USB Serial support registered for generic
[ 11.276750] usbcore: registered new interface driver usbserial_generic
[ 11.276753] usbserial: USB Serial Driver core
[ 11.321191] USB Serial support registered for GSM modem (1-port)
[ 11.321246] option 2-2:1.0: GSM modem (1-port) converter detected
[ 11.321351] usb 2-2: GSM modem (1-port) converter now attached to ttyUSB0
[ 11.321371] option 2-2:1.1: GSM modem (1-port) converter detected
[ 11.321419] usb 2-2: GSM modem (1-port) converter now attached to ttyUSB1
[ 11.321437] option 2-2:1.2: GSM modem (1-port) converter detected
[ 11.321486] usb 2-2: GSM modem (1-port) converter now attached to ttyUSB2
[ 11.321511] option 2-2:1.3: GSM modem (1-port) converter detected
[ 11.321564] usb 2-2: GSM modem (1-port) converter now attached to ttyUSB3
[ 11.321585] usbcore: registered new interface driver option
[ 11.321587] option: v0.7.2:USB Driver for GSM modems
出现/dev/ttyUSB0直到ttyUSB3了。但接下来没有出现类似你的
[ 492.112778] usb 4-1: New USB device found, idVendor=19d2, idProduct=fff1
[ 492.112782] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 492.112786] usb 4-1: Product: ZTE CDMA Tech
[ 492.112789] usb 4-1: Manufacturer: ZTE, Incorporated
这样的结果。
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.
ttyUSB0<*1>: ATQ0 V1 E1 -- +CME ERROR: 100
ttyUSB0<*1>: failed with 2400 baud, next try: 9600 baud
ttyUSB0<*1>: ATQ0 V1 E1 -- +CME ERROR: 100
ttyUSB0<*1>: failed with 9600 baud, next try: 9600 baud
ttyUSB0<*1>: ATQ0 V1 E1 -- +CME ERROR: 100
ttyUSB0<*1>: and failed too at 115200, giving up.
WvModem<*1>: Cannot get information for serial port.
ttyUSB1<*1>: ATQ0 V1 E1 -- +CME ERROR: 100
ttyUSB1<*1>: failed with 2400 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- +CME ERROR: 100
ttyUSB1<*1>: failed with 9600 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- +CME ERROR: 100
ttyUSB1<*1>: and failed too at 115200, giving up.
WvModem<*1>: Cannot get information for serial port.
ttyUSB2<*1>: ATQ0 V1 E1 -- +CME ERROR: 100
ttyUSB2<*1>: failed with 2400 baud, next try: 9600 baud
ttyUSB2<*1>: ATQ0 V1 E1 -- +CME ERROR: 100
ttyUSB2<*1>: failed with 9600 baud, next try: 9600 baud
ttyUSB2<*1>: ATQ0 V1 E1 -- +CME ERROR: 100
ttyUSB2<*1>: and failed too at 115200, giving up.
WvModem<*1>: Cannot get information for serial port.
ttyUSB3<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyUSB3<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 9600 baud
ttyUSB3<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.


Sorry, no modem was detected! Is it in use by another program?
Did you configure it properly with setserial?

Please read the FAQ at http://open.nit.ca/wiki/?WvDial

If you still have problems, send mail to <wvdial-list@lists.nit.ca>.

一片错误。
我使用的是Ubuntu9.04,装上usb-modeswitch和 vodafone-mobile-connect后网络托管程序network manager自动跳出来让我进行移动宽带的设置,设置完后点network manager的图标,也确实出现了ZTE TD-SCDMA MODEM的选项,不过有相同的三个啊。随便点击一个试试,连半天连不上,最后显示GSM网络已断开。它能认出是GSM网络。才接触Linux Ubuntu,接下来不知该怎么办了。
我疑惑是不是对于咱们国家的移动的TD网络,有比较特殊的拨号?看到网上的3G拨号文章,基本都是针对电信的。下面贴上mu350自带拨号软件在win下的拨号配置图:
mu350拨号配置.JPG
但愿有希望解决。
头像
buzhu2000
帖子: 17
注册时间: 2009-01-31 23:40

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#5

帖子 buzhu2000 » 2009-05-10 23:05

把你的/etc/wvdial.conf贴出来看看。
Acer 4930
Intel Core 2 Duo T5800
160GB Hitachi HTS54321 SATA/DVD-Super Multi
1GB x 2 RAM (DDR II 667)
14.1-inch WXGA 1280X800
nVIDIA Geforce 9300M GS(256M)
RTL8111 Gigabit Ethernet,Intel WIFI-Link 5100AGN
Mint Debian Edition
头像
sxdhaoren
帖子: 852
注册时间: 2008-10-01 0:20
系统: ubuntu kylin16.04.3

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#6

帖子 sxdhaoren » 2009-05-10 23:15

感受到了debian和ubuntu的亲属关系,楼主的技术估计我十年后达到,仰慕中
自由软件爱好者
roadd
帖子: 53
注册时间: 2009-04-26 0:36

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#7

帖子 roadd » 2009-05-11 6:44

buzhu2000 写了:把你的/etc/wvdial.conf贴出来看看。
我填过好多次,都不成功,现在换回默认的的空白了。
[Dialer Defaults]
Phone =
Username =
Password =
New PPPD = yes

从mu350在win下的管理程序看Phone应该是拨号号码,移动3G的拨号号码为*98*1#,用户名和密码为空(?)!不知有没有如电信一样
Username=ctnet@mycdma.cn
Password=vnet.mobi
的有隐藏的拨号和密码。听说在中国移动EDGE 下是
Phone =*99***1#
Username = wap
Password = *
我填了,可惜总是让我等待,没有真正拨通。不知中国移动的3G如何填写。
头像
buzhu2000
帖子: 17
注册时间: 2009-01-31 23:40

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#8

帖子 buzhu2000 » 2009-05-11 9:20

这个贴子用的就是TD,可以看一下,http://bbs.fedora-zh.org/showthread.php?t=1321
[Dialer Defaults]
Init1 = ATZ
Init3 = ATE0V1
Init5 = ATS0=0
Init6 = AT+CFUN=1
Modem Type = USB Modem
Baud = 460800
New PPPD = yes
Modem = /dev/ttyUSB0
ISDN = 0
Phone = *99***1#
Password = any
Username = any
Acer 4930
Intel Core 2 Duo T5800
160GB Hitachi HTS54321 SATA/DVD-Super Multi
1GB x 2 RAM (DDR II 667)
14.1-inch WXGA 1280X800
nVIDIA Geforce 9300M GS(256M)
RTL8111 Gigabit Ethernet,Intel WIFI-Link 5100AGN
Mint Debian Edition
roadd
帖子: 53
注册时间: 2009-04-26 0:36

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#9

帖子 roadd » 2009-05-11 11:23

兄弟,啥也别说了,眼泪哗哗的……激动啊!
测试完全成功!终于可以上了。
不过我测试过后,稍稍改动,我重点改的是
Modem = /dev/ttyUSB1
照抄/dev/ttyUSB0也能拨通,但速度最多十几KB,我想这应该是GSM/EDGE的接口,而换作USB1后,速度飙升到我这里的极限值六十多KB,跟win下面完全一样了,证明这是TDSCDMA的端口。
而且我发现Linux下拨号比win快。下面贴出我的/etc/wvdial.conf
[Dialer Defaults]
Init1 = ATZ
Init3 = ATE0V1
Init5 = ATS0=0
Init6 = AT+CFUN=1
Modem Type = USB Modem
Baud = 460800
New PPPD = yes
Modem = /dev/ttyUSB1
ISDN = 0
Phone = *99***1#
Password = any
Username = any
Stupid Mode = 1

拨号号码*99***1#改作*98*1#也行,也能拨。
再次感谢!终于可以全力倒向Linux了。
习惯了浅笑
帖子: 9
注册时间: 2009-05-09 16:04

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#10

帖子 习惯了浅笑 » 2009-05-12 0:53

终于找到这样的帖子了,太感谢了 我的是AC560 让我看看能不能连网
头像
赵炳理
帖子: 39
注册时间: 2009-04-04 23:03

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#11

帖子 赵炳理 » 2009-05-12 10:19

啥也不说了 , 救星!!!
头像
赵炳理
帖子: 39
注册时间: 2009-04-04 23:03

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#12

帖子 赵炳理 » 2009-05-15 16:04

以root身份运行ztemtvcdromd,然后插入网卡,这时网卡已被正确的识别为Modem,ID号显示的是 0x19d2:0xfff1(lsusb可察看) ,再modprobe usbserial vendor=0x19d2 product=0xfff1,dmesg信息:

请问如何“以root身份运行ztemtvcdromd“新手不明白
头像
buzhu2000
帖子: 17
注册时间: 2009-01-31 23:40

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#13

帖子 buzhu2000 » 2009-05-15 20:27

sudo ztemtvcdromd 即可。
Acer 4930
Intel Core 2 Duo T5800
160GB Hitachi HTS54321 SATA/DVD-Super Multi
1GB x 2 RAM (DDR II 667)
14.1-inch WXGA 1280X800
nVIDIA Geforce 9300M GS(256M)
RTL8111 Gigabit Ethernet,Intel WIFI-Link 5100AGN
Mint Debian Edition
头像
赵炳理
帖子: 39
注册时间: 2009-04-04 23:03

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#14

帖子 赵炳理 » 2009-05-15 21:14

:em20 我先是在中兴网站下载了AC8700 Linux驱动的DEB包,然后将DEB包中的ztemtEVDO.sh,10- ztemtEVDO.rules,ztemtvcdromd分别copy到/lib/udev/,/etc/udev/rules/,/sbin下
然后#cd /sbin
接着#sudo ztemtvcdromd
之后我把我的ac2627插上了,结果,电脑一点反应没有,一看计算机,我的无线上网卡还是被识别为
usb驱动器,之前就是被这样识别的
不知道我上面哪些地方做得不对
头像
赵炳理
帖子: 39
注册时间: 2009-04-04 23:03

Re: Debian下成功使用中兴3G无线网卡(ZTE AC2627)拔号上网

#15

帖子 赵炳理 » 2009-05-15 21:20

buzhu2000, 真希望你能给我细细地讲一讲怎么用3G上网,我是个超级新手
回复