个人工具

UbuntuHelp:UsbAdslModem/e-techV2/zh

来自Ubuntu中文

Xiaotian0127讨论 | 贡献2007年11月28日 (三) 15:43的版本 (新页面: 这几天查阅了许多关于usb猫上网的资料,因为我自己家的电脑上网就是用usb猫:),发现好多精品文章,同时也看到许多已经不太符合现在的...)

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航, 搜索

这几天查阅了许多关于usb猫上网的资料,因为我自己家的电脑上网就是用usb猫:),发现好多精品文章,同时也看到许多已经不太符合现在的文章,整理了一下发了上来,欢迎多多批评指正。 第一步:确认你的猫是否可以驱动 把猫在插入电脑,在终端上运行sudo lsusb,记下有 Conexant... 一行的 ID 后面的两组用:分开的数字 查阅http://accessrunner.sourceforge.net/modems.shtml,如果你的数字被列出并有绿色的条目,那么说明你的设备可以被支持。 第二步:下载驱动及使系统正常驱动设备 这儿有两种情况: 一是内核中默认已经加入了usb adsl猫的设备驱动及相关的内核设置,此时不需要再编译内核,可直接进入第三步安装系统。 二是内核中没有usb adsl猫的相关驱动,这时就需要重新编译内核以加入usb adsl猫的驱动支持或者使用带有驱动的新内核,编译内核前,需先下载libncurses包 1、内核版本不变,重新编译。到网址http://sourceforge.net/projects/accessrunner下载Driver for linux 2.6.10+(确保您的内核不低于 2.6.10)把补丁放入源码树:在源码树找usb-atm.c。这个文件可能会在 /usr/src/linux/drivers/usb/atm/usb_atm.c这儿,重命名这个原来的usb_atm.c,usb_atm.h, Kbuild和Kconfig文件(增加一些东西像.old)复制下载的新驱动程序到下列位置: /drivers/usb/atm/ 内核配置(以下内容要特别注意),输入: sudo make menuconfig 在子菜单drivers-usb-atm中选择cxacru(新驱动!)并且输入m(可能*也行)。这种驱动方式必须要内核支持 hot-plug 和firmware 所以要特别检查这方面的设置,参考选项源文如下: Prompt for development and/or incomplete code/drivers (EXPERIMENTAL) ... Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) (ATM) ... Support for Host-side USB (USB) ... USB DSL modem support (USB_ATM) ... Conexant AccessRunner USB support (USB_CXACRU) 这里必须要选上哦 hotplug 和 firemare也必须选 [*] PCI support PCI access mode (Any) --->[*] PCI Express support <*> PCI Express Hotplug driver[*] Use polling mechanism for hot-pluevents (for testing purpose) │ │[*] Legacy /proc/pci interface .... PCI Hotplug Support ---> 这里面第一个选* 其它选M吧 Generic Driver Options ---> 全选* 如果有 -- 的就不用管那条 plug&play相关的也选上吧 把network 里面把所有有关 ppp ppp over atm ppp over ethernet的选上。 然后退出保存配置文件。 2、编译使用新的内核,比如linux-2.6.18 解压缩 tar xjvf linux-2.6.18.tar.bz2 到/opt/linux-2.6.18/目录下,在/opt/linux-2.6.18下运行下列命令: make oldconfig 先产生缺省配置文件,然后一直按回车键即可 make menuconfig 重新配置驱动模块,必须对usb相关模块进行选中,部分配置如下: Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers Bus options ---> PCI access mode(Any) [*] PCI Express support [M] PCI Express Hotplug driver [*] Use polling mechanism for hot-plug events [*] Legacy /proc/pci interface PCI Hotplug Support ---> [M] Support for PCI Hotplug [*] Use polling mechanism for hot-plug events Networking optings ---> [*] Packet socket [*] Unix domain sockets [*] TCP/IP sockets [*] IP:multicasting [M] Asynchronous Transfer Mode (ATM) [M] classical IP over ATM [M] LAN Emulation support [M] Multi-protocol over ATM support [M] RFC1483/2684 Bridged protocols

Device Drivers ---> Generic Driver Options ---> 全选 Plug and Play support ---> [*] Plug and Play BIOS support [*] Plug and Play BIOS /proc interface

