UsbAdslModem/SpeedTouch
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! :)