ZoomAir mini HOWTO Der Herr Hofrat v0.1, 21 Apr 2002 This HOWTO briefly describes how to setup ZoomAir wireless Lan with Linux and how to integrate it into your system setup. ______________________________________________________________________ Table of Contents 1. Copyright 2. Homepage 3. Introduction 4. Different types of adapters 4.1 PC-Cards 4.2 ISA-to-PCMCIA 5. Prerequisites 5.1 Tools you will need 5.2 Kernel and other packages 6. Basic Setup 6.1 Kernel configuration 6.2 PCMCIA configuration 6.3 Configuring linux-wlan-0.3.4: 7. Service Configuration 7.1 Configuration Files 7.2 Manual Configuration: 7.3 Setting up the crdmng: 8. Performance 9. FAQs/Wish list 10. Credits and Links ______________________________________________________________________ 1. Copyright: -------------- Copyright (c) 2002 Der Herr Hofrat , All rights reserved. This is free document; you can redistribute it and/or modify it under the terms of version 1.2 of the GNU Free Documentation License . 2. Homepage: ------------- You might want to check back to the ZoomAir-mini-HOWTO home-page at to see if there's a newer version around. Comments and feedback to Der Herr Hofrat 3. Introduction: ----------------- In this mini-howto the setup of a ZoomAir wireless Network is described This might also help for other cards but no checks to fit the documentation for other Cards was done (if you want them done, send me two cards ;). The system setup is one Access-point using the ZoomAir 4005 (ISA-to-PCMCIA adapter) + a ZoomAir 4001 (International edition of the ZoomAir 4000) and a ZoomAir 4001 in a CardBus Slot of a laptop (roming System). Feedback appreciated - send any comments/flames to Der Herr Hofrat der.herr@hofr.at - thanks. Any results on other setups than described here are most welcome. 4. Different types of adapters: ------------------------------- The ZoomAir Wireless Network Cards are available for laptops (obviously) and for desk-top systems via ISA-to-PCMCIA adapters. 4.1 PC-Cards: ------------- ZoomAir 4001 (international edition) PCMCIA type II PC card. Data-rate: 2Mbit Range : 300m (outdors this actually works) Chipset : 4.2 ISA-to-PCMCIA: ------------------ ZoomAir 4005 ISA-to-PCMCIA adapter, in which you then simply pulug in a second ZoomAir 4001 card - so the specs for that stay the same. Chipset : 5. Prerequisites: ----------------- Although most distributions support laptops by now the ZoomAir is not a device supported by the distros I checked (SuSE 7.0-7.3 RH 7.1-7.2) so asside from the obvious packages for PCMCIA support thes distros offer you need a few addtitional things. 5.1 Tools you will need: ------------------------ Development tools to compile the kernel - so install gcc, binutils, for compiling the kernel. Install the pcmcia packages that come with the distribution (so that the default setup for CardBus usage is available to modify - setting it up from scratch can be painfull). 5.2 Kernel and other packages: ------------------------------ linux-2.2.16.tar.bz2 pcmcia-cs-3.1.7.tar.gz linux-wlan-0.3.4.tar.gz 6. Basic Setup: --------------- The ZoomAir 400X is currently not supported by 2.4.X kernels - you will to resort to 2.2.X kernels for now. 6.1 Kernel configuration (Linux 2.2.16): ---------------------------------------- You can take a vanilla 2.2.16 from ftp.kernel.org/pub/linux/kernel/v2.2/ there are a number of patches that may or may not make sense for your setup a good hint at patches to apply are the ones found in distributions (check kernel-patches.tgz in the SuSE 7.0 distribution for a list of 2.2.16 patches that make sense) unpack the kernel source and set the link in /usr/src/linux to point to the location of your kernel tree - make shure that /usr/include/linux and /usr/include/asm are symbolik links to /usr/src/linux/include/linux and /usr/src/linux/include/asm respectively. use "make menuconfig" to configure your kernel as you need it - for our purposes here we only need the folowing settings as shown below. General setup ---> ... [*] Networking support ... Network device support ---> ... [ ] Wireless LAN (non-hamradio) ... Refere to the kernel documetnation for configuing and compiling the kernel 6.2 PCMCIA configuration: ------------------------- As most distributions contain pcmcia preconfigured I would recomend you grab the source rpm/deb/whatever from your distribution if its available as most of them contain distribution specific patches that can simplify your life. nb1:/usr/src/ # tar -xzf pcmcia-cs-3.1.7.tar.gz nb1:/usr/src/ # cd pcmcia-cs-3.1.17 nb1:/usr/src/pcmcia-cs-3.1.17 # make Pick one of the following targets: make config - configure and check system setup make oldconfig - reconfigure without prompting make all - build modules and programs make install - install modules and programs make clean - remove old binaries and dependency files nb1:/usr/src/pcmcia-cs-3.1.17 # make config -------- Linux PCMCIA Configuration Script -------- The default responses for each question are correct for most users. Consult the PCMCIA-HOWTO for additional info about each option. Linux source directory [/usr/src/linux]: The kernel source tree is version 2.2.16. The current kernel build date is Thu Apr 18 12:36:55 2002. WARNING: the source tree has a build date of Sat Jul 29 07:40:27 2000. Build 'trusting' versions of card utilities (y/n) [n]: Include 32-bit (CardBus) card support (y/n) [y]: Include PnP BIOS resource checking (y/n) [n]: The PCMCIA drivers need to be compiled to match the kernel they will be used with, or some or all of the modules may fail to load. If you are not sure what to do, please consult the PCMCIA-HOWTO. How would you like to set kernel-specific options? 1 - Read from the currently running kernel 2 - Read from the Linux source tree 4 - Set suse compile time Enter option (1,2 or 4) [2]: Module install directory [/lib/modules/2.2.16]: Kernel configuration options: Symmetric multiprocessing support is disabled. PCI BIOS support is enabled. Power management (APM) support is enabled. SCSI support is enabled. Networking support is enabled. Radio network interface support is enabled. Token Ring device support is enabled. Fast switching is disabled. Module version checking is disabled. /proc filesystem support is enabled. Maximum physical memory: 1GB It looks like you have a System V init file setup. X Windows include files found. Forms library not installed. If you wish to build the 'cardinfo' control panel, you need the Forms library and the X Windows include files. See the HOWTO for details. On a SuSE Linux the following packages must be installed: - xdevel (from serie x) - xformsd (from serie pay) Configuration successful. nb1:/usr/src/pcmcia-cs-3.1.17 # from here it is a "make all" "make install" and your should be up and running on pcmcia (you will need to start the crdmng thoug manually if you don't want to reboot). 6.3 Configuring linux-wlan-0.3.4: ---------------------------------- nb1:/usr/src/ # tar -xzf linux-wlan-0.3.4.tar.gz nb1:/usr/src/ # cd linux-wlan-0.3.4 nb1:/usr/src/linux-wlan-0.3.4 # vi config.mk --- /usr/src/linux-wlan-0.3.4/config.mk --- LINUX_SRC=/usr/src/linux PCMCIA_SRC=/usr/src/pcmcia-cs-3.1.17/ MODULES_DIR=/lib/modules/2.2.16 INST_EXEDIR=/sbin DESTDIR= MAKE_ISA=y MAKE_CS=y --- snip --- nb1:/usr/src/linux-wlan-0.3.4 # make nb1:/usr/src/linux-wlan-0.3.4 # make install nb1:/usr/src/linux-wlan-0.3.4 # cp scripts/* /etc/pcmcia this will also copy the rc.wlan script that does not belong there but.. If you want to use the rc.wlan script then copy it to /etc/rc.d/rc.wlan and ither call it from rc.local or setup a runlevel link from rc2.d to the rc.wlan script. 7. Service Configuration In this section we will describe setting up the Access-Point and a client The topology assumed is (192.168.1.8) (192.168.1.32) (192.168.3.32) (192.168.3.201) fw.hofr.at rtl12.hofr.at rtl12.wavr.at nb1.wavr.at .----. .---------. .---------, | | Internet---| Fire- |--192.168.1.0--| Access- | (192.168.3.0) .|____|. | Wall | | Point |--> ~ ~ ~ ~ <--|Laptop| `---------' `---------' `------` 7.1 Configuration Files: ------------------------ The wlan pcmcia configuration comes with the linux-wlan package and is in the scripts directory , to include the wlan specific configs copy them to /etc/pcmcia and add a line like: source ./*.config to /etc/pcmcia/config or rtl12: # mv wlan.config wlan.conf as .conf files are sourced by /etc/pcmcia/config by default anyway. what this does for you is to map devices that register as "wlan" to the am930_cs kernel module, and binds the card specific settings to the vendor/device string that the card-manager receives when you insert a card. ---snip /etc/pcmcia/wlan.config --- device "am930_cs" class "wlan" module "am930_cs" card "ZoomAir 4000" version "Zoom", "Air-4000" bind "am930_cs" card "ZoomAir 4001" version "Zoom", "Air-4001" bind "am930_cs" ---snip--- This now takes care of loading the proper module and executing a "class" specific script which must have the class name .i.e wlan in this case, the actual network configuration (ifconfig/route etc.) is then done by the network script /etc/pcmcia/network So the sstup task consists of six parts: * scan the network * list the BSSID's that the system can find * set the ethernet frame conversion type * join one of these BSS's * tell the kernel what interface to use (ifconfig) * turn on any high-level services that will run over the wireless lan (like: nfs, ypclient etc) To perform these settings there is a wlan executable (shell script) for the client (the laptop in my case) this script is not usable for the access point in the form distributed with wlan (see Access-Point setup below for why) it will be called at insertion of the card and at removal and performs the first four steps of the above list - the last two are then performed by the network script /etc/pcmcia/network that reads the network.opts file. To sumarize the initialization process of a client: insert PCMCIA-card -> call card manager (crdmng) { * grab produc string "Zoom" * find the configuration in /etc/pcmcia/config (+ sourced files) * load the modules listed in config * find the class the device belongs too } -> execute the "class" script { * scan the wlan * set packet handling type * join the bssid } -> execute the network script { * setup the device (ifconfig) * setup routes etc. * initialize high-level services (DNS,YP,NIS etc.) } . That is what happens between inserting the card in the slot and the second beep of your laptop ! 7.2 Manual Configuration: ------------------------- If you want to get a bit of a fealing for how the setup realy works I recomend your run it manually once. At this point you Setting up the hardware: ------------------------ You copied the linux-wlan-0.3.4/scripts/* files into /etc/pcmcia/ allready ? if not due so now and make shure that the scripts are found (see config changes / renaming above). So now that you pop the card into the Access-Point PCMCIA adapter and the Laptops-CardBus slot you should get two high beeps and the appropriate kernel messages: Access-Point: ------------- First check if your ISA-to-PCMCIA adapter was found corectly - for the ZoomAir-4005 this should give you something like in dmesg: Linux PCMCIA Card Services 3.1.17 kernel build: 2.2.16 #1 Wed Aug 2 20:22:26 GMT 2000 options: [pci] [cardbus] PCI routing table version 1.0 at 0xf0a30 Intel PCIC probe: Cirrus PD6710 rev 00 ISA-to-PCMCIA at port 0x3e0 ofs 0x00 host opts [0]: [ring] [65/6/0] [1/15/0] ISA irqs (default) = 3,4,5,7,9,10,12 polling interval = 1000 ms cs: IO port probe 0x0c00-0x0cff: excluding 0xcf8-0xcff cs: IO port probe 0x0800-0x08ff: clean. cs: IO port probe 0x0100-0x04ff: excluding 0x230-0x23f 0x378-0x37f 0x4d0-0x4d7 cs: IO port probe 0x0a00-0x0aff: excluding 0xa30-0xa3f At this point if you pop in the ZoomAir PCMCIA card you should get a high and a low beep indicating that the card was detected but the scripts did not execute corectly. If You installed the rc.wlan script into the rc.local script or linked it into the rulevel scripts then you might not get the second low beep - in the setup described here I'm assuming that we don't setup the Access-Point via rc-script but let the card manager do it with a modified class script in place. The reson I prefere this is because you can reinitialize the Access-Point then simply be pulling out the card and poping it back in - no need to login and execute some script by hand. If you don't like this then use the rc.wlan script and link it into rc2.d into your rc-scripts (typically /etc/rc.d/ or the like). If you copied the scripts wlan.config to /etc/pcmcia and added a "source ./*.config" or "source ./wlan.cofnig" to /etc/pcmcia/config your system will recognize the ZoomAir and give you a dmesg output like: Linux WLAN 0.3.4 Inspecting CFTABLE[1] Inspecting CFTABLE[2] CFTABLE index 0x02: Vcc 5.0 irq 3 io 0x0100-0x010f am930: io=0x100 irq=3 am930: Firmware Banner: PCnetMobile:v2.01 101498 API205 f/w version:2.01 date:101498 api:205 am930hw_construct: Reset and f/w TestInterface are successful am930hw_init_tx_queues: Allocated 5 tx slots am930llc_construct: Device eth1 registered So the kernel now knows of the eth1 device - ifconfig will show you though that it is not yet configured. rtl12:/etc/pcmcia # wlanctl eth1 bsscreate 1 200 0 HOFRAT rtl12:/etc/pcmcia # ifconfig eth1 inet 192.168.3.32 netmask 255.255.255.0 up rtl12:/etc/pcmcia # ifconfig eth0 Link encap:Ethernet HWaddr 00:00:E8:3C:57:DB inet addr:192.168.1.32 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:480 errors:0 dropped:0 overruns:0 frame:0 TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:11 Base address:0xe000 eth1 Link encap:Ethernet HWaddr 00:40:36:01:67:FC inet addr:192.168.3.32 Bcast:192.168.3.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5 errors:0 dropped:0 overruns:0 frame:0 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 rtl12:/etc/pcmcia # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.1.8 0.0.0.0 UG 0 0 0 eth0 Now the system has access to the the wireless lan the only thing left to do here is to tell the kernel that it needs to do IP-forwarding (default is off on most systems). rtl12:/etc/pcmcia # cat /proc/sys/net/ipv4/ip_forward 0 rtl12:/etc/pcmcia # echo "1" > /proc/sys/net/ipv4/ip_forward rtl12:/etc/pcmcia # cat /proc/sys/net/ipv4/ip_forward 1 rtl12:/etc/pcmcia # Note that our setup is behind a firewall and if this is not the case for your setup you will probably need to include additional measurs on the Access-Point - see the iproute2 and ipfilters documentation. Client-Laptop: -------------- After poping in the ZoomAir in the CardBus slot you should again get a high and a low beep as the Access-Point is setting up a chanel HOFRAT and the default script does not know what do do with a HOFRAT in the air. ---snip dmesg output-- Linux WLAN 0.3.4 Inspecting CFTABLE[1] Inspecting CFTABLE[2] CFTABLE index 0x02: Vcc 5.0 irq 3 io 0x0100-0x010f am930: io=0x100 irq=3 am930: Firmware Banner: PCnetMobile:v2.01 101498 API205 f/w version:2.01 date:101498 api:205 am930hw_construct: Reset and f/w TestInterface are successful am930hw_init_tx_queues: Allocated 5 tx slots am930llc_construct: Device eth0 registered am930mgr_scanbegin: scanning channel 1 ethconv=rfc1042 At this point the hardware is know to the kernel but we need the network layer on top. nb1: # wlanctl eth0 scan 1 11 100 ff:ff:ff:ff:ff:ff both active "" 01 76:73:01:00:00:00 0200 0x0002 HOFRAT nb1:/tmp # wlanctl eth0 netlist 01 76:73:01:00:00:00 0200 0x0002 HOFRAT nb1: # wlanctl eth0 bssjoin 76:73:01:00:00:00 nb1: # ifconfig eth0 inet 192.168.3.201 netmask 255.255.255.0 up eth0 Link encap:Ethernet HWaddr 00:40:36:01:62:24 inet addr:192.168.3.201 Bcast:192.168.3.255 Mask:255.255.255.0 inet6 addr: fe80::240:36ff:fe01:6224/10 Scope:Link inet6 addr: fe80::40:3601:6224/10 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:580 errors:0 dropped:0 overruns:0 frame:0 TX packets:732 errors:11 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 nb1: # route add default gw 192.168.3.32 nb1: # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.3.32 0.0.0.0 UG 1 0 0 eth0 nb1: # ping www.fsmlabs.at nb1:~ # ping www.fsmlabs.at PING fsmlabs.at (80.120.128.88): 56 data bytes 64 bytes from 80.120.128.88: icmp_seq=0 ttl=246 time=69.599 ms 64 bytes from 80.120.128.88: icmp_seq=1 ttl=246 time=58.139 ms 64 bytes from 80.120.128.88: icmp_seq=2 ttl=246 time=58.376 ms --- fsmlabs.at ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 58.139/62.038/69.599 ms Jodel ! up and running. All we need to do now is put the steps we did during manual configuration into the script in /etc/pcmcia/ and then we are (allmost) done. 7.3 Setting up the crdmng: -------------------------- Access-Point Setup: ------------------- If you don't want to set up the wlan access-point via rc scripts - that is if you want the ability to pull out and pop in the card at runtime (to reset it....) then you need the chanel setup in the pcmcia script on that system. So instead of scaning for available chanels this script now initiates the chanel on eth1. This script is not very elegant - but essentially no more than this is needed - it could be made a bit more fancy though... --- /etc/pcmcia/wlan --- #! /bin/bash -x CHANEL="HOFRAT" WLAN_DEV="eth1" # Initialize chanels networks echo "wlan setting up channel $CHANEL" wlanctl $WLAN_DEV bsscreate 1 200 0 "$CHANEL" # Call the high-level network script after the chanel is set up ./network $1 $2 If you prefere setting up the access-point via rc script then take the rc script from the linux-wlan-0.3.4.tar.gz package as a basis ( scripts/rc.wlan ) copy it to the location of the other init scripts and set up the links as needed by init. Client Laptop: -------------- For the client side the unmodified wlan script worked fine for me. Any comments on problems with the original wlan script as found in the scripts subdirectory of linux-wlan-0.3.4.tar.gz . 8. Performance: --------------- Bandwidth via ZoomAir 4005/4001<->4001. TCP: ---- 16 byte packets: Receiving host: ttcp-r: buflen=8192, nbuf=0, align=16384/+0, port=5001 tcp ttcp-r: socket ttcp-r: accept from 192.168.2.32 ttcp-r: 1048576 bytes in 6.17 real seconds = 165.91 KB/sec +++ ttcp-r: 715 I/O calls, msec/call = 8.84, calls/sec = 115.85 ttcp-r: 0.0user 0.0sys 0:06real 0% 0i+0d 0maxrss 0+2pf 0+0csw Sending host: ttcp-t: buflen=16, nbuf=65536, align=16384/+0, port=5001 tcp -> 192.168.2.201 ttcp-t: socket ttcp-t: nodelay ttcp-t: connect ttcp-t: 1048576 bytes in 5.96 real seconds = 171.87 KB/sec +++ ttcp-t: 65536 I/O calls, msec/call = 0.09, calls/sec = 10999.51 ttcp-t: 0.0user 0.2sys 0:05real 4% 0i+0d 0maxrss 0+1pf 0+0csw 8192 byte packets: Receiving host: ttcp-r: buflen=8192, nbuf=2048, align=16384/+0, port=5001 tcp ttcp-r: socket ttcp-r: accept from 192.168.2.32 ttcp-r: 16777216 bytes in 95.11 real seconds = 172.26 KB/sec +++ ttcp-r: 12064 I/O calls, msec/call = 8.07, calls/sec = 126.84 ttcp-r: 0.0user 0.0sys 1:35real 0% 0i+0d 0maxrss 0+2pf 0+0csw Sending host: ttcp-t: buflen=8192, nbuf=2048, align=16384/+0, port=5001 tcp -> 192.168.2.201 ttcp-t: socket ttcp-t: connect ttcp-t: 16777216 bytes in 94.95 real seconds = 172.56 KB/sec +++ ttcp-t: 2048 I/O calls, msec/call = 47.47, calls/sec = 21.57 ttcp-t: 0.0user 0.6sys 1:34real 0% 0i+0d 0maxrss 0+2pf 0+0csw 131072 byte packets: Receiving host: ttcp-r: buflen=131072, nbuf=2048, align=16384/+0, port=5001 tcp ttcp-r: socket ttcp-r: accept from 192.168.2.32 ttcp-r: 268435456 bytes in 1536.17 real seconds = 170.65 KB/sec +++ ttcp-r: 184436 I/O calls, msec/call = 8.53, calls/sec = 120.06 ttcp-r: 0.1user 1.4sys 25:36real 0% 0i+0d 0maxrss 0+15pf 0+0csw Sending host: ttcp-t: buflen=131072, nbuf=2048, align=16384/+0, port=5001 tcp -> 192.168.2.201 ttcp-t: socket ttcp-t: nodelay ttcp-t: connect ttcp-t: 268435456 bytes in 1536.42 real seconds = 170.62 KB/sec +++ ttcp-t: 2048 I/O calls, msec/call = 768.21, calls/sec = 1.33 ttcp-t: 0.0user 10.9sys 25:36real 0% 0i+0d 0maxrss 0+32pf 0+0csw UDP: ---- 8192 byte packets: Receiving host: ttcp-r: buflen=8192, nbuf=2048, align=16384/+0, port=5001 udp ttcp-r: socket ttcp-r: 16777216 bytes in 84.17 real seconds = 194.66 KB/sec +++ ttcp-r: 2050 I/O calls, msec/call = 42.04, calls/sec = 24.36 ttcp-r: 0.0user 0.0sys 1:24real 0% 0i+0d 0maxrss 0+1pf 0+0csw Sending host: ttcp-t: buflen=8192, nbuf=2048, align=16384/+0, port=5001 udp -> 192.168.2.201 ttcp-t: socket ttcp-t: 16777216 bytes in 83.84 real seconds = 195.42 KB/sec +++ ttcp-t: 2054 I/O calls, msec/call = 41.80, calls/sec = 24.50 ttcp-t: 0.0user 0.3sys 1:23real 0% 0i+0d 0maxrss 0+2pf 0+0csw 32768 byte packets: Receiving host: ttcp-r: buflen=32768, nbuf=256, align=16384/+0, port=5001 udp ttcp-r: socket ttcp-r: 8126464 bytes in 41.63 real seconds = 190.63 KB/sec +++ ttcp-r: 250 I/O calls, msec/call = 170.52, calls/sec = 6.01 ttcp-r: 0.0user 0.0sys 0:41real 0% 0i+0d 0maxrss 0+7pf 0+0csw Sending host: ttcp-t: buflen=32768, nbuf=256, align=16384/+0, port=5001 udp -> 192.168.2.201 ttcp-t: socket ttcp-t: 8388608 bytes in 41.32 real seconds = 198.26 KB/sec +++ ttcp-t: 262 I/O calls, msec/call = 161.49, calls/sec = 6.34 ttcp-t: 0.0user 0.2sys 0:41real 0% 0i+0d 0maxrss 0+8pf 0+0csw The nominal bandwidth of the ZoomAir is 2Mbit so for a P-t-P conection (as there were no further clients on the lan this de-facto is a P-t-P wandwidth) a real bandwith of 80% of the nominal bandwidth can be reached. The bandwidth can be improved by running compressing tunnels between the Access-Point and the clients - this naturally requires enough CPU power on the side of the Access-Point if multiple clients need to be serviced. an scp -C can give you a trasfere of up to 2.3Mbit/s with plain ascii data (assuming CompressionLevel of 6) . As many of the ecncrypted tunnels allow you to transfere data in compressed mode, aside from being secure... this can improve your real bandwidth considerably. 9. FAQs/Wish list: ------------------ My whish-list: Feedback to der.herr@hofr.at * any reports if it worked for your setup 10. Credits: ------------ PCMCIA: David Hinds http://pcmcia.sourceforge.org check the MAINTAINERS file in the top-level pcmcia-cs directory linux-wlan: Copyright (c) 1998 David A. Hinds http://www.linux-wlan.com/ ftp://ftp.linux-wlan.org/pub/linux-wlan PCMCIA-HOWTO: David Hinds, dhinds@pcmcia.sourceforge.org. summary: Thanks to David Hinds . ZoomAir: http://www.zoom.com (no Linux related infos here though... well that might chang.)