5. BTOpenworld Home 500 (Alcatel Speedtouch USB)

5.1. About this section

There is rather a large amount of credit due here, to Chris Jones for writing the Alcatel Speedtouch USB ASDL Modem mini-HOWTO that is now part of the DSL HOWTO. This helped me a great deal when trying to get my Speedtouch to work.

5.2. Warning

At home I use Linux Mandrake, although the version of the kernel I had was patched with the ATM kernel source I did end up patching a different kernel source to get it working. Please, please inspect your kernel source to see if you have the PPPoATM source patched against your kernel. To do this go into you kernel source directory, usually /usr/src/linux and do a make menuconfig. In the Network Device Support section check for:

If it does exist then make sure it is present it you current kernel and you can skim-read the "Patching you kernel" section to make sure you have the correc toptions compiled in and then carry on.

This was just a minor warning as I orginially had a kernel patched with PPPoATM and without realising managed to trash my kernel tree by trying to force the patch onto it.

5.3. Distribution Specific Information

I have had reports about different distros that have varying PPPoATM support already builtin to the kernel:

NOTE: From roughly kernel 2.4.16 the PPPoATM patch is included in Linus' main source tree. Therefore you can miss out patching the kernel and just configure it.

5.4. Requirements

To get your Speedtouch USB working in Linux you have a fairly heavyweight task ahead of you, but hey, if I could do it so can you! This is what you'll need to get it working:

5.5. Software Downloads

To get the Speedtouch working under Linux you will need some software and kernel patches found below:

5.6. Patching your kernel

Once you have the PPPoATM kernel patch (this assumes you use the patch against kernel 2.4.7) you need to make sure you have a working 2.4.7 kernel tree, next unzip the PPPoATM patch by doing:

NOTE: From rougly kernel 2.4.16 (I haven't tested to see hwo far back it goes) the PPPoATM patch is included in Linus' main kernel tree, therefore you may skip the patching below and resume ready to configure the kernel.

gzip -d pppoatm-2.zip

Next we will need to test-patch the kernel using the following commands:

patch -p1 -s -E --dry-run < /point/to/pppoatm-2

If that ran without failure then patch the kernel by removing the --dry-run as such:

patch -p1 -s -E < /point/to/pppoatm-2

That should have patched the kernel good-and-proper so we can go ahead and configure it, make sure the following options are selected along with your personal build options:

You could select any of these as modules or compiled-in but as I followed Chris Jones' HOWTO I compiled the all but UHCI/OHCI as compiled-in code. Save the kernel config and compile the kernel and modules as you normally do.

5.7. Kernel Drivers and Software

Now that the kernel will support using PPPoATM we can start compiling the bits to run the modem. Well start with the Kernel mode driver; first decompress the SARlib sources to a build directory. (Personally I build all my non-kernel sources in ~/sources) and do a make on it. There is no need to do a make install with this library.

Next return to your source root and decompress your Speedtouch drivers (from Sourceforge not Alcatel!), go in there and do a make, and then a make install.

Note: If you get an "Error 1" then check the Makefile for a line starting SARLIB:= and check it points to the right directory, the one where you just compiled SARlib.

Next install the Hotplug software and make sure it works. Once you've done that decompress Alcatel's binary management software and do a make on that. Then do a make install, the clever bit here is their installation registers the Speedtouch kernel driver and their binary to be run when the USB device is "hotplugged" (or coldplugged) into the system. Kiss goodbye to the hours of trying to writing modules loading scripts that always fail.

Next install the new PPPoATM aware PPPd program, I had no luck getting it compile from source on my machine so I used the RPM. Sorry you're on your own there!

5.8. PPPd Configuration

Warning: The action will remove all the default settings for any previous PPPd connection. (Not that you want them now you've got shiny new ADSL ;P)

In the /etc/ppp directory there is a file called options in that file put the following:

  lock
  defaultroute
  noipdefault
  noauth
  passive
  asyncmap 0
  name bloggs@hg5.btinternet.com
  user bloggs@hg5.btinternet.com
  plugin /usr/lib/pppd/plugins/pppoatm.so
  0.38

Make sure of the following things:

Next in your /etc/ppp/chap-secrets put:

  # Secrets for authentication using CHAP
  # client    server    secret    IP addresses
  "bloggs@hg5.btinternet.com"  *   "mypasswordhere"

5.9. Testing your link

Next thing to do is get the link up and test it. If you've got a nice distro like Mandrake you should find it will auto-init your USB drivers and filesystem, if not then the following can be used:

/sbin/modprobe usb-uhci

mount none /proc/bus/usb -tusbdevfs

Next load the Speedtouch driver by doing: /sbin/modprobe speedtch. Next use the speedmgmt program to get the modem init'ed: /usr/sbin/mgmt. After a while of the lights flashing on the modem the main console (and/or the syslog) should report:

  Speedmgmt[2074]: Modem initialised at 576 kbit/s downstream and 288 kbit/s upstream

Once the modem has been init'ed now make sure the PPPoATM module is loaded by doing:

modprobe pppoatm

Now start the PPP link by typing pppd You should see something similar to this:

  Oct 28 14:01:25 ds9 pppd: PPPoATM plugin_init
  Oct 28 14:01:25 ds9 pppd: PPPoATM setdevname_pppoatm
  Oct 28 14:01:25 ds9 pppd: PPPoATM setdevname_pppoatm - SUCCESS
  Oct 28 14:01:26 ds9 pppd: Using interface ppp0
  Oct 28 14:01:26 ds9 pppd: Connect: ppp0 <--> 0.38
  Oct 28 14:01:28 ds9 pppd: local IP address 255.255.255.255
  Oct 28 14:01:28 ds9 pppd: remote IP address 255.255.255.255
  Oct 28 14:01:28 ds9 pppd: primary DNS address 213.120.62.100

Once that's done you're in luck, now just configure the pppd to autodial at startup (beyond the scope of this HOWTO, sorry!). Hopefully HotPlug will get your device up and going before pppd needs it! :).