个人工具

“UbuntuHelp:UsbAdslModem/e-techV2/zh”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
(UsbAdsl猫(针对accessrunner芯片)在ubuntu中的使用方法(有删改))
(UsbAdsl猫(针对accessrunner芯片)在ubuntu中的使用方法(有删改))
 
(未显示同一用户的1个中间版本)
第1行: 第1行:
<p>这几天查阅了许多关于usb猫上网的资料,包括翻译的wiki,找到了好多精品文章,同时也看到许多已经不太符合现在的文章,整理了一下发了上来,水平有限欢迎多多批评指正。
+
这几天查阅了许多关于usb猫上网的资料,包括翻译的wiki,找到了好多精品文章,同时也看到许多已经不太符合现在的文章,整理了一下发了上来(我用的是pppoe所有pppoa与dhcp方式没有验证),由于水平有限,欢迎大家多多批评指正。
</p>
+
 
<h2>第一步:确认你的猫可以驱动</h2>
+
==第一步:确认你的猫可以驱动==
<p>把猫连接电脑,在终端上运行
+
把猫连接到电脑,在终端上运行
</p>
+
sudo lsusb
<pre class="_fck_mw_lspace">sudo lsusb
+
记下有 Conexant字样的那行中ID两个字符后面的两组用:分开的数字,查阅http://accessrunner.sourceforge.net/modems.shtml 如果你的数字被列出且有绿色的条目,说明你的设备可以被支持。
</pre>
+
 
