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 (IA32 only) 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.
The resulting output should contain the lines similar to:
Newer linux distributions may have an updated PCI device database and hence the output would be similar to:
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.
This driver includes object code (dpcontroller.o) provided by the manufacturer that was compiled for IA32, so this driver will not work on any 64 bit versions of linux.
1. Kernel and gcc compatibility
The only kernels I have test and will test are those released from kernel.org (tested 2.4.19, 2.4.21, 2.4.23, 2.4.29, 2.6.9, 126.96.36.199, 2.6.20). 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 will not necessarily answer emails regarding kernels from third parties, they are modified with their own patches and it is often not trivial to find out what changes they have made. You may find some contributed distribution specific information in the distribution section. You may check your kernel version with:
I have tested the installation process with older (gcc 2.96) and newer (gcc 3.2.2, gcc 3.3.3) 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 188.8.131.52.18 20030206). You may check your gcc version with:
You may check your binutils version with:
Note: There are unconfirmed reports that this does not work with gcc 3.4 (distributed with Fedora Core 3)
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:
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:
Important note: Linux 2.6.* users should note that their kernel must be compiled without the "use register arguments" (CONFIG_REGPARM) option. Newer kernels (at least 2.6.20 onwards) no longer allow you to to turn off this option in the config file so you will have to edit the kernels main Makefile manually and remove this option! You will have to find the line that sets CFLAGS and remove the otions -mregparm=3 -freg-struct-return.
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:
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:
On some more recent linux distributions this package will not compile, 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:
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:
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:
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:
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:
The /etc/ppp/chap-secrets file contents:
7. Start ADSL connection to the internet
Finally to start your ADSL connection type:
Any error/status messages will appear in the global log file /var/log/messages. If all is OK you should have log lines like:
You can check on the status of your modem with the following command:
The output of this will let you know if your line is synchronised and give you further information and statistics.
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.
Some or all of these resources are required: