SpeedTouch USB ADSL modem HOWTO for Mandrake 10.0





Users of Mandrake 10.1 and its successor Mandriva 2005 don't need this HowTo. The native install procedure for the SpeedTouch USB modem seems OK on those releases. Besides the procedure below should partially hamper other systems than the Mandrake 10.0. A remark anyway : on Mandrake 10.1 and Mandriva 2005, maybe best don't try to install the modem during the install of the Mandrake/Mandriva release. Install the modem once the system is installed and running.


Mandrake Linux releases contain since long the drivers to run the SpeedTouch USB ADSL modem. Yet I never succeeded in getting those drivers to operate. I tried hard, both sticking to the data sheets and experimenting exotic configurations. Maybe that's due to some particularities of the ADSL providers in my country, Belgium (I tried out two three of them). Anyway the solution has always be to install vanilla SpeedTouch drivers found on the Web, allways the userspace drivers initiated by Benoît Papillaut. Mandrake 10 is special in that no existing driver package operates. I finally got it through by making a mixture of the Mandrake 10 drivers and the Speedbundle 1.0 drivers package. That's what this HowTo describes.

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.

Warning: I'm using PPPoA. The Speedbundle 1.0 provides PPPoE too but I could not get it working.

The Speedbundle 1.0 package works properly with the standard manta-shaped SpeedTouch USB ADSL modem. It should work with the other kinds of SpeedTouch modems provided you use the apropriate microcode. This page seems to propose the microcodes (firmware) for all SpeedTouch and Smoothwall modems: http://www.hystedjp.pwp.blueyonder.co.uk and this page proposes some data too: http://linux-usb.sourceforge.net/SpeedTouch/download/index.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.



Be root (superuser)

The procedures described below assumes you log in as root. That's a problem on Mandrake releases since everything was done to prevent the user doing so. Basically there are three solutions to circumvent this:
mcedit path_to_the_file

su
cd /root

konqueror &



Installing Mandrake 10

I did no network configurations. I simply let things like they were. The only thing I tuned is I asked for the "Internet/Network client" packages to be installed.

Configuring the firewall to block out everything yields no problem and is a good thing for your security.



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 (right-clic on it with the mouse in Konqueror) or simply by typing this in a terminal window (being root and in the /root directory):

tar xzf speedbundle-1.0.tar.gz


That creates the directory /root/speedbundle-1.0



Get the SpeedTouch USB firmware

Go to one of these pages and download the appropriate microcode for your modem:

http://www.hystedjp.pwp.blueyonder.co.uk
http://www.linux-usb.org/SpeedTouch/download/index.html


Or use the Microcode present on your modem install CD. I used the mgmt.o microcode file from years ago and got a perfect result. Any file should do the job: KQD6P2.eni, alcaudsl.sys... Try to get the file that suits your modem. If you get problems retry using another microcode file.

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.

Later on, if you get problems running the connection, you can try to change the firmware file. You don't have to start the install procedure over again. Just put the trial firmware file (renamed firmware.bin) inside the /usr/lib/speedtouch folder and unplug then re-plug the modem or restart the computer.



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.

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. Maybe best rely on the data provided by your DSL provider or phone the helpdesk. 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.)


# To connect to using this configuration file, do
#     pppd call speedtch

lcp-echo-interval 10
lcp-echo-failure 3
noipdefault
defaultroute
user "yourlogin@YOURPROVIDER"
noauth
noaccomp
nopcomp
noccp
novj
holdoff 4
persist
maxfail 25
updetach
usepeerdns
persist
plugin pppoatm.so
yourvpi.yourvci



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 Speedbundle installs you don't need

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 Mandrake 10 as its kernel already contains the module. Besides building this module can yield problems and need complicated maneuvers like installing the kernel sources and starting a kernel configure procedure. So you *must* remove it from the Speedbundle make procedure.

Also the firmware loader install (modem_run command) (firmware = modem microcode) should be avoided since the Mandrake 10 allready contains a modem-run command. Besides the modem_run command from the Speedbundle simply won't operate. The ADSL LED of the modem will stay orange and no connection will succeed.

To do so 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 lines:


#!/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 in a console or terminal window:

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 .)

If nothing happens, maybe there is a problem with your USB connectors. Type this command to chech if the modem is seen by the system:

lsusb


That yields following output on my machine, showing both my Epson printer and the modem are connected and get basic system recognition:


Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 003: ID 06b9:4061 Alcatel Telecom Speed Touch ISDN or ADSL Modem
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 002: ID 04b8:0005 Seiko Epson Corp. Stylus Printer
Bus 001 Device 001: ID 0000:0000



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, change ADSL provider or simply want to check the configurations are correct. What then? Do you have to start again the whole install procedure? No: simply go into these files and check or change their content:

/etc/ppp/chap-secrets
/etc/ppp/pap-secrets
/etc/ppp/peers/speedtch



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 or 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 remarks.



Eric Brasseur  -  June 2 2004  till  Jully 23 2005        [ Homepage | eric.brasseur@gmail.com ]