<p>记下有 Conexant... 一行的 ID 後面的两组用:分开的数字,查阅http://accessrunner.sourceforge.net/modems.shtml 如果你的数字被列出并有绿色的条目,那么说明你的设备可以被支持。
+
==第二步:下载驱动、安装驱动==
</p>
+
有两种情况:
<h2>第二步:下载驱动,安装驱动</h2>
+
===内核已有猫的驱动===
<p>这儿有两种情况:
+
不需要编译内核,可直接进入第三步。ubuntu6.06以后都带有usb adsl猫的驱动,因此不用编译内核。
</p>
+
===内核中没有猫的驱动===
<h3>内核已有usb adsl猫的驱动</h3>
+
需要重新编译内核,加入usb adsl猫的驱动支持或者使用带有驱动的新内核,编译内核前,需先下载libncurses包:
<p>不需要编译内核,直接进入第三步安装系统。
+
====内核版本不变,加入新的驱动。====
</p>
+
到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)复制下载的新驱动程序到下列位置:
<h3>内核中没有usb adsl猫的相关驱动</h3>
+
/drivers/usb/atm/
<p>这时就需要重新编译内核以加入usb adsl猫的驱动支持或者使用带有驱动的新内核,编译内核前,需先下载libncurses包,两种方式:
+
内核配置(以下内容要特别注意),输入:
</p>
+
sudo make menuconfig
<h4>内核版本不变,重新编译。</h4>
+
在子菜单drivers-usb-atm中选择cxacru(新驱动!)并且输入m(可能*也行)。这种驱动方式必须要内核支持 hot-plug 和firmware 所以要特别检查这方面的设置,参考选项源文如下:
<p>到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)复制下载的新驱动程序到下列位置:
+
Prompt for development and/or incomplete code/drivers (EXPERIMENTAL)
</p>
+
...
<pre class="_fck_mw_lspace">/drivers/usb/atm/
+
Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) (ATM)
</pre>
+
...
<p>内核配置(以下内容要特别注意),输入:
+
Support for Host-side USB (USB)
</p>
+
...
<pre class="_fck_mw_lspace">sudo make menuconfig
+
USB DSL modem support (USB_ATM)
</pre>
+
...
<p>在子菜单drivers-usb-atm中选择cxacru(新驱动!)并且输入m(可能*也行)。这种驱动方式必须要内核支持 hot-plug 和firmware 所以要特别检查这方面的设置,参考选项源文如下:
+
Conexant AccessRunner USB support (USB_CXACRU) 这里必须要选上哦
</p>
+
hotplug 和 firemare也必须选
<pre class="_fck_mw_lspace">Prompt for development and/or incomplete code/drivers (EXPERIMENTAL)
+
[*] PCI support
...
+
PCI access mode (Any) --->[*] PCI Express support
Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) (ATM)
+
<*> PCI Express Hotplug driver[*] Use polling mechanism for hot-pluevents (for  testing purpose) │ │[*] Legacy /proc/pci interface
...
+
....
Support for Host-side USB (USB)
+
PCI Hotplug Support ---> 这里面第一个选* 其它选M吧
...
+
Generic Driver Options ---> 全选* 如果有 -- 的就不用管那条
USB DSL modem support (USB_ATM)
+
plug&play相关的也选上吧
...
+
把network 里面把所有有关 ppp ppp over atm ppp over ethernet的选上。
Conexant AccessRunner USB support (USB_CXACRU) 这里必须要选上哦
+
然后退出保存配置文件。
hotplug 和 firemare也必须选
+
====使用带有驱动的新内核====
[*] PCI support
+
比如linux-2.6.18,解压缩 tar xjvf linux-2.6.18.tar.bz2 到/opt/linux-2.6.18/目录下,在/opt/linux-2.6.18下运行下列命令:
PCI access mode (Any) ---&gt;[*] PCI Express support
+
make oldconfig
&lt;*&gt; PCI Express Hotplug driver[*] Use polling mechanism for hot-pluevents (for  testing purpose) │ │[*] Legacy /proc/pci interface
+
先产生缺省配置文件,然后一直按回车键即可
....
+
make menuconfig
PCI Hotplug Support ---&gt; 这里面第一个选* 其它选M吧
+
重新配置驱动模块,必须对usb相关模块进行选中,部分配置如下:
Generic Driver Options ---&gt; 全选* 如果有 -- 的就不用管那条
+
Code maturity level options --->
plug&amp;play相关的也选上吧
+
[*] Prompt for development and/or incomplete code/drivers
</pre>
+
Bus options --->
<p>把network 里面把所有有关 ppp ppp over atm ppp over ethernet的选上。
+
PCI access mode(Any)
然後退出保存配置文件。
+
[*] PCI Express support
</p>
+
[M] PCI Express Hotplug driver
<h4>编译使用新的内核</h4>
+
[*] Use polling mechanism for hot-plug events
<p>比如linux-2.6.18,解压缩 tar xjvf linux-2.6.18.tar.bz2 到/opt/linux-2.6.18/目录下,在/opt/linux-2.6.18下运行下列命令:
+
[*] Legacy /proc/pci interface
</p>
+
PCI Hotplug Support --->
<pre class="_fck_mw_lspace">make oldconfig
+
[M] Support for PCI Hotplug
</pre>
+
[*] Use polling mechanism for hot-plug events
<p>先产生缺省配置文件,然後一直按回车键即可
+
Networking optings --->
</p>
+
[*] Packet socket
<pre class="_fck_mw_lspace">make menuconfig
+
[*] Unix domain sockets
</pre>
+
[*] TCP/IP sockets
<p>重新配置驱动模块,必须对usb相关模块进行选中,部分配置如下:
+
[*] IP:multicasting
</p>
+
[M] Asynchronous Transfer Mode (ATM)
<pre class="_fck_mw_lspace">Code maturity level options ---&gt;
+
[M] classical IP over ATM
[*] Prompt for development and/or incomplete code/drivers
+
[M] LAN Emulation support
Bus options ---&gt;
+
[M] Multi-protocol over ATM support
PCI access mode(Any)
+
[M] RFC1483/2684 Bridged protocols
[*] PCI Express support
+
Device Drivers --->
[M] PCI Express Hotplug driver
+
Generic Driver Options --->
[*] Use polling mechanism for hot-plug events
+
全选
[*] Legacy /proc/pci interface
+
Plug and Play support --->
PCI Hotplug Support ---&gt;
+
[*] Plug and Play BIOS support
[M] Support for PCI Hotplug
+
[*] Plug and Play BIOS /proc interface
[*] Use polling mechanism for hot-plug events
+
Network device support --->
Networking optings ---&gt;
+
ATM drivers --->
[*] Packet socket
+
[M] ATM over TCP
[*] Unix domain sockets
+
[M] PPP support
[*] TCP/IP sockets
+
[M] PPP over Ethernet
[*] IP:multicasting
+
[M] PPP over ATM
[M] Asynchronous Transfer Mode (ATM)
+
[*] PPP multilink support
[M] classical IP over ATM
+
USB support --->
[M] LAN Emulation support
+
[*] Support for Host-side USB
[M] Multi-protocol over ATM support
+
[*] USB device filesystem
[M] RFC1483/2684 Bridged protocols
+
USB DSL modem support --->
Device Drivers ---&gt;
+
[M] USB DSL modem support
Generic Driver Options ---&gt;
+
[M] Speedtouch USB support
全选
+
[M] Conexant AccessRunner USB support
Plug and Play support ---&gt;
+
[M] Other USB DSL modem support
[*] Plug and Play BIOS support
+
然后退出保存配置文件
[*] Plug and Play BIOS /proc interface
+
====编译内核====
Network device support ---&gt;
+
依次运行
ATM drivers ---&gt;
+
make
[M] ATM over TCP
+
make modules_install
[M] PPP support
+
make install
[M] PPP over Ethernet
+
运行成功,在/boot/下可看到vmlinuz-2.6.18文件,然后还需要运行
[M] PPP over ATM
+
mkinitramfs -o /boot/initrd.img-2.6.18 /lib/modules/2.6.18
[*] PPP multilink support
+
来生成initrd.img-2.6.18 文件,修改/boot/grub/menu.lst以便使用新的内核,用新内核来重启系统。
USB support ---&gt;
+
 
