Date: Wed, 24 Nov 2004 15:55:53 -0500 To: jsun@junsun.net Subject: firmware success with hostap, Linksys WPC11v3, and debian sarge From: Daniel Kahn Gillmor firmware success with hostap, Linksys WPC11v3, and debian sarge --------------------------------------------------------------- thanks a ton for yer howto at http://linux.junsun.net/intersil-prism/ it made things clear for me, and i managed to flash my card up to a more recent version, though i wasn't able to install any volatile RAM firmware successfully. my card is an old Linksys WPC11v3: $ /sbin/cardctl ident 0 product info: "The Linksys Group, Inc.", "Instant Wireless Network PC Card", +"ISL37300P", "RevA" manfid: 0x0274, 0x1613 $ i had it working ok previously under debian sarge with kernel-image-2.4.27-1-686 and kernel-pcmcia-modules-2.4.27-1-686, using the orinoco_cs module. orinoco_cs.o was getting loaded by cardmgr because i had added the following clause to /etc/pcmcia/config-2.4: card "Linksys WPC11 11Mbps 802.11b WLAN Card Rev A" manfid 0x0274, 0x1613 bind "orinoco_cs" it was reporting (via the orinoco_cs driver) station firmware v1.4.2: kernel: hermes.c: 4 Dec 2002 David Gibson kernel: orinoco.c 0.13d (David Gibson and +others) kernel: orinoco_cs.c 0.13d (David Gibson and +others) kernel: eth1: Station identity 001f:0002:0001:0004 kernel: eth1: Looks like an Intersil firmware version 1.4.2 kernel: eth1: Ad-hoc demo mode supported kernel: eth1: IEEE standard IBSS ad-hoc mode supported kernel: eth1: WEP supported, 104-bit key kernel: eth1: MAC address 00:06:25:AC:6D:84 kernel: eth1: Station name "Prism I" kernel: eth1: ready kernel: eth1: index 0x01: Vcc 5.0, irq 3, io 0x0100-0x013f one of the things which confused me about the whole process is that it wasn't clear initially that i needed to be using the hostap kernel module instead of the orinoco_cs module. Of course, with the orinoco_cs module loaded, i couldn't get any report about the NIC ID at all. $ sudo hostap_diag eth1 Host AP driver diagnostics information for 'eth1' ioctl[PRISM2_IOCTL_HOSTAPD]: Operation not supported Could not communicate with the kernel driver. $ the sarge 2.4.27 pre-built kernel packages don't have hostap.o included by default. so my first step was to install the hostap module and utilities (and the kernel source and packaging utilities): $ sudo apt-get install hostap-source hostap-utils kernel-source-2.4.27 +kernel-package then i built the modules: $ cd ~/src $ tar xjf /usr/src/kernel-source-2.4.27.tar.bz2 $ tar xzf /usr/src/hostap-source.tar.gz $ cd kernel-source-2.4.27 $ MODULE_LOC=~/src/modules make-kpkg --rootcmd fakeroot --append-to-version +-1-686 --added-modules hostap-source modules_image $ then i installed the modules: $ sudo dpkg --install +~/src/hostap-modules-2.4.27-1-686_10.00.Custom+0.1.3-3_i386.deb $ then i restarted the pcmcia card manager: $ sudo /etc/init.d/pcmcia restart $ which gave me this information in /var/log/syslog: kernel: wlan0: NIC: id=0x801b v1.0.0 kernel: wlan0: PRI: id=0x15 v1.1.0 kernel: wlan0: STA: id=0x1f v1.4.2 i downloaded new firmware and verified that it was compatible: $ mkdir ~/src/prism-firmware $ cd ~/src/prism-firmware $ wget http://www.red-bean.com/~proski/firmware/1.7.4.tar.gz $ tar xzf 1.7.4.tar.gz $ sudo prism2_srec wlan0 1.7.4/pk010101.hex 1.7.4/sf010704.hex $ when that returned with OK, i went ahead and flashed the firmware: $ sudo prism2_srec -f wlan0 1.7.4/pk010101.hex 1.7.4/sf010704.hex $ which caused the following to be emitted in /var/log/syslog: kernel: wlan0: NIC: id=0x801b v1.0.0 kernel: wlan0: PRI: id=0x15 v1.1.1 kernel: wlan0: STA: id=0x1f v1.7.4 kernel: wlan0: Card initialized successfully after flash download the card seems to work just fine with its new firmware! unfortunately, i then tried to get some of the volatile firmware to load, without success: $ cd ~/src/prism-firmware $ wget http://www.red-bean.com/~proski/firmware/1.8.3.tar.gz $ tar xzf 1.8.3.tar.gz $ sudo prism2_srec wlan0 1.8.3/rf010803.hex srec summary for rf010803.hex Component: 0x001f 1.8.3 (station firmware) Verifying update compatibility and combining data: Could not find data position for plugging PDR 0x0413 at 0x0000118a (len=2) PDR 0x0413 is not in wlan card PDA and there is no default data. Ignoring plug +record. OK. $ sudo prism2_srec -r wlan0 1.8.3/rf010803.hex srec summary for rf010803.hex Component: 0x001f 1.8.3 (station firmware) Verifying update compatibility and combining data: Could not find data position for plugging PDR 0x0413 at 0x0000118a (len=2) PDR 0x0413 is not in wlan card PDA and there is no default data. Ignoring plug +record. OK. Downloading to volatile memory (RAM). ioctl[PRISM2_IOCTL_DOWNLOAD]: Operation not permitted Download failed! $ i'm not sure why the volatile RAM loading isn't working, but my main goal was to upgrade the non-volatile components anyway, so i'm satisfied for now: $ sudo hostap_diag wlan0 Host AP driver diagnostics information for 'wlan0' NICID: id=0x801b v1.0.0 (PRISM III PCMCIA (SST parallel flash)) PRIID: id=0x0015 v1.1.1 STAID: id=0x001f v1.7.4 (station firmware) $ thanks again for your help in pulling all this information together. it made things clearer for me. regards, --dkg