Cayman 3342

This document describes how to get the Netopia Cayman 3342 ADSL/USB-Modem to work with Linux.
It's a cheap modem that Swisscom delivered in the past to new DSL customers at no costs. Since it's also rather small, you can also call it a "portable DSL modem" ;-) The disadvantage is that internet connections with this modem have much higher latency than ethernet-based solutions, since USB itself has some latency.

Getting the firmware

Because of copyright reasons, the firmware can not be found as legal download on the internet. But there exists a small C program cxacru-fw.c which can extract the firmware from the windows driver.
However, I needed quite a lot of time finding out which driver version works, because most don't.
Extract the firmware from CnxEtU.sys (md5 28775c3f6df8c1f364f67d7121191000) this can be found in the "atlantis" package, 1863_DriverWinMultiV099.085WAN.zip (md5 ab9e2f537113933018f91ceade95573a)
Once you have extracted the firmware successfully, name it "cxacru-fw.bin" and placed where ever hotplug looks for it (usually /lib/firmware/, but it differs for some distributions).
Just for reference, my cxacru-fw.bin has the md5sum 064fc2d5e45b22d5f9ab457a130845c9

Installing the kernel driver

You can get the kernel driver from the accessrunner (this is the name of the chipset of this modem) homepage http://accessrunner.sourceforge.net/ I succeeded only with the version from CVS, because in other packages the VID and PID where not yet encoded in.
Unpack it to linux/drivers/usb/atm/
This is not needed any more with recent kernels (>2.6.13.4 or so)

Kernel configurations

Kernel config (after having patched "drivers/usb/atm/")
CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=m In device drivers → Networking support → Networking options: CONFIG_ATM=m # CONFIG_ATM_CLIP is not set # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set In device drivers → USB support → USB DSL modem support: CONFIG_USB_ATM=m # CONFIG_USB_SPEEDTOUCH is not set CONFIG_USB_CXACRU=m # CONFIG_USB_XUSBATM is not set In device drivers → Networking support: CONFIG_PPP=m # CONFIG_PPP_MULTILINK is not set # CONFIG_PPP_FILTER is not set CONFIG_PPP_ASYNC=m # CONFIG_PPP_SYNC_TTY is not set CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m CONFIG_PPPOE=m # not needed if rp-pppoe is used CONFIG_PPPOATM=m # not needed if rp-pppoe is used

br2684ctl

You also need to install "br2684ctl" from http://packages.debian.org/unstable/net/br2684ctl which needs libatm (see http://linux-atm.sourceforge.net/ for linux-atm-2.4.1.tar.gz) which is a pain in the arse to build
You can also download here, if you wish:

ADSL Tools

To make it easy, i suggest installing rp-pppoe from http://www.roaringpenguin.com/

ADSL configuration

You can run "adsl-setup" with your provider parameters. I am with Bluewin in Switzerland, so my configuration is:
ETH="nas0" USER="<your_username>@bluewin.ch" DEMAND=no DNSTYPE=NOCHANGE # this is strange, but it works anyway PEERDNS=no DNS1= DNS2= DEFAULTROUTE=yes CONNECT_TIMEOUT=0 CONNECT_POLL=2 ACNAME= SERVICENAME= PING="." PIDFILE="/var/run/adsl.pid" SYNCHRONOUS=no CLAMPMSS=no LCP_INTERVAL=20 LCP_FAILURE=3 PPPOE_TIMEOUT=80 FIREWALL=STANDALONE LINUX_PLUGIN= PPPOE_EXTRA="" PPPD_EXTRA=""

Start the connection !

$ modprobe cxacru # Now plug in the modem, wait for the DSL led to light on steadily $ modprobe br2684 $ br2684ctl -b -c 0 -a 8.35 # create nas0 dev with VPI=8, VC=35 $ adsl-start
Note that if a default route is already set, f.e. because you have a configured eth0 interface, pppd may fail to reset it. In that case, do an "ifconfig eth...down" before launching "adsl-start". I use "quickswitch" to run all the above commands as execpre/post directives (on two lines only without line feeds):
execpre=[ "/sbin/ifconfig | grep eth0" ] && /sbin/ifconfig eth0 down; [ "/sbin/ifconfig | grep eth1" ] && /sbin/ifconfig eth1 down execpost=/sbin/modprobe br2684; /sbin/br2684ctl -b -c 0 -a 8.35; /usr/sbin/adsl-start

Note

The USB status LED never lights on, the DSL status LED stays always on once the DSL line is connected.