[*] Support for Host-side USB
+
==第三步:获得猫的固件,以便驱动使用。==
[*] USB device filesystem
+
大多数USB猫都有一个可编程完成多种工作的微处理器,其驱动会加载一个具备调制解调功能的小程序(即固件,通常有版权)到猫。usb猫的驱动中不包含固件,下面是如何生成固件并放置于/lib/firmware下:需要下面两个文件
USB DSL modem support ---&gt;
+
cxacru-fw.c下载地址:http://accessrunner.cvs.sourceforge.net/accessrunner/utils/ CnxEtU.sys(可在猫的驱动光盘或装有猫驱动的win系统中找到)。
[M] USB DSL modem support
+
在linux下,编译cxacru-fw.c得到cxacru-fw程序(需要libc6-dev库):
[M] Speedtouch USB support
+
gcc -o cxacru cxacru-fw.c
[M] Conexant AccessRunner USB support
+
创建linux的firmware文件:
[M] Other USB DSL modem support
+
chmod +x cxacru-fw
</pre>
+
./cxacru-fw cnxetu.sys cxacru-fw.bin
<p>然後退出保存配置文件
+
将cxacru-fw.bin(系统只认此文件名)放到/lib/firmware下,重新启动计算机,固件里面的驱动被加载,modem的link灯开始同步(由一闪一闪到一直亮着),查看设备状态:
</p>
+
less /proc/net/atm/cxacru:X
<h4>编译内核</h4>
+
应该是:Line up
<p>依次运行
+
</p>
+
<pre class="_fck_mw_lspace">make
+
make modules_install
+
make install
+
</pre>
+
<p>运行成功,在/boot/下可看到vmlinuz-2.6.18文件,然後还需要运行
+
</p>
+
<pre class="_fck_mw_lspace">mkinitramfs -o /boot/initrd.img-2.6.18 /lib/modules/2.6.18
+
</pre>
+
<p>来生成initrd.img-2.6.18 文件,修改/boot/grub/menu.lst以便使用新的内核,用新内核来重启系统。
+
</p>
+
<h2>第三步:获得猫的固件,以使hotplug能在设备启用时能找到它。</h2>
+
<p>大多数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库):
+
</p>
+
<pre class="_fck_mw_lspace">gcc -o cxacru cxacru-fw.c
+
</pre>
+
<p>创建linux的firmware文件:
+
</p>
+
<pre class="_fck_mw_lspace">chmod +x cxacru-fw
+
./cxacru-fw cnxetu.sys cxacru-fw.bin
+
</pre>
+
<p>将cxacru-fw.bin(系统只认此文件名)放到/lib/firmware下,重新启动计算机,固件里面的驱动被加载,modem的link灯开始同步(由一闪一闪到一直亮着),查看设备状态:
+
</p>
+
<pre class="_fck_mw_lspace">less /proc/net/atm/cxacru:X
+
</pre>
+
<p>应该是:Line up
+
 
X是你的设备号,通常是0
 
X是你的设备号,通常是0
</p>
+
 
