全部博文(403)
分类: 系统运维
2007-04-23 10:11:19
搞定gentoo linux下cdma 1x无线上网!
by: emerge[at]linuxsir.org, emerge[at]kyxk.net
花了几天时间在网上查询,搞定了北京地区gentoo linux下面的cdma1x RTT无限网卡上网。别的地区和linux版本不敢保证我的方法完全生效,不过应该大同小异吧!
目录[] |
先提供几篇参考文献,愿意看英文资料的话,还是看看,这些都是很好的指导!有其它好文章,请大家补充!
各种成熟的商业硬件大都会有牛人写好内核驱动,我这样水平低的所要做的应该就只是合理配置好所需的各个部分。无限网卡这种从国外引进的业务,linux当然早就可以支持了!不过cdma1x RTT这种网络国外还有没有是个疑问!因为我找到的文章都是两年前写cdma 1xEV-DO网络的,这种网络据说有500KByte/s以上的带宽,在去年南京十运会上联通临时搭建给记者们用,据说可以在线看现场直播的比赛!埃!罗嗦两句。
先说一下,我这次只试了两种usb接口的网卡,因为我还需要用台式机上网。但是pcmcia接口的网卡都是被模拟成serial usb接口。所以pcmcia网卡的关键也是usbserial模块要加载成功。
到了村里,我找到一家先试了一种杂牌usb网卡,就是很多商家说插到苹果机上,不用装驱动就可以直接用的那一种。试了一下就可以上网了,这种网卡只是把设备认成/dev/ttyACM0,其它配置都和我下面试的华为EC325一样。只是,我觉得质量不太好,发热大,卖400,如果卖100多,我就要了。
后来我考虑到保修,质量,散热等原因选择了华为ec325,但是这种贵,而且绝对不是只有这种可用,其它很多网卡应该都可以。所以大家各取所需。
代码: 我把ec325插入usb口。然后在终端输入: |
$cat /proc/bus/usb/devices |
输出中有:
... T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 3 Spd=12 MxCh= 0 D: Ver= 1.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=16 #Cfgs= 1 P: Vendor=12d1 ProdID=1001 Rev= 0.00 S: Manufacturer=Huawei Technologies S: Product=Huawei Mobile S: SerialNumber=HUAWEI EC3X1 C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms E: Ad=8a(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=0b(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms ...
找到“P: Vendor=12d1 ProdID=1001 Rev= 0.00”这一行。找出vendor和product这两项,
代码: 进入root下,然后在终端输入: |
#modprobe usbserial vendor=0x12d1 product=0x1001 |
如果出错一定是前面的usbserial模块没有选全。
代码: 上一步如果没有错,在终端输入: |
$dmesg |
输出的最后有:
... usbserial_generic 1-2:1.0: generic converter detected usb 1-2: generic converter now attached to ttyUSB0 usbserial_generic 1-2:1.1: generic converter detected usb 1-2: generic converter now attached to ttyUSB1
我第一次试的那网卡是认出的/dev/ttyACM0,只需要在最后拨号的时候把设备写/dev/ttyACM0就行。
代码: 如果没有认出这个/dev/ttyUSB0,不要急。root下输入: |
#mknod /dev/ttyUSB0 c 188 0 #mknod /dev/ttyUSB1 c 188 1 |
再看dmesg就可以,设备对应节点号见/usr/src/linux/Documentation/devices.txt。ACM设备是166
接下来的拨号,在参考文献中大家都是写pppd配置文件,网上有前辈用wvdial,写了一个cdma拨号配置文件,很好用。我直接copy用了,一下就连上了,见参考文章4。最近发现ubuntu很好用,前面的步骤都可以省去,直接插上网卡安装如下方法拨号就是了!
代码: 在gentoo linux下是创建/etc/wvdial.conf文件,如下: |
[Modem0] Modem = /dev/ttyUSB0 Baud = 115200 SetVolume = 0 Dial Command = ATDT Init1 = ATZ FlowControl = Hardware (CRTSCTS) [Dialer cdma] Username = CARD Password = CARD Phone = #777 Stupid Mode = 1 Inherits = Modem0 |
拨号器Dialer名叫cdma,或者自己喜欢的名字。具体配置可以man wvdial.conf,自己看看。
代码: 在root下,执行 |
#wvdial cdma |
输出:
--> WvDial: Internet dialer version 1.54.0 --> Initializing modem. --> Sending: ATZ ATZ OK --> Modem initialized. --> Sending: ATDT#777 --> Waiting for carrier. ATDT#777 CONNECT 115200 --> Carrier detected. Starting PPP immediately. --> Starting pppd at Sun Apr 2 21:09:48 2006 --> pid of pppd: 5620 --> Using interface ppp0 --> local IP address 220.207.2.37 --> remote IP address 220.192.0.9 --> primary DNS address 220.192.0.130 --> secondary DNS address 220.192.8.58
打开firefox就可以上网了。这里如果前面编译内核里ppp的时候没有加上serial tty。还是会不成功,请注意!
关于hotplug自动加载模块,拨号的方法见参考文章3,我还没有搞这个。
代码: 我现在就是在普通用户下用 |
$sudo wvdial cdma |