LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1972|回复: 4

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

[复制链接]
发表于 2006-4-22 19:17:32 | 显示全部楼层 |阅读模式
搞定gentoo linux下cdma 1x无线上网!
              by:  emerge{at}linuxsir.cn,  emerge[at]kyxk.net,

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

先提供几篇参考文献,愿意看英文资料的话,还是看看,这些都是很好的指导!有其它好文章,请大家补充!
[1] 来自gentoo论坛,这篇比较全,而且讲得比较清楚,用gentoo的同志可以在gentoo论坛上找到几乎所有问题的答案,这话确实没错!
http://forums.gentoo.org/viewtop ... v620+broadband.html
[2] 这是著名的Phil Karn针对采用高通公司MSM5500的Airprime网卡写得一篇文章,非常经典,但是可能有的地方不是很全!Phil Karn的主页http://www.ka9q.net/
http://www.ka9q.net/5220.html
[3] 这应该是新西兰的一哥们,文章里面说了hotplug自动加载模块,拨号。不错
http://debiana.net/aircard580.html
[4] 这你linuxsir上面一篇说到wvdial的文章,我觉得ppp拨号自己配置太麻烦,用这个wvdial挺好的!
http://www.linuxsir.cn/forum.php ... &highlight=CDMA

各种成熟的商业硬件大都会有牛人写好内核驱动,我这样水平低的所要做的应该就只是合理配置好所需的各个部分。无限网卡这种从国外引进的业务,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) 这两项不知道是不是都要,总之一定要有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
   ...

3)找到“P:  Vendor=12d1 ProdID=1001 Rev= 0.00”这一行。
  找出vendor和product这两项,进入root下,然后在终端输入:
  #modprobe usbserial vendor=0x12d1 product=0x1001
  如果出错一定是前面的usbserial模块没有选全。

4)上一步如果没有错,在终端输入:
  $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就行
  如果没有认出这个/ttyUSB0,不要急。root下输入:
  #mknod /dev/ttyUSB0 c 188 0
  #mknod /dev/ttyUSB1 c 188 1
  再看dmesg就可以,
  设备对应节点号见/usr/src/linux/Documentation/devices.txt.
  ACM设备是166

5)接下来的拨号,在参考文献中大家都是写pppd配置文件,网上有前辈用wvdial,写了一个cdma拨号配置文件,很好用。我直接copy用了,一下就连上了,见参考文章4。
  在gentoo linux下是创建/etc/wvdial.conf文件,如下:
  [Modem0]
  Modem = /dev/modem
  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,自己看看。

6)在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。还是会不成功,请注意!

7)关于hotplug自动加载模块,拨号的方法见参考文章3,我还没有搞这个。我现在就是在普通用户下用
  $sudo wvdial cdma

随便说一句,我的资费选的是6个月包月上网,中关村一般现在都是卖500吧!不过注意开卡时间,不要买到上个月开通的,
发表于 2006-4-22 21:06:22 | 显示全部楼层
不如移到wiki上去吧,放在这里,时间长了就不好找了
zh.gentoo-wiki.com
回复 支持 反对

使用道具 举报

发表于 2006-4-22 21:19:04 | 显示全部楼层
牛X,这个ID你都注册到.狠.
回复 支持 反对

使用道具 举报

发表于 2007-1-2 15:42:13 | 显示全部楼层
备份备份备份
回复 支持 反对

使用道具 举报

发表于 2007-1-3 16:35:50 | 显示全部楼层
文章不错,ID更牛!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表