UsbAdslModem/SpeedTouch

来自Ubuntu中文
Oneleaf留言 | 贡献2007年5月30日 (三) 18:11的版本 (新页面: This guide is for setting up a USB ADSL modem with the '''''SpeedTouch''''' driver under Ubuntu 6.06 (Dapper Drake). === The firmware === ===== About the firmware ===== The firmware i...)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航跳到搜索

This guide is for setting up a USB ADSL modem with the SpeedTouch driver under Ubuntu 6.06 (Dapper Drake).

The firmware

About the firmware

The firmware is a small piece of code that gets loaded into the modem itself as a kind of OS for the modem. There are three revisions for the SpeedTouch and each revision runs its own firmware. To determine what revision you need, use the following command:

grep -B 1 "THOMSON
ALCATEL" /proc/bus/usb/devices

After that you will see something like this: Rev= X.00 (where X is the version of your modem). If you have a 0 or 2 revision then you will have to use the KQD6_3.012 file from this archive and if the output of the command says you have a revision 4 modem then you will have to use the ZZZL_3.012 file from the same archive. Download the zip file containing the firmware and save it in your home folder. Create a folder called "speedtouch" where you will do all the work and move the zip file containing the firmware files to it and unzip it.

mkdir speedtouch

mv SpeedTouch330_firmware_3012.zip speedtouch

cd speedtouch

unzip SpeedTouch330_firmware_3012.zip

Now we have the firmware files in our speedtouch working folder.

Preparing the firmware

You now have the needed firmware - but that is not enough - the firmware file needs to be prepared and for this we will use a tool called firmware-extractor. The firmware-extractor splits the firmare file in two pieces so it vcan be loaded into the modem's memory. So download the firmware-extractor and move it to the fresh created working folder:

mv firmware-extractor speedtouch

Now we will split the firmware using the following commands depending on the modem revision:

cd speedtouch &&
chmod +x firmware-extractor &&
./firmware-extractor KQD6_3.012

if you have a 0 or 2 revision modem or:

cd speedtouch &&
chmod +x firmware-extractor &&
./firmware-extractor ZZZL_3.012

if you have a 4 revision modem. After that you will have two files in the speedtouch folder: speedtch-1.bin & speedtch-2.bin is just the firmware splited in two parts.

Copying the firmware into the right place.

Now we will have to copy the firmware files to the right place for the firmware to be loaded at boot time. This command will do the work:

sudo cp speedtch* /lib/firmware/2.6.15-19-386

Secrets

We need to create a file called either pap-secrets or chap-secrets but since we don't know what authentication method our ISP is using we will just create a secrets file and copy it to /etc/ppp.So open a text editor and put a line like this (don't forget about the spaces in the ' * ')

'username' * 'password'

replace "username" and "password" with those provided by your ISP and save the file as secrets. Now we will copy it to /etc/ppp:

sudo install -m 600 secrets /etc/ppp/chap-secrets &&
sudo install -m 600 secrets /etc/ppp/pap-secrets

PPP Over ATM

If your ISP uses PPP Over ATM (PPPoATM, PPPoA) then read this section. If it uses PPP Over Ethernet (PPPoE) then jump to the PPP Over Ethernet section. We now need to create a configuration file for pppd to use so open a text editor and paste the following into it:

noipdefault
defaultroute
user 'username'
noauth
updetach
usepeerdns
plugin pppoatm.so
0.00


# noaccomp
# nobsdcomp
# nodeflate
# nopcomp
# noccp
# novj


# debug


Replace 'username' with that provided by your ISP and also change 0.00 with the VP/VC values and save the file as speedtch. Now copy it to /etc/ppp/peers :

sudo install -m 600 speedtch /etc/ppp/peers

Make a Bootscript

Open a text editor and paste the following:

#!/bin/bash
modprobe ppp_generic
modprobe pppoatm
count=0
while [ $count -lt 40 ]
do
sync=$(dmesg | grep 'ADSL line is up')
if [ ! -z "$sync" ]
then
pppd call speedtch
exit 0
fi
sleep 1
count=$((1+$count))
done
echo "The Speedtouch firmware didn't load"

Save the file as dial and then we will install it and make the needed symbolic links:

sudo install -m 744 dial /etc/init.d &&
sudo ln -s ../init.d/dial /etc/rc2.d/S95dial &&
sudo ln -sf ppp/resolv.conf /etc/resolv.conf

Now our bootscripts are in place so the connection will start at boot time.

PPP Over Ethernet

If your ISP is using PPP Over Ethernet (PPPoE) then things are a little bit more complicated because we need to create a bridging connection using br2684ctl bridging utility. Download br2684ctl from here and install it with this command:

sudo install -m 755 br2684ctl /usr/sbin

Now we also need a configuration file for pppd to use so we open a text editor and paste the following:

noipdefault
defaultroute
user 'username'
noauth
updetach
usepeerdns
plugin rp-pppoe.so
nas0


# noaccomp
# nobsdcomp
# nodeflate
# nopcomp
# noccp
# novj


# debug

replace 'username' with that provided by your ISP, save it as speedtch and copy it to /etc/ppp/peers:

sudo install -m 600 speedtch /etc/ppp/peers

Make a Bootscript

Open a text editor and paste the following:

#!/bin/bash
modprobe ppp_generic
modprobe pppoatm
modprobe br2684
count=0
while [ $count -lt 40 ]
do
sync=$(dmesg | grep 'ADSL line is up')
if [ ! -z "$sync" ]
then
br2684ctl -b -c 0 -a VP.VC
sleep 3
ifconfig nas0 192.168.0.1 netmask 255.255.255.0 up
sleep 10
pppd call speedtch
exit 0
fi
sleep 1
count=$((1+$count))
done
echo "The Speedtouch firmware didn't load"

change the VP.VC values with those provided by your ISP ( in my case 0.35 ) save the file as dial then install the bootcript and make the needed symbolic links:

sudo install -m 744 dial /etc/init.d &&
sudo ln -s ../init.d/dial /etc/rc2.d/S95dial &&
sudo ln -sf ppp/resolv.conf /etc/resolv.conf

Now everything is in place and the connection is set.

Last Steps

The Ethernet Issue

If you have an ethernet connection at installation,Ubuntu makes it the default connection, we don't want that, so we do the following:

sudo sed -i 's@gateway@# gateway@g' /etc/network/interfaces &&
sudo sed -i 's@dns@# dns@g' /etc/network/interfaces &&
sudo rm -f /etc/resolv.conf

Finaly

We now reboot and should be online.The Net is yours! :)




等待翻译