Note: this is a snapshot of the original page taken at the time I did the Debian conversion. The links on it haven't been altered and probably won't work. It is provided purely in case of emergency (ie. the original page going down) so if you can visit the original page you should do so. Pigeon


Personal home page for:
Patrick Mackinlay
Home | Contact |

Linux installation help for PCI ADSL modems based on the conexant chipset

PCI ADSL modems based on the conexant chipset are sold by many online retailers such as dabs. This document describes how to install and setup this modem on GNU/linux for use with ADSL provided by BT in the UK, however this should also serve as a guide for other ADSL providers that use PPP over ATM.
These instructions should be distribution independant, for notes regarding particular distributions see the distribution section.
Once you have installed the actual PCI card in your computer you may check if you have the correct chipset with the following UNIX command:

/sbin/lspci

The resulting output should contain the lines similar to:

00:0b.0 System peripheral: Unknown device 14f1:1610 (rev 01)
00:0b.1 ATM network controller: Unknown device 14f1:1611 (rev 01)

Newer linux distributions may have an updated PCI device database and hence the output would be similar to:

00:0b.0 System peripheral: Conexant ADSL AccessRunner PCI Arbitration Device (rev 01)
00:0b.1 ATM network controller: Conexant AccessRunner PCI ADSL Interface Device (rev 01)

Important general considerations

There are many driver versions, ppp over atm versions and atm utility versions on the internet. If you are using the instructions on this site then you must use the source code on this site and you must remove any previous installation of the software. Do not expect any help from me if you do not use the source code listed in the resources section of this site and whose link anchor is referenced with the text download from this site. This installation procedure is not for novices! If you are a novice I suggest you find a GNU/linux distribution that supports your adsl modem.

1. Kernel and gcc compatibility

If you are using a kernel released from kernel.org then in order to use the conexant modem you will need to have a 2.4.x (tested 2.4.19, 2.4.21 and 2.4.23) linux kernel. If you are using a kernel provided by a vendor such as RedHat or SuSE you will need the kernel sources, please note that I have not tested any kernels other than those released by kernel.org. You may check your kernel version with:

uname -r

I have tested the installation process with older (gcc 2.96) and newer (gcc 3.2.2) gcc versions and they both work. If your system uses a gcc version newer than 3 then you will need a newer version of binutils (tested 2.13.90.0.18 20030206). You may check your gcc version with:

gcc -v

You may check your binutils version with:

ld -v

2. Kernel modules required

Your kernel will need to support the functionality listed below, if it does not you will have to recompile your kernel. Required functionality:

Kernel configuration sectionDescription.config DefineStatusKernels
Networking optionsAsynchronous Transfer Mode (ATM)CONFIG_ATMOn2.4.*, 2.6.*
Network device supportPPP (point-to-point protocol) supportCONFIG_PPPOn2.4.*, 2.6.*
Network device supportPPP over ATMCONFIG_PPPOATMOn2.4.*, 2.6.*
Processor type and featuresUse register argumentsCONFIG_REGPARMOff2.6.*

Some of this support may be experimental so ensure you enable such drivers in the code maturity level options. If you choose to compile the above support as modules then the resulting module will be pppoatm.o and should be loaded at boot time with:

/sbin/insmod pppoatm

Note: Linux 2.6.* users should note that their kernel must be compiled without the "use register arguments" (CONFIG_REGPARM) option. This is an experimental option that will almost certainly never work reliably with this driver or any other driver that uses proprietary object code. Newer versions of Fedora and SuSE come with kernels that use this option, in these cases you will have to recompile the kernel.

3. Tools and libraries required

In order to compile the driver you will need the tools and libraries for ATM. This package is already present on your system if you have the file:

/usr/include/atm.h

If you already have this package it is suggested that you replace it with the version found on this site. You can install ATM for GNU/linux using the usual configure, make procedure, similar to:

bzip2 -d linux-atm-2.4.0.tar.bz2
tar xvf linux-atm-2.4.0.tar
cd linux-atm-2.4.0
./configure --prefix=/usr
make
make install

On some more recent linux distributions this package will not copmile, if this is the case and the kernel module does not compile then it is suggested that you replace the /usr/include/atm.h with the one used in your current kernel. You may do so by changing directory to the root of your kernel (usually /usr/src/linux) and typing:

mv /usr/include/linux/atm.h /usr/include/linux/atm.h.bak
cp include/linux/atm.h /usr/include/linux/atm.h

4. Compile and install the linux kernel driver

