Conexant PCI ADSL modem drivers
For Linux 2.4.x kernels / Debian woody (and sarge)

Note for sarge users: This mod was done before sarge became stable and has only been compiled/installed under woody, but the machine was later dist-upgraded to sarge without problems. If you have problems using this under sarge please let me know.

This is a modified version of the software available from http://patrick.spacesurfer.com/linux_conexant_pci_adsl.html for operating a Conexant "AccessRunner" PCI card ADSL modem (device ID 1610 / 1611) under Linux. The original appears to be written for RedHat. I use Debian, so some slight mods were required, mainly to pathnames, but also to avoid compilation errors (Debian woody, gcc 2.95.4) and unresolved symbol errors (kernel 2.4.24) (haven't tested with other gcc or kernel versions).

The biggest problem was that the driver depends on a proprietary binary object module for which the source code is not available (BOO HISS!) A binary is better than nothing, but it means you can't come up with a proper fix for this problem: it gave rise to "unresolved symbol" errors for printk, sprintf and vsprintf. I got around this by using ed to edit the binary module to change the symbols to pruntk, spruntf and vspruntf, then writing a GruesomeHack.c defining pruntk, spruntf and vspruntf functions as calls to the real printk, sprintf and vsprintf. Vile, but it works. Presumably it is a compiler version problem; I haven't tried compiling under the sarge version of gcc so I don't know if it's still necessary, but the hack should still work either way.

There is also a bug somewhere in closing the connection. If the peer drops the connection I find that attempts to reconnect occasionally give rise to "already in use" errors on (0,38) and the only way out is a hard reset. Since (a) this happens rarely, (b) it happens more rarely under sarge, (c) I do not want to take the connection down as would be required to investigate it and (d) the box with the card is a dedicated firewall that won't screw up any internal services if I reset it, I haven't even begun to come up with a Gruesome Hack for this. Sorry.

The software includes an /etc/init.d/cnxadslctl script to load and unload the modules. I have left it up to the user to install symlinks in /etc/rc?.d or /etc/ppp/ip-up.d according to when you want to start it. There are also sample files for /etc/ppp/peers/adsl (ie. a provider named "adsl") and /etc/ppp/chap-secrets.

For Debian woody, backports of ppp, ppp-dev, libatm1, libatm1-dev and atm-tools will be needed, from backports.org. Add to your /etc/apt/sources.list the line

deb http://www.backports.org/debian/ stable ppp

and apt-get install them. AFAIK the sarge versions of these packages are OK.

I recommend you read the original instructions provided on http://patrick.spacesurfer.com/linux_conexant_pci_adsl.html (if that link dies, try here for a local snapshot of the page as it was when I read it; note that since it is simply a local snapshot of the page, the links on it may not work) and also the various documentation files in the tarball, but note that the backports mentioned above obviate the need for any non-Debian packages or patches mentioned in the original instructions.

You will need to ensure that your kernel is compiled with CONFIG_PPP, CONFIG_ATM and CONFIG_PPPOATM set - note that ATM is an "experimental" kernel option.


Download the tarball: CnxADSL-6.1.2.007-PIM-2-Debian-Pigeon.tar.bz2


Back to Pigeon's Nest


Be kind to pigeons




Valid HTML 4.01!