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