Airlink AWLL3026 802.11g Adapter
My dad was kind enough to give me a $10 Airlink AWLL3026 802.11g USB WiFi Adapter. I had been looking for one for a while to replace the long Cat5 Ethernet cable strung around the house, but I had no experience dealing with Linux’s WiFi support. It was a bit of work, but I did finally get it working.
At first when I inserted the device, my System Logs showed that it was recognized, by the zd1211rw module. Unfortunately, the module failed to load with a Firmware error. After downloading the new firmware from sourceforge, and following their instructions got the module loading properly when I reinserted the device. However, when I reinserted the device I noticed that it was loaded as "eth0", which is incorrect. Running the "iwconfig" tool showed it on eth3, but all attempts to actually bring up that device resulting in error messages.
Around this time, I found a forum post indicating that the zd1211 driver has a bug that only allows it to load successfully the first time. So when I removed the device & re-inserted it, the driver got confused and, hence the eth0. A reboot later, I saw the device up and running and set out to configure linux’s WiFi support for my access point. This is where things got tricky. I edited the /etc/network/interfaces file, and added the following:
| # /etc/network/interfaces — configuration file for ifup(8), ifdown(8)
# The loopback interface iface eth3 inet dynamic |
I tried to bring the interface up, and no matter how long I waited or how many times I tried, it would never successfully get a DHCP address. I tried several combinations, before stumbling upon one oddity: If I ran a "iwlist scan" (Which scans for Access Points), then it could retrieve a DHCP lease. It was an odd behavior that I could never fully understand. I ran test after test after test, before I finally accepted the unusual truth: The USB WiFi dongle simply can’t get a DHCP lease without performing a scan first.
With that knowledge in mind, I finally built my /etc/network/interfaces file like the following:
| # /etc/network/interfaces — configuration file for ifup(8), ifdown(8)
# The loopback interface iface eth3 inet static |
This file loads the interface as a Static IP of 192.168.1.1 . Then, once the interface it up, it performs a "iwlist scan", then starts up dhclient to get an IP address. It’s a bit cumbersome, but it works. Hopefully this will help someone else get their Airlink key up and running.
[tag:linux][tag:wifi][tag:airlink]

