Archive for July 15th, 2006

The sad wifi OSS story *UPDATED*

I got two USB-to-WiFi sticks for a review. I have only tried the one so far with Linux, but it’s a sad story already. Here’s the thing:
1. Ndiswrapper supposedly works with this chipset (Ralink rt73, ID is 148f:2573), but the Windows drivers are .NET executables and are not exractable so I can’t find the required firmware files. Even if I install the driver on Windows and try to find its firmware files is almost impossible (ndiswrapper doesn’t work with the .bin Linux firmware file provided by the manufacturer, Ralink, because there is no .inf file included). I tried running the setup.exe with WINE, it managed to extract before it crashed, I had to install the “unshield” utility in order to read this special .cab file, but unfortunately the INF/SYS firmware files are on… that was not extracted. A real pita.
2. There is a beta native rt2x00 OSS driver, which compiles and installs and loads correctly, but using the firmware from Ralink’s web site doesn’t work (it supposed to work). The USB stick doesn’t blink, while the modules are correctly loaded and the wlan0 exists and it’s up. Obviously a firmware problem, even if the .bin firmware is in the right place.
3. And then there is the manufacturer’s native driver, which simply does not work. It compiles, it installs the firmware correctly, it loads, it blinks but it never gets connected properly. And it HARD LOCKS the kernel if you try to bring the network down and up again. I don’t know how many times I had to force reboot this laptop since last night.

I have also two PCMCIA WiFi cards (prism54, orinoco) which were a pain in the ass to get the firmware files too, but not nearly as difficult to get them going. It had taken me 2 hours to be up and running by researching about them online, but at the very last they did work. These newer Wifi chipsets are a major pain in the ass.

I hope that some guy with little regard for the copyright law in some far distant country gets all the known firmwares and put them in a single tarball so at least we will have to only be consumed with the rest 50% of the problem, driver installation and configuration.

I am not sure I want to try out the other USB stick now…

UPDATE: At last, I got game! I managed to get both USB sticks working, and both worked only with the original manufacturer’s Linux drivers. Neither the open source community versions worked, neither ndiswrapper (and for the second usb stick, it would correctly insert the INF file and say that it would recognize the stick, but no blinking would happen when trying to connect). The second USB stick is a ZyDAS ZD1211b chipset btw (ID is 0ace:1215).

Thank God for manufacture’s Linux support. Of course though, I don’t expect that code to be stable (hard lockups are easy to hit). Linux drivers on these companies were probably afterthoughts and side-projects. But they worked easier than either ndiswrapper or the native OSS drivers.