User Tools

Site Tools


wlan:3comofficeconnect

3COM OfficeConnect on Linux

3com-front.jpg 3com-back.jpg

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 :-D. 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.

wlan/3comofficeconnect.txt · Last modified: 2007/03/27 14:54 by andi