Yet another Alcatel SpeedTouch USB for Linux HOWTO
There are now quite a few HOWTOs for this on the net, but most deal with using older linux kernels. My HOWTO is written in Spetember 2001 and deals with using a 2.4.7 kernel. I've performed all the compilation on a Slackware 8.0 system that simply had its kernel upgraded to 2.4.7.
It is also specific to ppp over ATM which is used in New Zealand.
- Get a 2.4.7 linux kernel and explode it under /usr/src/
- Go to Jens Axboe's directory and pick up the pppoatm patch for your kernel (ie for 2.4.7). He has something called 'lanai*' that you don't need. Just download either the bz2 or gz'ipped copy of the pppoatm patch.
- Put the pppoatm-2.gz file into /usr/src
- Patch the kernel:
gzip -c pppoatm-2.gz | patch -p1 -s -E
You should not have gotten any errors. If you did give up.
- Configure the kernel:
You'll need to set the following options:
You may need to turn on HDLC support as well. I did as I found it in another HOWTO somewhere. Can't exactly hurt.
- Code Maturity Level Options
- Prompt for development and/or incomplete code/drivers [*]
- Loadable Module Support
- Enable Loadable Module Support [*]
- Processor type and features
- Processor Family (Set it to the CPU your modem will end up being connected to)
- Symmetric multi-processing support [N]
- General Setup
- Support for hot-pluggable devices [*]
- Networking Options
- Packet Socket [*]
- Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) [*]
- Network Device Support
- PPP (Point-to-Point Protocol) Support [M]
- PPP Deflate Compression [M]
- PPP BSD-Compress Compression [M]
- PPP over ATM (Experimental) [M]
- USB Support
- Support for USB [M]
- Preliminary USB Device Filesystem [*]
- UHCI (Intel PIIX4, VIA,...) Support [M]
- OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support [M]
- Build the kernel:
You should now have your kernel built. You need to copy it somewhere and then run lilo or fix it so it will actually boot (all beyond the scope of this doco). You should probably reboot and make sure your system comes back up on its new kernel.
- get SARlib from SourceForge. It was version 0.2.4 when I wrote this. Extract it and rename the name of the directory it creates. For example:
tar xvzf /tmp/sarlib-0.2.4.tgz
mv sarlib-0.2.4 sarlib
The new directory name must be 'sarlib'. Now compile it:
- get the SpeedTouch module bit from SourceForge. Don't get the version from Alcatel's web site. Its pretty old now. The one I got from SourceForge was version 1.5, and the Alcatel one was probably version 1.0. Extract it and compile it. The directory you extract to must be at the same level as where you put sarlib. So following on from the prior example:
tar xvzf SpeedTouch-1.5.tar.gz
I noticed here that SpeedTouch has CFLAGS set in the Makefile such that it compiles for a 686 architecture (I think a Pentium 2 and up). If you're like me and are going to be using the modem on a lower end PC, then change the Makefile to something like a 486.
- Most other HOWTOs talk about installing Hotplugging at this point. I can't be bothered with it, so we'll manually start all the daemons when necessary. Besides the modems going to be permanently plugged in isn't it???
- Install the Binary management application. Download it from Alcatel. You need to give your name and some other rubbish before they let you have it.
tar xvzf /tmp/speedmgmt.tar.gz
The management app effectively comes precompiled, so only requires a 'make install'
- Attempt to install ATM. Download it from the Linux ATM site. I found that I couldn't compile it completely on Slackware 8.0 (glibc 2.2.3). It would get somewhere in io.c and die. But I found a note on the net somewhere that you just need it to install the atm header files for when you compile pppd with ATM extensions. So try this:
tar xvzf /tmp/atm-0.78.tar.gz
I've since discovered that you need more than the header files
/usr/include/atm*.h. You need the /usr/lib/libatm.a and /usr/lib/libatmd.a
libraries as well. Fortunately, my Slackware 8.0 compile got far enough to
build these libraries, such that the make install installs them correctly
(NB: I've since tried this whole build using Slackware 7.1, glibc 2.1.3 and I
get no compile errors at all).
- Download a pppd with ATM extensions. I got mine from www.nzdsl.co.nz, but it now seems to have disappeared. I've upped my own copy to here.
tar xvzf /tmp/ppp-2.4.0b2-pppoe-pppoatm.tar.gz
For some reason, the make install only installs the pppoe plugin.
You'll need to manually cd into pppd/plugins and copy pppoatm.so to
/usr/lib/pppd/plugins. Actually you only need the pppd and the pppoatm.so files that are created.
Depending on your distro (or setup) you may need to create a /dev/ppp device
mknod /dev/ppp c 108 0
- Mount the USB filesystem. Add the following line to /etc/fstab:
/dev/usb /proc/bus/usb/ usbdevfs defaults 0 0
Mount it now with:
- Create an /etc/ppp/options like so:
The 0.100 is the VCI/VPI pair used here in NZ. Change it to whatever it is in your own country. Both the user@domain's need to be changed to your own ADSL user name.
Create an /etc/ppp/chap-secrets file with your username and password:
# Secrets for authentication using CHAP
# client server secret IP addresses
user@domain * password
And copy it to /etc/ppp/pap-secrets
Starting it up
- Make sure your USB is running. You'll need to do one of the following modprobes depending on what kind of USB chipset you have:
- Make sure all the PPP modules are loaded. If you've compiled everything
in modules, then you should:
and don't forget the pppoatm kernel module!
- Plug in the Alcatel Modem. look at /var/adm/messages. You should have some message about a new device.
- Insert the speedtch module and start the binary management app.
This is where I often have to wait a long long time as the lights on the Modem flash and flash and flash until it gets a connection. You know its done when the LEDs stop flashing and are both solid GREEN. You should also have a message in /var/adm/messages like:
Sep 7 16:07:49 mysys Speedmgmt: Modem initialised at
2336 kbit/s downstream and 800 kbit/s upstream
- Start up pppd:
You should have some messages in /var/adm/messages about your IP and your remote IP and some DNS servers too. It will automatically create /etc/ppp/resolv.conf. A simple way to use this is to make /etc/resolv.conf a symlink to it.
- If you're going to build all this software on one machine and then install it on another (say an old PC you want to use as a firewall), remember to compile everything for the processor of the other machine. For me this meant going through all the Makefiles and adding something extra to the CFLAGS definition:
CFLAGS += -march=i486
Of course, there probably is an easier way using arguments to make.
- If you're going run these things on a read-only file system, you need to know:
- /var probably needs to be read/write since so many processes use it as such.
- speedmgmt creates a socket and consequently a file in /tmp, so /tmp needs to be read/writable.