21 August 2005

Making D-Link DWL-G650+ AirPlusG+ work on Slackware 10.1

It's not great as others claimed to be or maybe "great" is relative. I spend a whole Saturday trying to make this WiFi card work. Since I lost touch with my Linux hardware buying strategy, for SG$43 I was so compulsive that I picked this stupid thing at Sim Lim Square. The buying strategy that I have adapted when I first learned Linux is the "defective/success" ratio of the hardware. This means getting the pulse of the forums on how many got a device working and how many got persistent problems even if they managed to get one working. And this device falls into the "high defective" rate and it will be a torn in my pride not to get out of that statistic. So I have to wrestle with mid-level stuff of drivers and kernels. In short, I should have took the $55 Linksys or even the $38 Netgear(!!!) that has a higher "success" ratio.

Anyway, the real fault can really be attributed to the Open Source culture of "What documentation?". So let's start with a few things. One of the most helpful sites I went is the House of Craig. Much of what I have done was there. What I am going to add are few points that has not been emphasized specially on building the driver without an alternative internet connection. Here's the brief summary of the steps for building the driver:

  1. Get the latest acx1xx*.tar.bz2, what I have is the pf51 from acx100.sourceforge.net. Of course, since the target machine to be build on does not have an internet connection, do this from other workstation

  2. Get the latest firmware driver from D-Link website, yeah we know it's for Windows but that's what you're going to use

  3. Referring from the House of Craig, do everything as necessary

Now if everything looks fine and you didn't have errors that says something like "bailing..." in the end of the steps but no IP was assigned or there's no internet connection. Here are some few checks that you can do:

  1. Make sure to turn on LED options in the start_net script, then re-run start_net

  2. if no LED went on, check the /usr/share/acx directory if all firmwares including the Windows firmware are there

  3. Rename TIACX111.BIN to TIACX111.BIN.org

  4. Create a symbolic link from the Windows driver e.g. ln -s FwRad16.bin TIACX111.BIN, then run start_net, this time the LED will light up.

  5. do a tail -f /var/log/syslog to check if the card is actually associating to the Access Point

  6. If association is successful but you got an error that looks like: Error: wlan0 failed to associate, can't use DHCP for IP Address, try iwconfig.
  7. If everything looks normal, this is the last and dirty resort: dhcpcd wlan0, if you're Linux kernel is properly compiled and installed and you are actually associated to the Access Point, an IP address will be provided automatically.

  8. Start surfing wirelessly and enjoy!

For some reasons, the start_net script has to be tweaked for it to properly recognize that DHCP is being used and there's no WEP security enabled. But I am have no time to do it yet. For now, I have the ./start_net && dhcpcd wlan0 everyday. So far I am happy with how things are coming along and this blog was submitted thru D-Link DWL-G650+. Hope this helps.

No comments: