N.B. The driver described here won't work with Linux kernels prior to 2.6.10. If you need to get your modem to work with Linux 2.6.9 and earlier, please consult the older version of this site (in Spanish) or the alternative Francesco Zuliani's site http://www.zullinux.it/linux/accessrunner.html.
The driver exploits the usbatm
infrastructure included in
the recent kernels by Duncan Sands and David Woodhouse. This
infrastructure makes use of the observation made by Josep Comas that the
techique to pack the ATM cells into USB frames is rather generic, and the
corresponding code in the original driver for Alcatel SpeedTouch
USB ADSL modem can be reused by other drivers for various ADSL USB
modems. It exposes to the userspace a standard Linux ATM device, which can
be used in a variety of ways to connect to
the Internet, absolutely agnostic of the modem type. You can
monitor the state of your ATM stack by looking at /proc/net/atm/* files
and/or by using the diagnostic tools from the Linux-ATM software
package.
In addition, the driver can utilize the kernel firmware loader to upload the firmware to the modem once it's connected to the computer.
Until the driver is included in the Linux kernel distribution, you can download it here.
Since the driver for AccessRunner-based modems is developed within the
recently created usbatm
subsystem of the Linux kernel, it is
distributed as a whole drivers/usb/atm
kernel subtree.
The development version of the usbatm
subsystem is
available via anonymous CVS. To get them run
cvs -z9 -q -d :pserver:anoncvs:anoncvs@cvs.infradead.org:/home/cvs co usbatmand put the files under
drivers/usb/atm
in the kernel source
tree.
You need to set up the kernel source tree to build the kernel tailored
to your system. The details of this process are described elsewhere; here
is the list of configuration options you need to select to m
(module) or y
(built in) to include the support for the
AccessRunner-based ADSL modems:
Prompt for development and/or incomplete code/drivers (EXPERIMENTAL) ... Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) (ATM) ... Support for Host-side USB (USB) ... USB DSL modem support (USB_ATM) ... Conexant AccessRunner USB support (USB_CXACRU)
You'll probably need a lot more: the drivers for your USB host controllers, the networking options, etc. Please resort to the kernel documentation and your common sense.
Kernel firmware loader is provided by firmware_class
driver. Most distributions have it enabled in their kernel packages. Even
if yours doesn't, it will be automatcially included in the kernel build
when you select cxacru
driver.
When asked by the driver, the firmware loader calls out the
hotplug
system passing it the name of the requested fimware
file in an environment variable. Most distributions ship the
hotplug
package with support for the fimware loader included,
typically in /etc/hotplug/firmware.agent. You need to find out where your
hotplug
firmware agent looks for the firmware files (often
/lib/firmware), and put your firmware files
there.
For more information you are referred to the Linux Hotplug home page.
In a typical configuration, when the modem is connected to a USB port of
your computer, the hotplug
system will try to load the
appropriate driver, in this case cxacru
. The driver will
detect the need to load the firmware, and, if it finds one, will start
loading it. It will take a few tens of seconds. Then the modem should
start initiating the ADSL connection (ADSL LED blinks), and the driver
should create an ATM device handle, and you should be able to see its
status in /proc/net/atm/devices
and
/proc/net/atm/cxacru:X
, where X
is the ATM device
number your modem was assigned (most likely 0
).
Once the modem succeeds to establish the ADSL connection, the ADSL LED
will go permanently on, and your /proc/net/atm/cxacru:X
will
say "Line up". Then you can start initiating
internet connection.
Otherwise, if any of the above fails, feel free to request help at the mailing list.
Last update: Monday, 28-Feb-2005 00:32:47 UTC by roman_kagan