2007年5月26日

Ubuntu 7.04 加载USB ADSL猫

我使用的是USB接口的猫,用起来总是不如网上猫来的方便,中间经过了不少的挫折,最后终于成功了。

1.
首先要明确需要的东西,现在的内核2.6.20已经包含了驱动了,插上USB猫之后,在终端下面运行lsusb,我的是得到如下的结果:
batfree@ubuntu:~$ lsusb
Bus 004 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 003 Device 002: ID 04d9:0499 Holtek Semiconductor, Inc.
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 004: ID 0572:cb00 Conexant Systems (Rockwell), Inc. E-Tech ADSL Modem v2
Bus 002 Device 001: ID 0000:0000

说明我的猫是Conexant Systems (Rockwell),已经被内核认出来了。
虽然内核里已经包含了驱动程序,但是有个东西还是需要的,那就是firmware,这个是LINUX没有附带的,因为涉及到专用代码的问题,厂商是没有提供的,为了得到这个firmware,需要用到一点小技巧。
2.
那就是将windows驱动程序里里面的firmware提取出来到linux下面用。
需要到下面的地址下载一个工具,用来抽取Firmware,

从Windows下用的USB Modem 驱动里找到CnxEtU.sys这个文件,放置到cxacru-fw所在的目录中,执行
batfree@ubuntu:~/cxacru.zip_FILES$ ./cxacru-fw CnxEtU.sys cxacru-fw.bin
found firmware in `CnxEtU.sys' at offset 0x41c0

出现上面上行的说明,说明提取成功,提取出来的firmware就是cxacru-fw.bin这个文件。
如果不成功,说不定你要自己重新编译一下cxacru-fw.c文件
执行
gcc -o cxacru-fw cxacru-fw.c
重新编译得到 cxacru-fw,然后重新执行上面的命令提取Firmware。
3.
接下来就要将firmware放置在相应的目录下面,让Linux能够调用 。
将获得的cxacru-fw.bin 复制到/lib/firmware对应的内核下面。

4.
最困难的已经完成了,接下来要做的就是为制作拔号部分了。我这儿用的是PPPOA,有的地区用的是PPPOE,各有不同。
到目录/etc/ppp/peers目录下面新建一个文件,如usbadsl添加如下内容。
###############################
noipdefault #自动获取IP地址
defaultroute
usepeerdns #使用获得的DNS
sync
persist
noauth
nopcomp
noccp
novj
debug
kdebug 1
user "username" #将username换成你的的用户名
plugin pppoatm.so
0.100 #这儿比较重要,要看你的 VPI/VCI 值,有的是8.35,我这儿是0.100,
#这要看ISP提供的是什么,可以打电话问电信或者是网通,也可以Windows下面找到这个值
#我是在Accessrunner Control Panel里面按下Alt+C之后显示出来的值。
#########################################

保存之后,就行了。

5.
接下来是定义网络接口,
在/etc/network/interfaces文件中添加
#####################################
# The ADSL connection
auto ppp0
iface ppp0 inet ppp
provider usbadsl
#####################################


6.
接下来是添加用户名和密码了,因为拔号上网的时候需要用到。
在/etc/ppp有个pap-secret和chap-seret这是上网时用户名查找的地方。
看ISP使用的方式是PAP还是CHAP认证,如果不确定的话可以这两个文件都添加。
在里面增加一行。
#############################
username * password *
#############################

注意中间的不是空格,而是用Tab间隔的。
接下来运行 命令
pon usbadsl就可以连接网络,
poff usbadsl就可以断开网络了。


7.
现在已经就绪了,可以上网了,输入ifconfig看是不是有个ppp0连接,
显示了你的IP地址,等等。
我的笔记本上无论在Windows下面还是Linux下面都需要在开机之后再将USB ADSL Modem 插上去,否则系统找不到,但是台式机上猫不需要开机后再插,不知道是不是因为节电的原因,笔记本默认不激活猫呢?
如果出现不能联网的原因,可以将猫拔下来重新插上去,插上去之后,
运行dmesg| grep ADSL查看ADSL信息。
我的机器上显示如下:
[ 75.352000] ATM dev 0: ADSL line: attempting to activate
[ 104.300000] ATM dev 0: ADSL line: attempting to activate
[ 114.328000] ATM dev 0: ADSL line: channel analysis
[ 119.336000] ATM dev 0: ADSL line: up (2048 kb/s down | 512 kb/s up)

最重要的是最后一行,表示已经连接上了,应该会自动上网了,如果不行就运行 pon usbadsl.
现在电信流行DNS劫持,经常将正常的地址说显示不出来,然后拿广告给你看,如果你嫌烦,可以将DNS地址改成OpenDNS
修改/etc/resolv.conf添加两行:
nameserver 208.67.222.222
nameserver 208.67.220.220

没有评论:

发表评论