<h2>第四步 使用br2684ctl配置vpi与vci</h2>
+
==第四步 使用br2684ctl配置vpi与vci==
<p>调制网桥的包文件是br2684ctl,可用br2684ctl设置vpi与vci,br2684ctl的deb安装包如下位置下载:http://packages.ubuntu.com/edgy/net/br2684ctl 安装时,需要libatm1和libc6库,双击br2684ctl_20040226-1_i386.deb安装,然後设置:
+
调制网桥的包文件是br2684ctl,可用它设置vpi与vci,br2684ctl的deb安装包下载:http://packages.ubuntu.com/edgy/net/br2684ctl 安装时,需要libatm1和libc6库,安装后用:
</p>
+
br2684ctl -b -c 0 -e 0 -a 0.vpi.vci (使用本地的VPI/VCI,-e 0为LLC方式)
<pre class="_fck_mw_lspace">br2684ctl -b -c 0 -e 0 -a 0.vpi.vci (使用本地的VPI/VCI,-e 0为LLC方式)
+
命令进行设置,语法是:
</pre>
+
br2684ctl [-c n -e 0|1 -b 0|1 -s buf_size -a [itf].vpi.vci ]+
<p>这个命令的语法是:
+
-a [itf].vpi.vci : ATM PVC 码, VPI 和 VCI. 必需的
</p>
+
-c n : BR2684 接口码,例如 nas0,nas1,... 必需的
<pre class="_fck_mw_lspace">br2684ctl [-c n -e 0|1 -b 0|1 -s buf_size -a [itf].vpi.vci ]+
+
-e 0|1 : 封装方法. 0=LLC, 1=VC mux.默认是 0, LLC
-a [itf].vpi.vci&nbsp;: ATM PVC 码, VPI 和 VCI. 必需的
+
-b 0|1 : 后台运行. 1=后台,0=前台.默认是 0
-c n&nbsp;: BR2684 接口码,例如 nas0,nas1,... 必需的
+
-s buf_size : 传输缓冲值. 默认是 8192.
-e 0|1&nbsp;: 封装方法. 0=LLC, 1=VC mux.默认是 0, LLC
+
例如可使用如下命令桥接:
-b 0|1&nbsp;: 後台运行. 1=後台,0=前台.默认是 0
+
br2684ctl -b -e 0 -c 0 -a 0.0.35
-s buf_size&nbsp;: 传输缓冲值. 默认是 8192.
+
此操作会建立名为nas0的设备并进行配置,配置成功,会显示:
</pre>
+
RFC1483/2684 bridge: Interface "nas0" created sucessfully
<p>使用如下命令桥接:
+
RFC1483/2684 bridge: Communicating over ATM 0.vpi.vci, encapsulation: LLC
</p>
+
RFC1483/2684 bridge: Interface configured
<pre class="_fck_mw_lspace">br2684ctl -b -e 0 -c 0 -a 0.0.35
+
 
</pre>
+
==第五步 拨号登录==
<p>此操作会建立名为nas0的设备并进行配置,配置成功,会显示:
+
拨号方式由你的网络供应商提供的。有三种可行方案:DHCP、PPPoA、PPPoE。
</p>
+
===DHCP===
<pre class="_fck_mw_lspace">RFC1483/2684 bridge: Interface "nas0" created sucessfully
+
不需要用户名和密码,Ubuntu中使用dhcpclient命令(其他的linux发行版是dhcpcd):
RFC1483/2684 bridge: Communicating over ATM 0.vpi.vci, encapsulation: LLC
+
dhclient nas0
RFC1483/2684 bridge: Interface configured
+
PPPOE和PPPOA两种PPP方案都需要用户名和密码。
</pre>
+
===PPPOA===
<h2>第五步 拨号登录</h2>
+
====方法一:使用新版本的pppd和rp-pppoe====
<p>拨号方式由你的服务提供商提供的。有三种可行方案:DHCP、PPPoA、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了(ubuntu好像是pppoeconf), PPPoA的用户要注意提示选择ifup ppp0,可以用adsl-status 或 ifconfig 查看状态
</p>
+
====方法二:如下,需要安装libc6-dev,linux-libc-dev两个文件====
<h3>DHCP</h3>
+
''创建个文件夹“secrets”''
<p>不需要用户名和密码,Ubuntu中使用dhcpclient命令(其他的linux发行版是dhcpcd):
+
</p>
+
<pre class="_fck_mw_lspace">dhclient nas0
+
</pre>
+
<p>PPPOE和PPPOA两种PPP方案都需要用户名和密码。
+
</p>
+
<h3>PPPOA</h3>
+
<p>====方法一:使用新版本的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 查看状态
+
====方法二:需要安装libc6-dev,linux-libc-dev两个文件
+
<i>创建个文件夹“secrets”</i>
+
 
在这个文件夹下建2个文件“chap-secrets”,“pap-secrets”,使用文本编辑器编辑这2个文件,内容相同,加入下面这行:
 
