Speedbundle 1.0 for ADSL SpeedTouch USB modem
by
Eric Brasseur on February 7,
2004
The Speedbundle 1.0 package is one of the ways to use an Alcatel /
Thomson ADSL
SpeedTouch USB modem on a Linux box. It's a good system yet it is not
perfectly adequate for a Fedora Core 1 Linux release. This
page explains how to install it anyway.
The reference sites for the Speedbundle package are http://www.linux-usb.org/SpeedTouch
and http://sourceforge.net/project/showfiles.php?group_id=3581
It is maintained by Duncan Sands.
(You can find an alternate
method on
http://speedtouch.sourceforge.net
. It was developed by Benoit
Papillaut. I've been
using it for years but recent drivers from
that site no more work on my Linux release. I read complains from other
people too, who have to go on using ancient drivers. I only managed to
get the
recent drivers working on KNOPPIX,
probably because it is a Debian-based
Linux release. Currently I'm using these ancient user-space drivers
because the connection lasts longer.)
The procedure described below assumes you log in as root.
Warning: I'm using PPPoA. The Speedbundle 1.0 provides PPPoE too but I
could not get it working on Fedora Core 1. I don't know if that's
because my Internet Service Provider uses only PPPoA or because some
software lacks on Fedora Core 1.
The Speedbundle 1 package works properly with the standard
manta-shaped
SpeedTouch USB ADSL modem. It should work with the Speedtouch 330 rev.
2 modem but this has not been tested. It does not operate with the
Speedtouch 330 rev. 4 modem but later versions of Speedbundle will for
sure. The problem is due to the modem_run upload command that sends the
modem its software. See page http://www.ottolander.nl/opensource/speedtouch/speedtouch.html
.
Please note there has to be a carriage return at the end of the last
line of each configuration file. In other words: the text of each file
must end with an empty blank line.
No default route/gateway
If one of the following items is true you shouldn't bother about this
problem:
- You don't have a network interface in your computer (Ethernet).
- During the install of your Fedora system you didn't bother about
the configuration of the network interface and kept the default
settings (dynamic configuration / DHCP).
- You did configure your network interface but you didn't fill in a
route/gateway or you erased the IP address that was proposed.
If you did configure a static route/gateway, you may go into trouble.
Indeed the route/gateway is the IP address (eg. 192.168.0.254) of the
device/server your computer will contact each time you need something
from the Internet. So there will be a conflict with the ADSL SpeedTouch
modem since both have have the same purpose to reach Internet. Thus you
should deactivate your route/gateway configuration. Either you remove
the route/gateway IP address or you tune the system for dynamic
(DHCP) configuration. You can do so by using the appropriate network
configuration tool:
Get the Speedbundle package
You have to get the speedbundle-1.0.tar.gz file. You should be able to
download it by going to this page:
http://sourceforge.net/project/showfiles.php?group_id=3581&package_id=16303&release_id=172024
. If you don't succeed with this link go to the Linux-USB SpeedTouch
site and
follow the links:
http://www.linux-usb.org/SpeedTouch
Put the speedbundle-1.0.tar.gz file in your /root/ directory.
Extract it, using any suitable method or simply by typing this in a
terminal window :
# tar xzf speedbundle-1.0.tar.gz
This creates the directory /root/speedbundle-1.0
Get a good sonet.h header file
The /usr/include/linux/sonet.h file included in both Red Hat
7.3, (probably 8), 9 and Fedora Core 1 releases contains a bug.
Download a correct sonet.h file by clicking
here
(you can also find a good sonet.h file inside the
kernel source directory if you did install the kernel source:
/usr/src/linux-2.4/include/linux/sonet.h ).
Put this appropriate sonet.h file in the /usr/include/linux/
directory, thereby replacing the existing sonet.h file.
Get the SpeedTouch USB firmware
Go to this page:
http://www.linux-usb.org/SpeedTouch/download/index.html
and download
the firmware.bin file. You can also get the mgmt.o file or KQD6P2.eni
or alcaudsl.sys . (If you cannot download any of them, simply use the
modem install
CD and install the modem drivers on a Windows system then search for
the alcaudsl.sys
file that was installed). Whatever file you download or get,
rename it so it gets the name firmware.bin
Put that firmware.bin file inside the /root/speedbundle-1.0/firmware/
directory.
Creating the speedtch file
Inside the directory /root/speedbundle-1.0/ppp_scripts/ you will find a
file named speedtch-pppoatm . Rename (or copy) it into speedtch.
(Please note
this is if your ADSL connection uses PPPoATM like mine. If your country
or your provider implies PPPoE then you should rather rename (or copy)
the file
speedtch-pppoe into speedtch. Consult the page http://www.linux-usb.org/SpeedTouch/faq/index.html#q12
for clues on what you should choose or look for the data provided by
your ADSL provider (or phone the helpdesk). I've reasons to believe you
won't succeed using PPPoE with the Speedbundle on a Fedora Core 1. I
tried to do it and some files own to another Linux release
seemed to lack.)
Open that /root/speedbundle-1.0/ppp_scripts/speedtch file and change
inside it the two lines marked red below. The "username" should be
replaced by your login. For example "tartemp1@PLANET" or
"fa789123@SKYNET". The 0.00 should
be replaced by the vpi.vci numbers suitable for your country or
provider. For Belgium that's 8.35 . Below is a table with the codes for
other countries or providers. See the page
http://www.linux-usb.org/SpeedTouch/faq/index.html#q12
for even more countries.
(Remind the configuration files
must end with a carriage return, that is an empty blank line.)
(Tip: add the "persist" option in the configuration
file. That way the modem should dial again automatically when the
connection stops. This is useful when you have a Linux box you can
switch on for months and an ADSL provider that stops the connection
every 24 hours.) (If
you're using PPPoE then it seems you don't have to tune the vpi.vci.
Also I
don't know if when using PPPoE you need to add the @PROVIDER item to
the username. I didn't manage to get PPPoE working on my Fedora Core 1.
I fear the system lacks something.)
# To connect to using this configuration file, do
# pppd call speedtch
lcp-echo-interval 10
lcp-echo-failure 3
noipdefault
defaultroute
user "username"
noauth
noaccomp
nopcomp
noccp
novj
holdoff 4
persist
maxfail 25
updetach
usepeerdns
persist
plugin pppoatm.so
0.00
Code
Table
|
VPI
|
VCI
|
France, Belgium, Italy, Spain
Retevision, Sweden, USA |
8
|
35
|
Spain Telefonica
|
8
|
32
|
Netherlands (Holland)
|
8
|
48
|
United Kingdom
|
0
|
38
|
Portugal, Poland
|
0
|
35
|
Finland
|
0
|
100
|
Germany, Hongary
|
1
|
32
|
Changing the chap-secrets file
You must change the /root/speedbundle-1.0/ppp_scripts/chap-secrets file
to make it contain your login and password. Like this :
# Secrets for authentication using CHAP
# client server secret IP addresses
"tartemp1@PLANET" * "fefgr78kt" *
Changing the pap-secrets file
You must do the same for the
/root/speedbundle-1.0/ppp_scripts/pap-secrets file. Fill in your
login and password.
(You may
wonder why you have to fill in your login and password in two different
files. That's because your ADSL provider may be using either the CHAP
or PAP protocol to authenticate. By filling in both files you avoid to
puzzle on what authentication protocol is used and you won't get into
problems should your ADSL provider change.)
# Secrets for authentication using PAP
# client server secret IP addresses
"tartemp1@PLANET" * "fefgr78kt" *
Remove the kernel module install
The Speedbundle 1.0 package is meant to install a "kernel module" on
Linux systems with an old kernel. You don't need that when using Fedora
Core 1 as its kernel already contains the module. Besides building this
module can yield problems and need complicated maneuvers like starting
a kernel configure procedure. So you *must* remove it from the
Speedbundle make procedure.
Open the file /root/speedbundle-1.0/Makefile and comment out with a #
sign (or erase) the following lines:
all: build
configure: configure-stamp
configure-stamp:
./configure
build: configure-stamp build-stamp
build-stamp:
# cd kernel_module && $(MAKE)
cd linux-atm && $(MAKE)
cd ppp && $(MAKE) C_INCLUDE_PATH=../../../linux-atm/src/include LIBRARY_PATH=../../../linux-atm/src/lib/.libs
cd firmware && $(MAKE)
cd firmware_loader && $(MAKE)
cd hotplug_scripts && $(MAKE)
cd ppp_scripts && $(MAKE)
touch build-stamp
clean:
rm -f build-stamp configure-stamp
cd firmware && $(MAKE) clean
cd firmware_loader && $(MAKE) clean
cd hotplug_scripts && $(MAKE) clean
# cd kernel_module && $(MAKE) clean
cd linux-atm && $(MAKE) clean
cd ppp && $(MAKE) clean
cd ppp_scripts && $(MAKE) clean
install: build
# cd kernel_module && $(MAKE) install
cd firmware && $(MAKE) install
cd firmware_loader && $(MAKE) modem_run
cd hotplug_scripts && $(MAKE) install
cd linux-atm && $(MAKE) install
cd ppp && $(MAKE) install
cd ppp_scripts && $(MAKE) install
Open the /root/speedbundle-1.0/configure file and comment out with a #
sign (or erase) the following line:
#!/bin/bash
# cd kernel_module && ./configure && cd .. && \
cd hotplug_scripts && ./configure && cd .. && \
cd ppp_scripts && ./configure && cd .. && \
cd firmware && ./configure && cd .. && \
cd firmware_loader && ./configure --prefix=/usr && cd .. && \
cd linux-atm && ./configure --prefix=/usr && cd .. && \
cd ppp && ./configure && cd .. && \
touch configure-stamp
Remove the ppp package
The Speedbundle package contains an upgraded pppd daemon. So before
installing you must remove the ppp package from your system. Do that
with the following command :
# rpm -e
--nodeps ppp
Building & installing the
Speedbundle package
In a terminal window, go inside the /root/speedbundle-1.0/ directory
and type the build and install commands:
# cd
/root/speedbundle-1.0/
# make
# make install
Trying out if the modem is
recognized
Simply plug in the modem in a USB port of your computer (or unplug it,
if it was plugged, then plug it back in). Best it
should also be connected to the phone line, for the purpose of next
item. After a few
seconds the modem LEDs should start blinking for a short while.
This shows the modem has been seen and the firmware is being uploaded
to the modem's memory. (This will happen automatically whenever you
plug in your modem or switch on your computer and start your Linux box.)
(The script in charge of this
automated device activation is /etc/hotplug/usb/speedtch .)
Installing the DNS (nameservers)
If you plugged in the modem like advised above (with the modem
connected to the phone line too), actually the Internet
connection should have started too, automatically. But you cannot use
it to browse the Web
or send & receive mail. Because the DNS are not configured
properly. Your system did receive the DNS settings from your ADSL
provider and did put them in the
/etc/ppp/resolf.conf file. But the Fedora core 1 system rather looks
inside the /etc/resolv.conf file. So you now have to read the
/etc/ppp/resolf.conf file and add its content to the /etc/resolv.conf
file.
This can be discussed. Indeed by doing it the way described above, you
will get into trouble once the DNS change. The change will immediately
be present inside the /etc/ppp/resolv.conf file. But since the system
uses /etc/resolv.conf and this file does not contain the changes, your
connection will be unusable. First solution is each time you get that
problem to manually update the /etc/resolv.conf file. You can either
add the new DNS or replace the old ones. The choice is up to you. This
is a sound way of doing if your /etc/resolv.conf file contains other
DNS data too.
If the sole useful DNS data your /etc/resolv.conf file may ever contain
is the
one present in /etc/ppp/resolv.conf then maybe best is to keep things
simple and make a link:
# ln -sf
/etc/ppp/resolv.conf /etc/resolv.conf
Should the /etc/ppp/resolv.conf file contain nothing then maybe your
ADSL provider does not provide automatically the DNS data. Then maybe
you can find that in the user account papers you received. Beneath is
an example of what the /etc/resolv.conf and /etc/ppp/resolv.conf files
should contain for a minimal ADSL configuration (do not use these given
DNS data):
nameserver 194.119.228.67
nameserver 193.121.171.135
One possible explanation if you get nothing in /etc/ppp/resolv.conf is
the connection simply didn't succeed. Try making pings to Web servers
using their raw IP address or type the command ifconfig to check if you
have a working ppp0 network interface. More details on this below in
"How can I know the connection is on?".
The End
There you are. Now you can browse on the Web, download files, send and
receive mail... Well I wish you can.
Whenever you start your computer the ADSL Internet connection should
start automatically. Also when you plug in the modem.
The connection is available for every user of the computer.
Changing the account data
Suppose you change your password, get another login or change ADSL
provider. What then? Do you have to start again the whole install
procedure? No: simply go into these files and change their content
accordingly.
/etc/ppp/chap-secrets
/etc/ppp/pap-secrets
/etc/ppp/peers/speedtch
Also remember the ADSL system puts the DNS data inside the
/etc/ppp/resolv.conf file though the Fedora system looks into the
/etc/resolv.conf file. You can get into trouble if the /etc/resolv.conf
file no more contains the correct DNS data.
How can I know the connection is on?
If you can browse the Web using Mozilla or Konqueror, obviously the
connection is on. Be careful no to browse pages which are in the cache
memory of the browser. Make a random Google search or so in order to
verify your computer really has a dialog with the Web.
A more technical way to check the connection is to make a ping. With
this command. Maybe choose another address than Google not to load that
given server:
# ping -c 3
www.google.com
If the connection is on then the output should be something like this:
PING www.google.akadns.net
(66.102.11.99) 56(84) bytes of data.
64 bytes from 66.102.11.99:
icmp_seq=0 ttl=53 time=45.5 ms
64 bytes from 66.102.11.99:
icmp_seq=1 ttl=53 time=47.1 ms
64 bytes from 66.102.11.99:
icmp_seq=2 ttl=53 time=52.4 ms
--- www.google.akadns.net ping
statistics ---
3 packets transmitted, 3
received, 0% packet loss, time 2020ms
rtt min/avg/max/mdev =
45.500/48.388/52.479/2.984 ms, pipe 2
A special case is the connection is on yet there is a DNS problem. So
your system cannot translate the www.google.com address in it's IP
address 66.102.11.99 . Simply type the ping command using that IP
address: (Please note this address could have changed by the time you
try this out. Maybe phone a friend to ask him for any IP address
currently active on the Web.)
# ping -c 3
66.102.11.99
Another way round but it proves nothing is to check if the pppd daemon
is present:
# ps -A
You should see the pppd daemon somewhere in the list. (You can also use
any job control software.) If you want a shorter output for the above
command just type this instead. Either you see an output line listing
the pppd daemon or you see nothing then it is not running currently:
# ps -A | grep
ppp
Yet another way is to type the ifconfig command and check if there is
an activated ppp0 network interface:
# ifconfig
Below is what it yields currently on my computer. Obviously there is an
active ppp0 network interface:
eth0 Link encap:Ethernet HWaddr 00:0C:6E:1D:BE:2B
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:3 Base address:0xd000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:268 errors:0 dropped:0 overruns:0 frame:0
TX packets:268 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:24178 (23.6 Kb) TX bytes:24178 (23.6 Kb)
ppp0 Link encap:Point-to-Point Protocol
inet addr:75.12.125.199 P-t-P:75.12.124.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:34828 errors:0 dropped:0 overruns:0 frame:0
TX packets:21739 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:50110871 (47.7 Mb) TX bytes:1262955 (1.2 Mb)
How can I stop the connection?
Just kill the pppd daemon:
# killall pppd
(Clue: if you aren't root and wants to be, simply type the
su command
then type the root password when asked.)
How can I start the connection again?
Best is to re-start the pppd daemon this way:
# pppd call
speedtch
The content of this text may suggest you other ways.
Can I have more ADSL accounts?
The "speedtch" in the pppd call command above means the pppd daemon
should use the /etc/ppp/peers/speedtch file. You can define as many
such files you want inside the /etc/ppp/peers/ directory. Simply make
copies of the initial speedtch file and tune them to your needs. You
can also add lines inside the /etc/ppp/chap-secrets and
/etc/ppp/pap-secrets files to register
more logins and passwords. Suppose you added a second line to the
/etc/ppp/chap-secrets and /etc/ppp/pap-secrets files for another
account and created a file
speedtch_other_provider inside the /etc/ppp/peers/ directory. Then you
can start that other ADSL account by first killing the pppd daemon then
restarting it:
# killall pppd
# pppd call speedtch_other_provider
If you want the computer to start that other account by default, change
the /etc/hotplug/usb/speedtch file accordingly:
# killall pppd
# pppd call speedtch_other_provider
If you want the computer to start that other account by default, change the /etc/hotplug/usb/speedtch file accordingly:
#!/bin/bash
case $ACTION in
add)
if /usr/sbin/modem_run -k -f /usr/lib/speedtouch/firmware.bin ; then
sleep 5
/usr/sbin/pppd call speedtch_other_provider
fi
;;
esac
If you simply don't want the connection to start when you switch the computer on or when you plug in the modem, comment that line out:
# killall pppd
# pppd call speedtch_other_provider
If you want the computer to start that other account by default, change the /etc/hotplug/usb/speedtch file accordingly:
#!/bin/bash
case $ACTION in
add)
if /usr/sbin/modem_run -k -f /usr/lib/speedtouch/firmware.bin ; then
sleep 5
# /usr/sbin/pppd call speedtch
fi
;;
esac
Thanks to Giacomo Magnini, Leonard den Ottolander and Laurent Vaills
for their additions to this text and remarks.