Table of Contents
3COM OfficeConnect on Linux
The exact name is 3com OfficeConnect 11Mbps Wireless LAN CardBus PC Card. It's an 32Bit cardbus card and the model number is 3CRSHPW796. A label on the card says its Version 1.
Because this is cardbus card and not a simple PC card it does not show up whith cardctl ident
- instead it is handled by hotplug and gets registered as PCI device. lspci
has something to tell:
0000:01:00.0 Network controller: 3Com Corporation 3CRSHPW796 [OfficeConnect Wireless CardBus] (rev 15) Subsystem: 3Com Corporation 3CRSHPW796 [OfficeConnect Wireless CardBus] Flags: medium devsel, IRQ 9 I/O ports at 4000 [size=256] Memory at 10800000 (32-bit, non-prefetchable) [size=1K] Expansion ROM at 10400000 [size=128K] Capabilities: [c0] Power Management version 2
General Setup
I'll use a vanilla Kernel 2.4.26 from www.kernel.org with PCMCIA and Wireless LAN support. In userspace I use the latest pcmcia-cs
(3.2.5-7), hotplug
(0.0.20040329-11) and wireless-tools
(26+27pre22-1) packages from Debians unstable branch. Everything is done on my Fujitsu-Siemens Lifebook.
ADMtek Driver
There is some info at http://www.espina.info/papers/officeconnect/ stating the card uses an ADMtek chipset. The page describes how to run this card with the half propritary driver provided by ADMtek so I tried that first. You need a patch from this site and the sources from www.admtek.com.tw but I couldn't reach their server . However I found a copy here (or through cache). So here is what I did following the instructions on the mentioned page.
$> wget http://www.latinsud.com/adm8211/ADM8211_src_105.tar.gz $> wget http://www.espina.info/papers/officeconnect/ADM8211_src_105.patch $> tar -xzvf ADM8211_src_105.tar.gz $> cd ADM8211 $> patch -p0 < ../ADM8211_src_105.patch #> ln -s /usr/src/linux /usr/src/linux-2.4 $> make #> cp 8211.o /lib/modules/`uname -r`/pcmcia/ #> depmod -a
The depmod
returns an unresolved symbols
error but adding the following to /etc/pcmcia/local.conf
gave me a new eth1
device:
device "8211" class "network" module "8211" card "3Com Corporation" manfid 0x10b7,0x6000 bind "8211"
Even the dmesg
output looked fine:
cs: cb_alloc(bus 1): vendor 0x10b7, device 0x6000 PCI: Enabling device 01:00.0 (0000 -> 0003) ADM8211 Linux driver version 1.05 (June 24, 2003) PCI: Setting latency timer of device 01:00.0 to 64 8211: Hardware Address 00:0B:AC:E6:9C:D8, IRQ 9. eth1: ADMtek Wireless rev 21 at 0x4000
Everything looked good but setting the ESSID with iwconfig eth1 essid “foo”
failed. There is no error message but the ESSID gets not set. Some googling brought up this post saying the driver does not work with newer Kernels. Doh!
GPL Driver
Luckily there is a GPL'd driver available at http://aluminum.sourmilk.net/adm8211/ - it is very new and should be considered as beta. It is developed for the 2.6.x series Kernel but the INSTALL file says it works with 2.4.x, too. So lets try:
$> wget adm8211-20040711.tar.bz2 $> tar -xjvf adm8211-20040711.tar.bz2 $> cd adm8211 $> make #> make install
Be sure to delete the 8211.o
module if you tried the factory driver before. Then insert the card and run dmesg
to check what happens:
cs: cb_alloc(bus 1): vendor 0x10b7, device 0x6000 PCI: Enabling device 01:00.0 (0000 -> 0003) adm8211: Copyright 2003, Jouni Malinen <jkmaline@cc.hut.fi>; Copyright 2004, Michael Wu <flamingice@sourmilk.net> adm8211: release 20040711 PCI: Setting latency timer of device 01:00.0 to 64 eth1: EEPROM type: 93C66 eth1: RFtype=1 BBPtype=1 Specific BBP=0 Transceiver=0 eth1: Channel range: 1-11 eth1: hwaddr 00:0b:ac:e6:9c:d8, IRQ 9, Rev 0x15, PCI ID: 0x82011317, mem @0x10800000 (len=0x400)
Looks nice Lets get it up:
#> iwconfig eth1 essid "MeinKleinesWLAN" key restricted 's:13chars ASCII' mode Managed #> dhclient eth1
Did it work? Well for me it did . 1:0 for open source
3com Driver
I just discovered that 3com it self provides a linux for the card at their support page. It looks a lot like the ADMtek driver but unlike the above mentioned driver it works
The setup is easy. Get the driver from the support site, unpack compile and install:
$> tar -xzvf 3CRSHPW796.tar.gz $> cd source $> make #> cp adm8201.o /lib/modules/`uname -r`/kernel/drivers/net/wireless/ #> modprobe -a
Running depmod
prints an Unresolved Symbols error, but inserting the card loads the driver:
cs: cb_alloc(bus 1): vendor 0x10b7, device 0x6000 PCI: Enabling device 01:00.0 (0000 -> 0003) PCI: Setting latency timer of device 01:00.0 to 64 eth1: EEPROM type: 93C66 eth1: RFtype=1 BBPtype=1 Specific BBP=0 Transceiver=0 eth1: Channel range: 1-11 eth1: hwaddr 00:0b:ac:e6:9c:d8, IRQ 9, Rev 0x15, PCI ID: 0x82011317, mem @0x10800000 (len=0x400)
Again setting your WLAN parameters and getting an IP via DHCP is just two commands away:
#> iwconfig eth1 essid "MeinKleinesWLAN" key restricted 's:13chars ASCII' mode Managed #> dhclient eth1
Nice. Now you have two different drivers to choose from for this card.