在这个文件夹下建2个文件“chap-secrets”,“pap-secrets”,使用文本编辑器编辑这2个文件,内容相同,加入下面这行:
</p>
+
“username@isp” “*” “password“
<pre class="_fck_mw_lspace">“username@isp” “*” “password“
+
username@isp替换为ADSL的帐号,password替换为ADSL的密码,引号,空格,都不要动,保存,终端输入:
</pre>
+
sudo install -m 600 secrets /etc/ppp/chap-secrets
<p>username@isp替换为ADSL的帐号,password替换为ADSL的密码,引号,空格,都不要动,保存,控制台输入:
+
sudo install -m 600 secrets /etc/ppp/pap-secrets
</p>
+
''新建文件“conexant”''
<pre class="_fck_mw_lspace">sudo install -m 600 secrets /etc/ppp/chap-secrets
+
sudo install -m 600 secrets /etc/ppp/pap-secrets
+
</pre>
+
<p><i>新建文件“conexant”</i>
+
 
使用文本编辑器加入如下内容:
 
使用文本编辑器加入如下内容:
</p>
+
noipdefault
<pre class="_fck_mw_lspace">noipdefault
+
defaultroute
defaultroute
+
user ‘username@isp‘
user ‘username@isp‘
+
noauth
noauth
+
updetach
updetach
+
usepeerdns
usepeerdns
+
plugin pppoatm.so
plugin pppoatm.so
+
0.35
0.35
+
username@isp替换为ADSL用户名,0.35是虚通道标识VPI/VCI,保存,终端输入:
</pre>
+
sudo install -m 600 conexant /etc/ppp/peers
<p>username@isp替换为ADSL用户名,0.35是虚信道标识VPI/VCI,保存,控制台输入:
+
''拨号连接脚本''
</p>
+
<pre class="_fck_mw_lspace">sudo install -m 600 conexant /etc/ppp/peers
+
</pre>
+
<p><i>拨号连接脚本</i>
+
 
新建文件“dial”,加入如下内容:
 
新建文件“dial”,加入如下内容:
</p>
+
#!/bin/bash
<pre class="_fck_mw_lspace">#!/bin/bash
+
modprobe ppp_generic
modprobe ppp_generic
+
modprobe pppoatm
modprobe pppoatm
+
count=0
count=0
+
while [[ $((count++)) -lt 40 ]]
while <a href="$((count++)) -lt 40"> $((count++)) -lt 40 </a>
+
do
do
+
sync=$(dmesg | grep ‘ADSL line: up’)
sync=$(dmesg | grep ‘ADSL line: up’)
+
if [ ! -z “$sync” ]
if [&nbsp;! -z “$sync” ]
+
then
then
+
pppd call conexant
pppd call conexant
+
exit 0
exit 0
+
fi
fi
+
sleep 1
sleep 1
+
done
done
+
echo “The Conexant firmware did not load”
echo “The Conexant firmware did not load”
+
保存,终端输入:
</pre>
+
sudo install -m 744 dial /etc/init.d
<p>保存,控制台输入:
+
开机自动拨号:
</p>
+
sudo ln -s ../init.d/dial /etc/rc2.d/S95dial
<pre class="_fck_mw_lspace">sudo install -m 744 dial /etc/init.d
+
DNS服务器:
</pre>
+
sudo ln -sf ppp/resolv.conf /etc/resolv.conf
<p>开机自动拨号:
+
重启即可
</p>
+
===PPPOE===
<pre class="_fck_mw_lspace">sudo ln -s ../init.d/dial /etc/rc2.d/S95dial
+
用pppoeconf设置拨号
</pre>
+
sudo ifconfig nas0 up
<p>DNS服务器:
+
nas0虚拟网卡已经就绪,开始拨号:
</p>
+
sudo pppoeconf
<pre class="_fck_mw_lspace">sudo ln -sf ppp/resolv.conf /etc/resolv.conf
+
自动检测nas0,eth0,eth1....检测到nas0后,会要求ADSL账号和密码,其他设置默认,设置好后,拨号请执行:
</pre>
+
sudo pon dsl-provider
<p>重启即可
+
如果碰到一个错误为找不到"nic-nas0"则如下操作:
</p>
+
sudo gedit /etc/ppp/peers/dsl-provider
<h3>PPPOE</h3>
+
找到"nic-nas0",改成"nas0",保存。断开ADSL连接:
<p>用pppoeconf设置拨号
+
sudo poff dsl-provider
</p>
+
现在可以上网了,使用脚本把上面步骤打个包:
<pre class="_fck_mw_lspace">sudo ifconfig nas0 up
+
#!/bin/bash
</pre>
+
sudo br2684ctl -b -c 0 -a 0.0.35
<p>nas0虚拟网卡已经就绪,开始拨号:
+
sleep 3s
</p>
+
sudo ifconfig nas0 up
<pre class="_fck_mw_lspace">sudo pppoeconf
+
sudo pon dsl-provider
</pre>
+
先执行:
<p>自动检测nas0,eth0,eth1....检测到nas0後,会要求ADSL账号和密码,其他设置默认,设置好後,拨号请执行:
+
gedit adsl.sh
</p>
+
把上面的代码copy进去,然后
<pre class="_fck_mw_lspace">sudo pon dsl-provider
+
sudo chmod +x adsl.sh
</pre>
+
开机执行后,自动拨号和登录,连接成功用Ctrl-C关闭终端窗口。
<p>如果碰到一个错误为找不到"nic-nas0"则如下操作:
+
</p>
+
<pre class="_fck_mw_lspace">sudo gedit /etc/ppp/peers/dsl-provider
+
</pre>
+
<p>找到"nic-nas0",改成"nas0",保存。断开ADSL连接:
+
</p>
+
<pre class="_fck_mw_lspace">sudo poff dsl-provider
+
</pre>
+
<p>现在可以上网了,使用脚本把上面步骤打个包:
+
</p>
+
<pre class="_fck_mw_lspace">#!/bin/bash
+
sudo br2684ctl -b -c 0 -a 0.0.35
+
sleep 3s
+
sudo ifconfig nas0 up
+
sudo pon dsl-provider
+
</pre>
+
<p>先执行:
+
</p>
+
<pre class="_fck_mw_lspace">gedit ADSL-Dial.sh
+
</pre>
+
<p>把上面的代码copy进去,然後
+
</p>
+
<pre class="_fck_mw_lspace">sudo chmod +x ADSL-Dial.sh
+
</pre>
+
<p>开机执行後,自动拨号和登录,连接成功用Ctrl-C关闭终端窗口。
+
</p>
+

