DSL HOWTO for Linux | ||
---|---|---|
Prev |
Author: Chris Jones <chris@black-sun.co.uk>, copyright © 2001
with minor edits by Hal Burgiss <hal@foobox.net>.
Installation, configuration and use of the Alcatel SpeedTouch USB ADSL modem with Linux.
French translation available http://www.linuxdude.co.uk/docs/Alcatel-Speedtouch-USB-mini-HOWTO-FR.txt.
This is an adaptation of Chris Jones' Alcatel-Speedtouch-USB-mini-HOWTO. The current version of this document can be found at http://www.linuxdude.co.uk/docs/Alcatel-Speedtouch-USB-mini-HOWTO/.
As always with Linux, there is more than one way to skin a cat. This document takes one approach that is a working model. There are other ways, and there may be some contradictions to the INSTALL instructions as included by Alcatel. One notable example: The Alcatel driver supports both PPPoE and PPPoA. Alcatel suggests PPPoE as easier, but many are finding PPPoA more stable even if maybe a little more work to get going. This HOWTO only covers the PPPoA driver! The docs included by Alcatel have some information on PPPoE driver installation.
Also, this driver has just recently been released as of March 2001. It is still dependent on experimental code. Do not expect it to be as stable as ethernet modem solutions. Hopefully, this should change quickly as more users are able to provide feedback to the developers.
The driver also requires a 2.4.x kernel. If you are now running a 2.2 kernel, this will require a major upgrade -- of not just the kernel itself, but related packages such as modutils as well. You can find what all is required by reading /usr/src/linux/Documentation/Changes in the 2.4 kernel source tree. I would further suggest that you get a plain vanilla 2.4 system up and running stably before attempting the process below.
Warning |
This process is not for the faint of heart. Novice users should strongly consider an ethernet modem, if this is a possibility. |
The Alcatel SpeedTouch USB ADSL modem has become a popular choice for providing low cost, widely available ADSL services, particularly in the UK, where BT Ignite (a division of British Telecom) install it for use over their ADSL network. Although BT plan to move to a new ADSL router soon, the SpeedTouch USB is still used by a large number of people, many of whom wish to use Linux, rather than Windows to access the Internet.
Initially the SpeedTouch USB was only useful to people running either Windows 2000 or Windows 98. Alcatel recently released a MacOS driver and have now released a Linux driver.
This document will show you, as simply as possible, how to configure a Linux machine to connect to the Internet using a SpeedTouch USB.
Several assumptions are made by this document:
You are using Red Hat 7.0 (although the instructions are very similar for other distributions). You should also have all the latest updates.
You are running the 2.4.2 kernel (this is not the appropriate place for kernel installation instructions; they are all over the web).
You are in the UK (this is the only ADSL network I have access to, so it's all I know. If you have any differences for your country, please email me and I'll amend the HOWTO).
The first assumption is merely because I use Red Hat 7.0 and so that is what I've had to use to get it working. I would like to cover other distributions, so if you spot any differences, please email me and I'll amend the HOWTO.
The second assumption is far more critical than the first - you MUST be running AT LEAST 2.4.1, but I have found 2.4.2 to be more stable and the SpeedTouch USB driver works fine with it.
Unfortunately, much of the software required for this setup is beta quality and you may experience crashes, random oopses, etc. Hopefully work on the driver will bring its stability up to scratch and everyone can be happy.
For this section you will need the following items. (Please note that by the time you read this, the versions may have changed, so adjust accordingly.)
A working 2.4.2 kernel source tree (usually held in /usr/src/linux/). You should already be running the kernel - there are many guides on the web that will teach you how to install the 2.4 kernel.
The pppoatm kernel patch by Jens Axboe. This is available from:
http://www.kernel.org/pub/linux/kernel/people/axboe/PPPoATM/2.4.1-pre7/pppoatm-1.gz |
To extract the patch from this, run gzip -d pppoatm-1.gz
Originally we used a combined kernel patch that covered the SpeedTouch driver and the SAR library it depends on. Unfortunately this patch has suffered some bit rot and isn't based on the current driver versions anymore so this next step is mildly more complex than it used to be.
If your current kernel is using the combined patch (this will only be the case if you have followed this HOWTO before) and you want to upgrade to the latest versions of the SpeedTouch driver and SARlib you will need to 'revert' the combined patch (ie re-apply it to the kernel as you did originally, but with the '-R' option) and follow the SpeedTouch/SARlib instructions below.
Firstly you need the latest SpeedTouch driver which is available from:
http://sourceforge.net/ |
You will also need the latest version of SARlib, available from:
http://sourceforge.net/ |
Extract both of the files you just downloaded with these commands:
tar -xvzf sarlib-x.y.z.tgz |
tar -xvzf speedtouch-x.y.tar.gz |
Over-helpful browsers: It is possible that your web browser has already unzipped the above patches (i.e. Netscape automatically unzips .gz files). If this has happened, simply rename the patch files to remove the .gz suffix and continue with the following instructions.
Once you have all of these pre-requisites, we can start patching.
Patching Procedure
Change directory into the kernel source directory: cd /usr/src/linux
Test the pppoatm-1 patch: patch -p1 -s -E --dry-run < /path/to/pppoatm-1
If this command produces any output then something is wrong with your 2.4.2 kernel source tree. Please fix it before continuing.
Apply the pppoatm-1 patch: patch -p1 -s -E < /path/to/pppoatm-1
Now we need to compile the driver. This is very easy and can be done with the following commands:
cd SpeedTouch (this directory is created by extracting the speedtouch-x.y.tar.gz archive) |
make |
make install (this needs to be done as root) |
This will put the resulting kernel driver (speedtch.o) in /lib/modules/2.4.x/kernel/drivers/usb/ (where 'x' is the kernel version you are running).
For this section you will need:
A working 2.4.x kernel patched according to the instructions in Patching the kernel
To configure the kernel, load your favorite kernel configuration method: (e.g. cd /usr/src/linux; make xconfig)
You need to select the following kernel options:
Code maturity levels->Prompt for development and/or incomplete code/drivers
Networking options->Asynchronous Transfer Mode (ATM)
Network device support->PPP (point-to-point protocol) support
Network device support->PPP support for async serial ports
Network device support->PPP Deflate compression
Network device support->PPP BSD-Compress compression
Network device support->PPP over ATM
USB support->Support for USB
USB support->Preliminary USB device filesystem
USB support->UHCI (Intel, PIIX4, VIA, ...) support
You may need to choose the OHCI driver here, depending on your USB controller)
USB support->Alcatel Speedtouch USB support
This option is only available if you are using the older combined kernel patch for the kernel SpeedTouch driver. If you downloaded the separate SpeedTouch and SARlib tarballs then this option won't be shown and you don't need to worry about it.
Selection: For simplicity, I recommend selecting Y (rather than M) for all of these, except the last two (UHCI/OHCI support and Alcatel Speedtouch USB support. Those are better left as M).
Now compile and install the kernel and modules as you would normally.
For this section you will need the items listed below. (Again, be aware of possible version updates.)
The results of Patching the kernel and Configuring the kernel.
Alcatel's binary management application. This is available from http://www.alcatel.com/consumer/dsl/dvrreg_lx.htm. You must download it from Alcatel, the license forbids us from distributing it.
A PPPoATM-aware PPP daemon. This is available from:
Red Hat 7 RPM (GLIBC2.2): http://sourceforge.net/project/showfiles.php?group_id=23818
Red Hat 6 RPM: NOT YET AVAILABLE
Debian .deb: http://sourceforge.net/project/showfiles.php?group_id=23818
Tarball: http://sourceforge.net/project/showfiles.php?group_id=23818
A working PPP setup (there are many guides on the Internet on how to configure PPP in 2.4 kernels)
The Linux HotPlug software from http://linux-hotplug.sourceforge.net. Install this as per its instructions (RPM installation is the simplest)
Install whichever ppp package you need. You might have to create the file /dev/ppp yourself, which can be done with the following commands:
cd /dev |
./MAKEDEV ppp |
If your distribution does not include the MAKEDEV script, or it fails to create the correct device, you can use the following command:
mknod /dev/ppp c 180 0 |
Extract the Alcatel binary driver tarball (speedmgmt.tar.gz) and install it as per its included instructions.
For this section you will need:
The results of Patching the kernel, Configuring the kernel and Installing the software.
Edit the file /etc/ppp/options and replace its contents with the following:
lock
defaultroute
noipdefault
noauth
passive
asyncmap 0
name user@domain
user user@domain
plugin /usr/lib/pppd/plugins/pppoatm.so
0.38
Don't forget: You will need to replace the two "user@domain"s with your ADSL username.
Also, in the above example "0.38" is the VPI/VCI ATM pair for the author's provider. You will need to know what the correct values are for your provider, and substitute those. If these values are incorrect, you may sync, but will not be able to connect to your ISP's IP layer, and probably be frustrated. These values can be obtained from the Window's Alcatel client or your ISP. Other commonly used values: 0.32, 0.35, 8.32, 8.35.
Edit the file /etc/ppp/chap-secrets and replace its contents with the following:
# Secrets for authentication using CHAP
# client server secret IP addresses
user@domain * password
Now put the same contents in /etc/ppp/pap-secrets.
Don't forget: You will need to replace "user@domain" with your ADSL username and "password" with your ADSL password.
Note: At this point your ADSL modem should be unplugged from the computer.
Load the USB and Speedtouch kernel modules with these commands:
/sbin/modprobe usb-uhci
/sbin/modprobe speedtch
Mount the USB device filesystem with this command: mount none /proc/bus/usb -tusbdevfs
Start the Alcatel management application with this command: /usr/sbin/mgmt
Plug the ADSL modem into a USB port and wait a few seconds. It might be an idea to have a second terminal open watching /var/log/messages so you can see when the modem is initialized, which will look like this:
Speedmgmt[2074]: Modem initialised at 576 kbit/s downstream and 288 kbit/s upstream
Caveat: Some people have reported that plugging the modem in immediately before running the mgmt application works and can sometimes work better than plugging it in afterward.
Once you have connected successfully, you might like to experiment with the sequence in which you perform the Final configuration. It is possible (and has been reported a number of times) to leave the modem plugged in continuously if you load the modules/apps in the correct order.
If all of the software is installed and configured correctly, you should be able to initiate your ADSL connection with the command: pppd
Again, it would be useful to watch /var/log/messages so you can read pppd's output. Ideally you will connect, authenticate and be on the Internet. At this point you are on your own.
Assuming everything works you should see output from pppd similar to the following:
Mar 22 23:54:42 zanshin pppd[2076]: Plugin /usr/lib/pppd/plugins/pppoatm.so loaded.
Mar 22 23:54:42 zanshin pppd[2076]: PPPoATM plugin_init
Mar 22 23:54:42 zanshin pppd[2076]: PPPoATM setdevname_pppoatm
Mar 22 23:54:42 zanshin pppd[2076]: PPPoATM setdevname_pppoatm - SUCCESS
Mar 22 23:54:42 zanshin pppd[2077]: pppd 2.4.0b1 started by root, uid 0
Mar 22 23:54:42 zanshin pppd[2077]: Using interface ppp0
Mar 22 23:54:42 zanshin pppd[2077]: Connect: ppp0 <--> 0.38
Mar 22 23:54:45 zanshin pppd[2077]: local IP address xxx.xxx.xxx.xxx
Mar 22 23:54:45 zanshin pppd[2077]: remote IP address yyy.yyy.yyy.yyy
The management application will most likely make your computer freeze when you try to reboot. There is a possible workaround for this - when your machine reboots, kill pppd, then mgmt.
As-is, a 2.4.2 or below kernel will crash if you try to use the Alcatel driver with an SMP build of the kernel. A patch is available that will fix this, from http://sourceforge.net/project/showfiles.php?group_id=23818
Version 1.1.3 - 16/06/01
Removed instructions for out-of-date combined kernel patch.
(now replaced with instructions for using the official
SpeedTouch and SARlib tarballs).
Version 1.1.2 - 05/04/01
Added mention of SMP patch
Version 1.1.0 - 25/03/01
Converted to Docbook for better presentation
Version 1.0.3 - 24/03/00
Merged some changes from Giles Coochey
regarding non-RedHat distributions
Added link to French translation
(courtesy of Vincent Besson)
Some more minor tweaks
Version 1.0.2 - 23/03/00
Minor spelling tweaks from Bart King
Version 1.0.1 - 23/03/00
Some minor tweaks
Version 1.0 - 23/03/00
Initial release
Many thanks to all the people who send me ideas, corrections and additions for this HOWTO.
Special thanks must go to Telsa Gwynne for her outstanding help in the conversion of this document from a feeble HTML file to a glorious, spangly Docbook SGML file.