Chinaunix首页 | 论坛 | 博客
  • 博客访问: 444404
  • 博文数量: 403
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -70
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-05 12:45
文章分类

全部博文(403)

文章存档

2014年(3)

2013年(1)

2012年(3)

2011年(21)

2010年(13)

2009年(64)

2008年(9)

2007年(36)

2006年(253)

分类: 系统运维

2007-04-23 10:11:19

TIP CDMA Wireless Card

From Gentoo Linux Wiki

Jump to: ,

搞定gentoo linux下cdma 1x无线上网!

             by:  emerge[at]linuxsir.org, emerge[at]kyxk.net

花了几天时间在网上查询,搞定了北京地区gentoo linux下面的cdma1x RTT无限网卡上网。别的地区和linux版本不敢保证我的方法完全生效,不过应该大同小异吧!

目录

[]

参考资料

先提供几篇参考文献,愿意看英文资料的话,还是看看,这些都是很好的指导!有其它好文章,请大家补充!

  1. 来自gentoo论坛,这篇比较全,而且讲得比较清楚,用gentoo的同志可以在gentoo论坛上找到几乎所有问题的答案,这话确实没错!
  2. 这是著名的Phil Karn针对采用高通公司MSM5500的Airprime网卡写得一篇文章,非常经典,但是可能有的地方不是很全!
  3. 这应该是新西兰的一哥们,文章里面说了hotplug自动加载模块,拨号。不错。
  4. 这你linuxsir上面一篇说到wvdial的文章,我觉得ppp拨号自己配置太麻烦,用这个wvdial挺好的!

具体步骤

各种成熟的商业硬件大都会有牛人写好内核驱动,我这样水平低的所要做的应该就只是合理配置好所需的各个部分。无限网卡这种从国外引进的业务,linux当然早就可以支持了!不过cdma1x RTT这种网络国外还有没有是个疑问!因为我找到的文章都是两年前写cdma 1xEV-DO网络的,这种网络据说有500KByte/s以上的带宽,在去年南京十运会上联通临时搭建给记者们用,据说可以在线看现场直播的比赛!埃!罗嗦两句。

1)首先要把内核和各种软件装好!再去中关村找一家商家拿着网卡试。

  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) 这两项不知道是不是都要,总之一定要有usbserial的支持。(以上各项在内核里面的具体位置就不罗嗦了,关于编译内核方法网上的参考文章很多。)
  2. 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
阅读(4839) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~