2007年11月28日 (三) 20:21的最新版本

这几天查阅了许多关于usb猫上网的资料,包括翻译的wiki,找到了好多精品文章,同时也看到许多已经不太符合现在的文章,整理了一下发了上来(我用的是pppoe所有pppoa与dhcp方式没有验证),由于水平有限,欢迎大家多多批评指正。

第一步:确认你的猫可以驱动

把猫连接到电脑,在终端上运行

sudo lsusb

记下有 Conexant字样的那行中ID两个字符后面的两组用:分开的数字,查阅http://accessrunner.sourceforge.net/modems.shtml 如果你的数字被列出且有绿色的条目,说明你的设备可以被支持。

第二步:下载驱动、安装驱动

有两种情况:

内核已有猫的驱动

不需要编译内核,可直接进入第三步。ubuntu6.06以后都带有usb adsl猫的驱动,因此不用编译内核。

内核中没有猫的驱动

需要重新编译内核,加入usb adsl猫的驱动支持或者使用带有驱动的新内核,编译内核前,需先下载libncurses包:

内核版本不变,加入新的驱动。

到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的选上。 然后退出保存配置文件。

使用带有驱动的新内核

比如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

然后退出保存配置文件

编译内核

依次运行

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以便使用新的内核,用新内核来重启系统。

第三步:获得猫的固件,以便驱动使用。

大多数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,可用它设置vpi与vci,br2684ctl的deb安装包下载:http://packages.ubuntu.com/edgy/net/br2684ctl 安装时,需要libatm1和libc6库,安装后用:

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

方法一:使用新版本的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了(ubuntu好像是pppoeconf), PPPoA的用户要注意提示选择ifup ppp0,可以用adsl-status 或 ifconfig 查看状态

方法二:如下,需要安装libc6-dev,linux-libc-dev两个文件

创建个文件夹“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

新建文件“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

拨号连接脚本 新建文件“dial”,加入如下内容:

#!/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

现在可以上网了,使用脚本把上面步骤打个包:

#!/bin/bash
sudo br2684ctl -b -c 0 -a 0.0.35
sleep 3s
sudo ifconfig nas0 up
sudo pon dsl-provider

先执行:

gedit adsl.sh

把上面的代码copy进去,然后

sudo chmod +x adsl.sh

开机执行后,自动拨号和登录,连接成功用Ctrl-C关闭终端窗口。