February 6, 2006

Test drive: D-Link DWL-922 Wireless G Network Starter Kit

Author: Glenn Mullikin

The $80 D-Link DWL-922 Wireless G Network Starter Kit includes everything you need to get started using wireless Ethernet in your home. It works with Linux clients, but it has some problem areas that Linux users need to be aware of before making a purchasing decision.

D-Link doesn't advertise Linux support for the kit, but I decided to give it a whirl anyway to see how well it fared. The kit comes with D-Link's DI-524 Wireless G router, which has all the features you would expect a router to have, including plenty of security options, and the DWL-G122 USB 2.0 wireless adapter, which you can use at Wi-Fi hotspots or on your LAN.

The kit comes with a CD-ROM that contains the drivers for Windows XP and Windows 2000, as well as instructions on setting up and using everything. The PDF manuals on the CD-ROM help users get up to speed if it's their first time using a wireless router. The package that I got was missing the nice little USB extension cradle that lets you plug the adapter into a flat base at the end of a six-foot cable, but one call to D-Link got that taken care of.

For testing, I used a client PC with Linux kernel version 2.6.14 compiled with GCC 3.3, NdisWrapper version 1.5 compiled with GCC 3.3, DriverLoader 2.3, and wireless-tools version 27+28pre10-1.

The router

The first thing that I noticed when hooking up the DI-524 router and playing with its settings was that the Apply button on the Web interface used to manage the router did not seem to have any effect when I tried to change the security setting from disabled to WEP or a WPA variant. I tested the interface using Mozilla Firefox 1.5, KDE Konqueror 3.5, and Opera 7.52, and all were unable to deal successfully with the JavaScript that the Apply button invokes. It seemed strange to me that all of the Apply buttons seemed to work except for the one on the security settings page. I did discover an error message by taking a look at the JavaScript console. I called D-Link to try and find out what I should do, and the support person I spoke with suggested upgrading the firmware, but the unit had the latest version of the firmware already.

I managed to find someone that had Internet Explorer 6 installed and got him to hook up the router to see if we could use IE to set security features. The Apply button worked just fine with IE6. It even displayed alerts about incorrect key sizes that were not visible in Firefox or Opera. Clearly then, Linux users will have problems using this router if they can't even set the security mode without resorting to Internet Explorer.

I also have a DI-514 D-Link wireless router, which is similar to the DI-524 but doesn't have the same problem, so I was able to test WEP and WPA-PSK options using it as an access point for the DWL-G122 adapter.

On the plus side, the router performs well as a wired 100Mbps hub. I usually get about 11Mbps data transfer rate on the wired ports, which I consider about as good as it gets with the hardware I have. By itself, the router would be a great choice for someone who has Internet Explorer available to manage it.

The USB wireless adapter

The G122 that came in my box is version D1. Wireless card vendors, D-Link included, typically come out with various versions of the same product that have completely different chipsets on the inside. Hapless Linux users sometimes get bitten by this by buying a wireless card model that's known to work with Linux, only to find that the vendor has changed chipsets without changing the model name. According to the system log, the D1 includes a Marvell chipset.

I couldn't find an open source driver for version D1, unfortunately. I am not a fan of wireless devices that don't have open source drivers, but for 54Mbps performance over a USB 2.0 port, I am willing to compromise a little.

The NdisWrapper program works with the DWL-G122 version D1, but it has some problems. When connecting through the DI-524 router, the highest data transfer rate that I was able to obtain was 2Mbps on a large FTP file transfer on my LAN -- well below the advertised 54Mbps. That level of throughput lasted only for a few minutes, and then I seemed to lose the access point. The USB 1.1 port seemed to provide the best level of performance on my system because I could always depend on it to provide about 350Kbps on the LAN.

For someone who just wants to browse a hotspot and surf the Web, D-Link's adapter will probably work fine, but users may be annoyed to find that there are some operations that require them to reboot the operating system in order to regain wireless functionality. For example, changing settings on the router would often cause me to lose my connection on the G122. With most hardware, you can simply reload the driver and it's like new again, but not so here. I found that unloading and then reloading the NdisWrapper module did not necessarily mean that I would be back up and running. Instead, I would have to reboot entirely to bring the USB wireless device back up.

It should be possible to set transfer rates using the rate argument for the iwconfig utility, but that didn't seem to have any real effect. You can set the rate to whatever you like, but it doesn't seem to have any effect upon what the iwconfig output says the rate is. The speed seems to adjust itself.

To verify that I wasn't having a problem with the signal, I installed KWiFiManager to check the signal strength. KWiFiManager showed the signal to be consistently strong, and showed little noise. Unfortunately, the Connection Speed indicator in KWiFiManager reported speeds that were simply wrong, which is probably a driver issue.

Other advanced issues

The Windows driver for the DWL-G122 seems to be fairly full-featured in terms of its security capabilities, and NdisWrapper is able to use many of them successfully. I have tested WEP-64, WEP-128, WPA-PSK, and WPA-PSK with TKIP (using a Hawking Technology HWR54G router). In order to use WPA, you have to install the wpa_supplicant package (check your distro's package repository) but from there, you just edit a configuration file and type in the following command:

wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf

I would imagine that some of the security features might cause the data transfer rates to degrade, especially when you're using temporary keys in the TKIP configuration.

The system log provides the following information about the encryption modes that are actually supported by the DWL-G122 version D1 driver:

ndiswrapper version 1.6 loaded (preempt=no,smp=no)
ndiswrapper 5-2:1.0: usb_probe_interface
ndiswrapper 5-2:1.0: usb_probe_interface - got id
ndiswrapper: driver usb55n5x (D-Link,07/28/2005, loaded
ndiswrapper (IoCreateUnprotectedSymbolicLink:742): --UNIMPLEMENTED--
wlan0: vendor: 'Marvell 802.11 Driver for USB 2.0 Adapter'
wlan0: ndiswrapper ethernet device XX:XX:XX:XX:XX:XX using driver usb55n5x, 07D1:3B01.F.conf
wlan0: encryption modes supported: WEP; TKIP with WPA, WPA2, WPA2PSK; AES/CCMP with WPA, WPA2, WPA2PSK
usbcore: registered new driver ndiswrapper

NdisWrapper may not be the ideal solution for using hardware, but in this case, with this particular piece of hardware, it is the only solution I found available. Linuxant's DriverLoader, another possible alternative, did not recognize the DWL-G122 version D1 on my system. It failed with an error message saying "It seems that your device is either not present or not supported."


Given the difficulties I had, I would not recommend this kit for most Linux users. The DI-524 router is a great piece of equipment, but not being able to use the router with normal Linux-based Web browsers is disappointing, and hopefully something D-Link will fix in a future firmware upgrade.

It would also be nice to see an open source driver for the DWL-G122, because the NdisWrapper-based solution has serious negative aspects in both a practical sense, making life more difficult for users that like to upgrade their kernel often, as well as philosophically for users who prefer to use free software.

D-Link has done a great job of putting together a complete wireless package for a home user, but only experienced Linux users who know exactly what they are getting into should consider purchasing it, even with the current $25 mail-in rebate.

Click Here!