This guide is for setting up a USB ADSL modem with the AccessRunner driver (Connexant AccessRunner chipsets) under Ubuntu 6.06 (Dapper Drake).
USB is far from the ideal medium for network access, if you can get your hands on an ethernet modem you may save yourself some trouble. If you have a modem that can connect both via USB and ethernet you should use the ethernet connection.
Compatible modems : Conexant ADSL modem, HAMLET 640, Conexant ADSL modem (Hasbani project), AusLinx AL-2006, Crypto F200, ACORP Sprinter@ADSL USB, Amigo HMX-CA85UR-K8, Digicom Michelangelo Usb C, Origo ASU 8000, Atlantis Pocket USB ADSL Modem (A01-AU2), Atlantis I-Storm USB (A01-AU1), Trust Speedlink 235A Light System ADSL Module, Billion BIPAC-7000, Olitec ADSL modem version 2, Olitec ADSL modem version 3, Trust/Amigo Technology Co. AMX-CA86U, Zoom 5510, Draytek Vigor 318, ZyXEL 630-C1 aka OMNI ADSL USB (Annex A), ZyXEL 630-C3 aka OMNI ADSL USB (Annex B), Aethra Starmodem UM1020, Netopia Cayman. (Not all of these modems have been tested, to see which ones are known to work see http://accessrunner.sourceforge.net/modems.shtml)
Luckily, the drivers for the AccessRunner modems are as of Ubuntu 6.06 (Dapper) in the kernel. To use AccessRunner-based modems however, you will also have to install your modem's firmware.
The firmware of a modem is like a small OS that it runs. This deals with low-level stuff that are absolutely essential to get the modem working. So, unfortunately, this step cannot be skipped. The firmware provided by Conexant is under rather restrictive terms and its redistribution is not allowed. You will therefore have to extract the firmware from the CD that came with your modem.
To begin, you need the right tool to do this. This can be obtained directly from the CVS (http://sourceforge.net/cvs/?group_id=47406) of the AccessRunner homepage (see bottom of this page) or you can use the package that Nicholas Wheeler volunteered to create. The latter can be found here : http://revu.tauware.de/details.py?upid=2426.
Unless you have a reason to, it's a good idea to install Nicholas' package. Under 6.06, it can be installed using Gdebi. Instructions from installing from CVS can be found on the AccessRunner homepage (also at http://ubuntuforums.org/showthread.php?p=2348388).
Now, to find the firmware. One way to do this quickly is to use the drivers provided by the manufacturer of your modem on their website (yes, the windows drivers). Another way is to look for them in the CD that came with the modem. In both cases, we expect the correct filename to be CnxEtU.sys. In the CD that came with my modem, the path was: /media/cdrom1/driver/Wan/CnxEtU.sys. I had a /media/cdrom1/driver/Lan/CnxEtU.sys, but the two files were identical.
To extract the firmware:
cp /media/cdrom1/driver/Wan/CnxEtU.sys ~/ cxacrufw-extract ~/CnxEtU.sys ~/cxacru-fw.bin sudo cp ~/cxacru-fw.bin /lib/firmware
Make sure that the firmware is installed as /lib/firmware/cxacru-fw.bin or else the modem won't work.
The modem itself should be working now. Plug it in and the red light on the modem should begin to blink - it should stop a few seconds after plugging the modem in. If the red light never begins to blink, you probably did something wrong related to the firmware.
The modem driver is a little bit problematic with hibernation (and maybe sleep as well). After resuming, one has to reload the driver for the modem or else the system will be very annoying to work with. To do this, after you resume do:
sudo rmmod cxacru sudo modprobe cxacru
There is an open bug about this here : http://launchpad.net/bugs/36353
* http://accessrunner.sourceforge.net - AccessRunner driver homepage.