According to the Debian wiki, this chipset requires the firmware-atheros package, which is non-free.
Also the kernel needs to be 2.6.39 or higher...so stock squeeze (2.6.32) won't work, but the version in squeeze-backports (2.6.39) will work. Alternately, I could upgrade to Wheezy (the future Debian 7.0) or roll-my-own kernel.
/etc/apt/sources.listto add the non-free archive and backports.
deb http://ftp.us.debian.org/debian/ squeeze main non-free deb http://security.debian.org/ squeeze/updates main non-free deb http://ftp.us.debian.org/debian/ squeeze-updates main non-free deb http://backports.debian.org/debian-backports squeeze-backports main non-free
Begin using non-free and backports by updating the package cache:
# apt-get update
Install the packages needed to get wireless working in general, and this dongle in particular:
# apt-get install wireless-tools usbutils firmware-atheros
For backported packages, must specify. Use the Debian package search tool to locate the correct package name in the backport archive. For my 486-compatible system, it's:
# apt-get -t squeeze-backports install linux-image-2.6.39-bpo.2-486
Finally, create a wireless interface entry in
# The wireless interface auto wlan0 iface wlan0 inet dhcp wireless-essid YourNetwork wireless-mode Managed
Since I use the syslinux bootloader (instead of grub) to get around the limitations of my 10-year-old motherboard, the new /boot/initrd.img generated by the new kernel must be manually copied over to my /boot partition. The following commands are specific to my setup only! IGNORE THIS SECTION IF YOU USE GRUB!
Remove unused grub stuff:
rm -r /boot/grub rm /boot/System.map-2.6.39-bpo.2-486 rm /boot/config-2.6.39-bpo.2-486Backup the old bootables:
# mv /boot/vmlinuz /boot/vmlinuz.old # mv /boot/initrd.img /boot/initrd.oldChange the name of the new bootlables to 8-and-3 compatible so syslinux can use them:
mv /boot/initrd.img-2.6.39-bpo.2-486 /boot/initrd.img mv /boot/vmlinuz-2.6.39-bpo.2-486 /boot/vmlinuz
Reboot, and suddenly the wireless works...until a bug or two intercede.
The dongle keeps crashing due to a possible kernel bug (or perhaps several). Interestingly, I also seemed to have two dhclient processes running. So lots of narrowing down to do...
1) Two dhclient processes upon boot (killed one manually)
2) Kernel bug that kills the dongle with dmesg:
phy0: wlan0: No probe response from AP
3) Kernel or crda bug that thinks I'm in China (CN) instead of the US (US). The preferred fix is to install the crda package (not available for Debian 6.0). Alternate fix is to add a file
/etc/modprobe.d/regdom.conf, containing the line
options cfg80211 ieee80211_regdom=US(source)
Aha. After a reboot,
ps -e | grep dhshows two dhclient processes. I killed the higher-numbered (later-started) one...which killed both of them and respawned a fresh dhclient process. So there's a bug: dhclient is getting spawned twice upon boot. But it's not related to the crash - that's a separate bug....