I just got wireless USB working on my SL5 laptop. There was a lot to figure out, so I am sharing it here.
I have a MyEssentials ME-1001-USB wireless adapter, which contains a Zydas zd1211b wireless chipset ( bought from Fry's on saturday October 4 2008. Note that chipsets change without warning!). The device is plug and play on an Ubuntu Heron 8.04 system (with kernel 2.6.24) but not so with Scientific Linux 5 kernel 2.6.18-8.1.6.el5 .
The SL5 zd1211rw.ko driver is missing most of recent the USB device !IDs. So, it needs recompiling with some additions as shown here:
What follows is the recipe that works for Red Hat style RPM systems, and something similar will probably work for SUSE. I will let you Ubuntu Debian Slackware Gentoo folks figure it out on your own. !CentOS documentation refers to /usr/src/rpmbuild instead of /usr/src/redhat , but the latter is where the files show up.
I found the source files for my kernel here:
Then the standard redhat style kernel preparation, as root:
rpm -Uvh kernel-2.6.18-8.1.6.el5.src.rpm cd /usr/src/redhat/SPECS/ rpmbuild -bp --target=i686 kernel-2.6.spec cd /usr/src/redhat/BUILD/kernel-2.6.18 chmod a+w -R * # this allows you to work as a normal user
Do these as a normal user:
cd /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i686/drivers/net/wireless/zd1211rw/ cp -a zd_usb.c zd_usb.c.orig
Next, two options - use my zd_usb.c , or edit your own more current one
option one: download http://www.keithl.com/zd_usb.c which contains the current device list as of 2008-Oct-05
option two: edit the zd_usb.c file yourself, copying lines from the most recent version here: http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2
Untar that into a handy place. You will be needing the file zd_usb.c to patch the similar file that comes with the kernel. Otherwise, this driver source requires a much more recent kernel.
Copy all the the DEVICE_ZD1211 and DEVICE_ZD1211B lines from the recent version zd_usb.c and patch them into your kernel source zd_usb.c
Whichever option you chose, you are ready to compile the module, as a normal user using the recipe from http://wiki.centos.org/HowTos/BuildingKernelModules
cd /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i686/ make clean make oldconfig make menuconfig make prepare make modules_prepare make M=drivers/net/wireless/zd1211rw/ su root cp drivers/net/wireless/zd1211rw/*ko /lib/modules/2.6.18-8.1.6.el5/extra/ /sbin/depmod -a
The Wireless USB should now be plug-and-play as eth1. I did not have to play with /etc/sysconfig or /etc/modprobe.conf Note, this version of the driver, as well as the one running on Ubuntu 8.04 , does not provide signal strength to Network Manager.