TIP CDMA Wireless Card
出自Gentoo Linux Wiki
搞定gentoo linux下cdma 1x无线上网!
by: emerge[at]linuxsir.org, emerge[at]kyxk.net
花了几天时间在网上查询,搞定了北京地区gentoo linux下面的cdma1x RTT无线网卡上网。别的地区和linux版本不敢保证我的方法完全生效,不过应该大同小异吧!
目录 |
[编辑] 参考资料
先提供几篇参考文献,愿意看英文资料的话,还是看看,这些都是很好的指导!有其它好文章,请大家补充!
- 来自gentoo论坛,这篇比较全,而且讲得比较清楚,用gentoo的同志可以在gentoo论坛上找到几乎所有问题的答案,这话确实没错![1]
- 这是著名的Phil Karn针对采用高通公司MSM5500的Airprime网卡写得一篇文章,非常经典,但是可能有的地方不是很全!Phil Karn的主页[2]
- 这应该是新西兰的一哥们,文章里面说了hotplug自动加载模块,拨号。不错。[3]
- 这你linuxsir上面一篇说到wvdial的文章,我觉得ppp拨号自己配置太麻烦,用这个wvdial挺好的![4]
[编辑] 具体步骤
各种成熟的商业硬件大都会有牛人写好内核驱动,我这样水平低的所要做的应该就只是合理配置好所需的各个部分。无限网卡这种从国外引进的业务,linux当然早就可以支持了!不过cdma1x RTT这种网络国外还有没有是个疑问!因为我找到的文章都是两年前写cdma 1xEV-DO网络的,这种网络据说有500KByte/s以上的带宽,在去年南京十运会上联通临时搭建给记者们用,据说可以在线看现场直播的比赛!埃!罗嗦两句。
[编辑] 1)首先要把内核和各种软件装好!再去中关村找一家商家拿着网卡试。
- kernel:我下了一个2.6.15的内核重新编译了,不过相信2.4以上的就可以了。下面几项一定要加上:
- usb ohci
- ppp (这个一定好要加上serial tty的支持,别忘了)
- pcmcia and cardbus support
- Usb Modem (USB_ACM) 这个也许没用,但还是加上保险,有的网卡是这种。免得到村里白跑一趟。
- USB Serial Converter support (USB_SERIAL) 这个要编译成模块,后面再加载!
- USB Generic Serial Driver (USB_SERIAL_GENERIC) 这两项不知道是不是都要,但是对于华为EC325来说,这两项都是必备的,否则在下面加载usbserial的时候会出现报错。总之一定要有usbserial的支持。(以上各项在内核里面的具体位置就不罗嗦了,关于编译内核方法网上的参考文章很多。)
- software: 还要装下面这些包。括号里面是gentoo里面包的位置。
- ppp (net-dialup/ppp)
- pcmcia-cs (sys-apps/pcmcia-cs)
- wvdial (net-dialup/wvdial)
[编辑] 2)加载模块
先说一下,我这次只试了两种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
[编辑] 3)拨号,上网
接下来的拨号,在参考文献中大家都是写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 |
随便说一句,我的资费选的是6个月包月上网,中关村一般现在都是卖500吧!不过注意开卡时间,不要买到上个月开通的,
