Google Site SearchFN Site Search FN Blog Login FN Blog Login
Site Navigation:
 
 

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.