I recently purchased some Edimax 802.11g 54MB wireless network kit, since the prospect of drilling holes through the wall didn't appeal. This consisted of a 7203APg access point, a 7108PCg cardbus card and a brace of 7128g PCI cards.
Although the access point allegedly supports WPA encryption, it seems to fall over after a few hours and needs to be reset (either through the web interface or yanking the plug). The WEP configuration seemed much more stable, although the relatively poor security (like anything I do is interesting enough to bother cracking) is a concern.
Setting things up in Windoze was not a problem. Nuff said. Linux was more of an issue, but ultimately was successful, with both the cardbus and PCI cards.
Both the 7108PCg and 7128g are supported by the rt2500 kernel module, available from http://sourceforge.net/projects/rt2400. If you're running a modern distribution such as Ubuntu chances are the driver is part of your kernel, and will most probably get auto loaded. That's the easy bit.
Getting things to work requires a little more fiddling. I found that absolutely nothing happened unless a decent config existed in /etc/Wireless/RT2500STA/RT2500STA.dat which in my case looks something like this:
[Default] CountryRegion=2 ProfileID=PROF001 SSID=MYSSID NetworkType=Infra PreambleType=Auto RTSThreshold=2312 FragThreshold=2312 AuthMode=SHARED1 EncrypType=WEP2 DefaultKeyID=1 Key1Type=0 Key1Str=my own 26 digit hex key Key2Type=0 Key2Str= Key3Type=0 Key3Str= Key4Type=0 Key4Str= Channel=0 PSMode=CAM WPAPSK=some key or other3
As this is a text file, it can be written with your favourite text editor, or you can use the RaConfig2500 gui config program that comes with the driver source code. You probably won't have that as part of the kernel - and rightly so, it's a user space thing.
The gui can work with multiple connection profiles, but only one is present in the RT2500STA.dat file. If the gui isn't doable, then I guess there's no reason why you can't write a script to rename various profiles as required. Maybe.
You need to be root to run RaConfig2500, and the program sometimes fails to start, claiming Device driver not found. I found that the way round this was to "rmmod rt2500" followed by "modprobe rt2500".
I've seen various pages that claim all sorts of cleverness can be done in the various interface scripts. None of this seemed to work for me. I could never get SuSE 9.2 to play in a reliable manner, however I seem to have succeeded with Ubuntu (Breezy Badger). My /etc/network/interfaces file looks like this on my laptop:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# This is a list of hotpluggable network interfaces.
# They will be activated automatically by the hotplug subsystem.
mapping hotplug
script grep
map ra0
iface ra0 inet dhcp
# The primary network interface
iface eth0 inet dhcp
It's somewhat minimal, and has no "wifi" options at all but works reliably. I can whip out the cardbus adapter and plug it back in and it all comes back to life within a few seconds.
I found that none of the gui tools such as Kwifimanager, or the Gnome thingy actually did any good. The Gnome Network Manager didn't appear capable of writing a config with anything except an ascii key, despite the hex option being selected. None of this is of any consequence, as the rt2500 driver needs the RT2500STA.dat file or it won't play.
While I mention laptops, I'm using a Compaq Evo N600c, on which I have tried various distributions, including RedHat 9, Suse 8.2, 9.1 and 9.2. I didn't find any of them really cut it - mostly the poor thing overheated. Fortunately, I can recommend Ubuntu. Possibly it's because it's new, but it supports CPU frequency scaling, and the fans (/proc/acpi/fan) turn on when the going gets tough. Sound card works too. I've yet to play with the winmodem but it does seem to have identified it.