You will need to compile and install the pci conexant adsl GNU/linux driver. Firstly make sure you have your kernel sources in /usr/src/linux, if your sources are elsewhere then create a symbolic link. The commands below are for the 2.2.x and 2.4.x linux kernel versions, if you have a 2.6.x kernel you my try the version of the 2.6.x driver, but this is a test driver and you will have to change the commands below accordingly. If you download the driver from this site it may be compiled as follows:

bzip2 -d CnxADSL-6.1.2.007-PIM-2.tar.bz2
tar xvf CnxADSL-6.1.2.007-PIM-2.tar
cd CnxADSL-6.1.2.007-PIM-2
make
make install

This will create and install the kernel module and the init scripts. Depending on your GNU/linux distribution, you may also have to rebuild your module dependancies with:

/sbin/depmod -a

5. Compile and install PPP over ATM

You will need to compile and install PPP with the PPP over ATM plugin. If you download the PPP source from this site you may compile and install it as follows:

bzip2 -d ppp-2.4.0b2-patched.tar.bz2
tar xf ppp-2.4.0b2-patched.tar
cd ppp-2.4.0b2-patched
./configure --prefix=/usr
make
make install

6. Configure PPP to connect to your ADSL provider

In the directory /etc/ppp there are a number of files used to configure PPP, you will have to edit these files and put in the correct settings for your ISP. The following example configuration files work for ADSL provided via BT in the UK. The /etc/ppp/options file contents:

# Uncomment the following line if you have routed ADSL
#[IP address of router]:
# Uncomment the following line for debug information
#debug
passive
defaultroute
usepeerdns
noauth
name [Your user name]
user [Your user name]
plugin /usr/lib/pppd/plugins/pppoatm.so
# The following line is the [VCI].[VPI] number of your provider
0.38

The /etc/ppp/chap-secrets file contents:

# Secrets for authentication using CHAP
# client server secret IP addresses
[Your user name] * [Your password]

7. Start ADSL connection to the internet

Finally to start your ADSL connection type:

/etc/init.d/cnxadslctl start

Any error/status messages will appear in the global log file /var/log/messages. If all is OK you should have log lines like:

Mar 25 23:06:29 blackhole pppd[19440]: Plugin /etc/ppp/plugins/pppoatm.so loaded.
Mar 25 23:06:29 blackhole pppd[19440]: PPPoATM plugin_init
Mar 25 23:06:29 blackhole pppd[19440]: PPPoATM setdevname_pppoatm
Mar 25 23:06:29 blackhole pppd[19440]: PPPoATM setdevname_pppoatm - SUCCESS
Mar 25 23:06:29 blackhole pppd[19441]: pppd 2.4.0 started by root, uid 0
Mar 25 23:06:29 blackhole pppd[19441]: Using interface ppp0
Mar 25 23:06:29 blackhole pppd[19441]: Connect: ppp0 <--> 0.38
Mar 25 23:08:51 blackhole pppd[19441]: local IP address 213.253.36.17
Mar 25 23:08:51 blackhole pppd[19441]: remote IP address 217.41.128.64

You can check on the status of your modem with the following command:

/etc/init.d/cnxadslctl status

The output of this will let you know if your line is synchronised and give you further information and statistics.

Distributions

Below you can find a list of verified working distributions. However, all distributions should work if you compile everything from sources and follow all the steps in the above instructions to the letter.

VendorVersion information
RedHatVersion 9.0 works with 2.4.x kernel driver.
FedoraCore 2 works with the 2.6.x kernel driver but has some header file issues which can be fixed by following these notes.
Core 3 is known to work, however there may be some minor source code modifications required.
MandrakeVersions 10.0 and 10.1 work with the 2.6.x kernel driver and do not require steps 2, 3 and 5

Resources used

Some or all of these resources are required:

Resource nameSource website
Linux KernelLinux Kernel Archives
Tools and libraries for ATMATM on Linuxdownload from this site
Conexant PCI ADSL linux drivers (2.2.x and 2.4.x)download from this sitehistory
Conexant PCI ADSL linux drivers (2.6.x)download from this sitehistory
PPP with PPP over ATM pluginPPPoATM for linuxdownload from this site

Historic resources

Resource nameSource website
Older conexant PCI ADSL linux driversThe Mad House conexant driversdownload from this site

Other installation guides

  1. Conexant PCI ADSL modem installation guide for Fedora Core 3 systems. This site offers a complete guide on how to install the driver on FC3 using New Zeland telecom.
Contact MeDesigned for w3c compliance.Dec 10 2004