Network device support ---> ATM drivers ---> [M] ATM over TCP [M] PPP support [M] PPP over Ethernet [M] PPP over ATM [*] PPP multilink support USB support ---> [*] Support for Host-side USB [*] USB device filesystem USB DSL modem support ---> [M] USB DSL modem support [M] Speedtouch USB support [M] Conexant AccessRunner USB support [M] Other USB DSL modem support 然后退出保存配置文件 3、依次运行 make make modules_install make install 运行成功,在/boot/下可看到vmlinuz-2.6.18文件,然后还需要运行 mkinitramfs -o /boot/initrd.img-2.6.18 /lib/modules/2.6.18来生成initrd.img-2.6.18 文件,修改/boot/grub/menu.lst以便使用新的内核,用新内核来重启系统。 第三步:获得猫的固件,以使hotplug能在设备启用时能找到它。 大多数USB猫都有一个可编程完成多种工作的微处理器,其驱动会加载一个具备调制解调功能的小程序(即固件,通常有版权)到猫。usb猫的驱动中不包含固件,下面是如何生成固件并放置于/lib/firmware下: 需要两个文件:cxacru-fw.c(可在:http://accessrunner.cvs.sourceforge.net/accessrunner/utils/找到)

                       CnxEtU.sys(可在猫的驱动光盘上或装有猫驱动的win系统中找到)

在linux下,编译cxacru-fw.c得到cxacru-fw程序(需要libc6-dev库) gcc -o cxacru cxacru-fw.c 创建linux的firmware文件: chmod +x cxacru-fw ./cxacru-fw cnxetu.sys cxacru-fw.bin 将cxacru-fw.bin(系统只认此文件名)放到/lib/firmware下,重新启动计算机,固件里面的驱动被加载,modem的link灯开始同步(由一闪一闪到一直亮着),查看设备状态: less /proc/net/atm/cxacru:X 应该是:Line up X是你的设备号,通常是0 第四步 使用br2684ctl配置vpi与vci 调制网桥的包文件是br2684ctl,可用br2684ctl设置vpi与vci,br2684ctl的deb安装包可在http://packages.ubuntu.com/edgy/net/br2684ctl找到,安装时,需要libatm1和libc6库的支持,用新立得查找安装,然后双击br2684ctl_20040226-1_i386.deb安装,然后设置: br2684ctl -b -c 0 -e 0 -a 0.vpi.vci (使用本地的VPI/VCI,-e 0为LLC方式) 这个命令的语法是: br2684ctl [-c n -e 0|1 -b 0|1 -s buf_size -a [itf].vpi.vci ]+ -a [itf].vpi.vci : ATM PVC 码, VPI 和 VCI. 必需的 -c n : BR2684 接口码,例如 nas0,nas1,... 必需的 -e 0|1 : 封装方法. 0=LLC, 1=VC mux.默认是 0, LLC -b 0|1 : 后台运行. 1=后台,0=前台.默认是 0 -s buf_size : 传输缓冲值. 默认是 8192. 使用如下命令桥接: br2684ctl -b -e 0 -c 0 -a 0.0.35 此操作会建立名为nas0的设备并进行配置,配置成功,会显示: RFC1483/2684 bridge: Interface "nas0" created sucessfully RFC1483/2684 bridge: Communicating over ATM 0.vpi.vci, encapsulation: LLC RFC1483/2684 bridge: Interface configured 第五步 拨号登录 拨号方式由你的服务提供商提供的。有三种可行方案:DHCP、PPPoA、PPPoE。 一、DHCP,不需要用户名和密码,Ubuntu中使用dhcpclient命令(其他的linux发行版是dhcpcd): dhclient nas0 PPPOE和PPPOA两种PPP方案都需要用户名和密码。 二、PPPOA 1、使用新版本的pppd和rp-pppoe,保证pppd 已经有了pppoa的插件 (find /usr/lib/ -name pppoatm.so),下载http://gateway.bedroom.gen.nz/~clive/adsl/thefiles/adsl-cln.tar.gz,这个补丁使rp-pppoe程序支持pppoa,下面就可以adsl-setup了, PPPoA的用户要注意提示选择ifup ppp0,可以用adsl-status 或 ifconfig 查看状态 2、需要安装libc6-dev,linux-libc-dev两个文件

   1.创建个文件夹“secrets”,在这个文件夹下建2个文件“chap-secrets”,“pap-secrets”,使用文本编辑器编辑这2个文件,内容相同,加入下面这行:

“username@isp” “*” “password“ username@isp替换为ADSL的帐号,password替换为ADSL的密码,引号,空格,都不要动,保存,控制台输入: sudo install -m 600 secrets /etc/ppp/chap-secrets sudo install -m 600 secrets /etc/ppp/pap-secrets

   2.新建个文件“conexant”,使用文本编辑器加入如下内容:

noipdefault defaultroute user ‘username@isp‘ noauth updetach usepeerdns plugin pppoatm.so 0.35 username@isp替换为ADSL用户名,0.35是虚通道标识VPI/VCI,保存,控制台输入: sudo install -m 600 conexant /etc/ppp/peers

   3.拨号连接脚本,新建文件“dial”,加入如下内容:
  1. !/bin/bash

modprobe ppp_generic modprobe pppoatm count=0 while $((count++)) -lt 40 do sync=$(dmesg | grep ‘ADSL line: up’) if [ ! -z “$sync” ] then pppd call conexant exit 0 fi sleep 1 done echo “The Conexant firmware did not load” 保存,控制台输入: sudo install -m 744 dial /etc/init.d 开机自动拨号: sudo ln -s ../init.d/dial /etc/rc2.d/S95dial DNS服务器: sudo ln -sf ppp/resolv.conf /etc/resolv.conf 重启即可 三、PPPOE。用pppoeconf设置拨号 sudo ifconfig nas0 up nas0虚拟网卡已经就绪,开始拨号: sudo pppoeconf 自动检测nas0,eth0,eth1....检测到nas0后,会要求ADSL账号和密码,其他设置默认,设置好后,拨号请执行: sudo pon dsl-provider 如果碰到一个错误为找不到"nic-nas0"则如下操作: sudo gedit /etc/ppp/peers/dsl-provider 找到"nic-nas0",改成"nas0",保存。断开ADSL连接: sudo poff dsl-provider 现在可以上网了,使用脚本把上面步骤打个包:

  1. !/bin/bash

sudo br2684ctl -b -c 0 -a 0.0.35 sleep 3s sudo ifconfig nas0 up sudo pon dsl-provider 先执行: gedit ADSL-Dial.sh 把上面的代码copy进去,然后 sudo chmod +x ADSL-Dial.sh 开机执行后,自动拨号和登录,连接成功用Ctrl-C关闭终端窗口。