Linux: Networking for Your Office

Web Supplement: Using DSL Modems with Linux
by Rod Smith,

Using DSL Modems with Linux

Linux: Networking for Your Office includes relatively little in the way of coverage of DSL and cable modems. This is because, at the time I wrote the book, there was very little to be said about them, other than the usual for connecting a computer to an Ethernet network. There have been two developments in the months since I finished writing the book, however:

Both of these developments require further comment and pointers than I provided in the book. (In case you're wondering, DSL is Digital Subscriber Line, a method for connecting to the Internet at high speed.)

Internal DSL Modems

Internal DSL modems are network cards that "speak" the low-level DSL protocols directly. This type of hardware, like any hardware, requires drivers in Linux in order to function. Unfortunately, at the moment, Linux drivers for internal DSL modems are virtually nonexistent. Therefore, in most cases you'll need to acquire an external DSL modem which connects to the computer via an Ethernet line. You can use such a DSL modem with Linux and configure Linux just as you would for any other Ethernet network (unless your ISP uses PPPoE or some even more bizarre protocol; see below).

I have heard of one Linux driver for an internal DSL modem: The Diamond 1MM internal. This board apparently uses an SMC chipset, and it works with a modified epic100.c driver. (The preceding URL seems to be broken, as of 6/4/2000; here's another one.) The comments in the source code indicate that you must compile the modified driver as a module and load it with the options=1 option. Note that I have not tried this procedure, because I don't own the requisite hardware. Therefore, the only advice I can offer is to read the comments at the start of the source code.

If you currently have an unsupported internal DSL modem and want to use Linux on the computer, try to arrange with your ISP to exchange the board for an external model that uses an Ethernet interface (external USB models are currently unsupported under Linux). If your ISP can't or won't arrange such an exchange, you may need to buy a new external product yourself. I recommend you consult with your ISP concerning compatible equipment, because there are several different varieties of DSL, so a DSL modem that works on one network may be useless on another. If your ISP is particularly obstinate, at least check the DSL equipment compatibility matrix at DSL Reports and/or post a message to the comp.dcom.xdsl newsgroup asking for advice. You may be able to pick up certain models of DSL modem on auction web sites like eBay for $100 or so.

If you hear of any internal DSL modem that's supported by Linux, please drop me a line with the information, and I'll mention it here.

USB DSL Modems

Like internal DSL modems, USB DSL modems require special drivers to function in Linux. Linux's normal USB drivers are not sufficient, at least not as of the early 2.4.x kernels. You will need the standard kernel USB support, but you'll also need a driver for your specific model of modem.

As of June of 2001, I know of only one USB DSL modem for which Linux drivers exist: The Alcatel Speed Touch USB. At this time, the drivers aren't part of the standard kernel; you must obtain them from Alcatel. As with internal DSL modems, I have no experience with the Alcatel SpeedTouch USB, so I can't comment on the quality of these drivers from personal experience. I have heard, however, that the 1.3.4 drivers for Linux are configured to compile with 686 optimizations by default, and the only way to change this is to manually edit the configuration script. Even doing that won't fix the binary-only support programs, so these drivers won't really work on anything less than a Pentium Pro.

If you have some other USB DSL modem, you can try asking the manufacturer for drivers, or check the Linux USB Web site for information on open source driver development that might help get the device working. If you have no luck, you may need to buy an Ethernet-interfaced DSL modem and sell the USB model to recover most of the cost.


The DSL newsgroup saw quite a furor when PPPoE was first introduced. The problem is that PPPoE is a brand-new protocol -- it was officially approved after I'd finished writing my book, although there were a small number of DSL ISPs using pre-release versions of PPPoE as I was writing it. Fortunately, the Linux community has responded by producing several PPPoE implementations. These include:

In addition to the links to specific patches and utilities, you may want to check out a few supplementary sites, which contain experiences of users or instructions from specific ISPs:

With any luck, you should be able to find the information you require somewhere amidst these links. It's hard for me to give a recommendation on where to begin, because I have no first-hand experience with PPPoE. If you see your ISP's name mentioned in the preceding comments, though, start with the associated link. If not, the Roaring Penguin client appears to be the most popular and well-liked of the available solutions. The Salim and Ostrowski drivers reportedly add the least CPU overhead to your connection. I'd save the Stras client for a final attempt to get things working, because it appears to be less reliable on some systems and adds more CPU overhead.

Another approach is to use a broadband router that supports PPPoE. These devices are essentially specialized computers that sit between your computer (or your entire local network) and the DSL modem. The broadband router initiates the PPPoE link, then uses NAT (aka IP masquerading) to share that connection with your local computers. Your local computers use conventional static IP or DHCP for configuration. Practically Networked has reviews of several such devices.

A few DSL modems include router functionality built-in, and some of these can handle PPPoE. These tend to be high-end devices sold by ISPs with business accounts, but you can buy one yourself if you prefer. ZyXEL makes several such products, but they're not the only such manufacturer.

If you have further information, including additional software or hardware solutions or reports of success using any of the options I've mentioned here, please e-mail me with details so I can make appropriate updates to this web page.

Copyright © 1999, 2000 by Rod Smith,

Return to main page.