Last week I bought a Netgear WG511 wireless adapter for my
laptop, intending to replace the archaic prism2-based
adapter that didn’t support WPA and barely worked. Initial
searches indicated success in making it work with Linux, so
I wasn’t worried.
It turns out that there are at least three different
versions of this card, each with a different chipset, and
the only clear delineation is the “Made in X” label on the
adapter, where X is either “China” or “Taiwan”. My WG511
was made in China and has a Marvell chipset. Among other
things, this means that I’m forced to use
ndiswrapper and the Windows 2000 drivers. (The
adapters made in Taiwan are natively supported by the
prism54 driver included with the Linux kernel.) Okay,
fine, I thought. It’s not ideal, but the adapter is
popular enough that maybe development of a native
Marvell
driver is
underway.
The next step was to get WPA working. The NetworkManager
applet listed my ESSID with good signal strength, but after
repeated unsuccessful attempts to associate it was clear
that something was wrong. The applet would spin for a few
seconds trying to connect before immediately returning to
the “no connection” icon. I tried the Windows XP drivers
with the same result. I tried rebooting to give the card a
chance to reset: same result.
The solution was to use wpasupplicant directly,
specifying my ESSID, pre-shared key, algorithms, and so on
directly in the wpa_supplicant.conf. After a few
seconds of key negotiation, I was associated and had
acquired an IP address.
So: