See the update in the reply below for the latest information.
What USB 802.11g wireless adapter do you recommed?
We've been successful with a number of adapters from several different manufacturers that use ZyDAS 1211 or 1211b chips. There are dozens of these adapters available, some of them quite inexpensive. A kernel driver that supports these adapters should be available in a future release. In the meantime, a kernel module is required.
The GPL'd source code is available here. To cross-compile it, we made some minor changes included in this patch.
If you're running Linux 2.6.17.9-ep93xx-pxa-ads3 on an ARMv5 system (BitsyXb or VGX), you can use the modules we've built:
After you've loaded the appropriate module with insmod, you can use ifconfig to find the new interface (usually eth1). You must bring the interface up first, before configuring it with iwconfig, e.g.insmod zd1211b.ko
ifconfig -a
ifconfig eth1 up
iwconfig eth1
iwconfig eth1 essid applieddata
dhcpcd eth1
If you want to build the modules yourself or need ones for other kernel versions or systems, - download and untar the source code above
tar xzf ZD1211LnxDrv_2_15_0_0.tar.gz
- apply our patch
cd ZD1211LnxDrv_2_15_0_0/
patch -p1 < ../zydas.diff
- modify the Makefile to reference your kernel source tree
- modify include/asm/system.h [1] in your kernel source tree by replacing
#define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endif\n\t"
with
#define __asmeq(x, y) ".ifnc " x "," y " ; nop ; .endif\n\t"
- make the module with
make ZD1211REV_B=0
for zd1211 or
make ZD1211REV_B=1
for zd1211b.
[1] If you're using gcc-3.4.1 or later, this step is not required. Older compilers (like the one we've recommended for years, arm-linux-gcc-3.3.2) have a division bug that is trapped by this code. The ZyDAS driver triggers this trap but does not use the portion of the result that is affected by the bug. Therefore, it is safe to disable the trap in order to build the ZyDAS modules. You should restore the trap after you've built your module.