Using WPA with WiFi Radar and ipw3945
Accessing WPA-secured networks in Linux is a little bit of challenge. While NetworkManager offers the most straightforward and relatively easy solution, it is still not perfect. I have quickly dropped using NM, after I found out it has serious problems with re-connecting to the wireless network once connection is lost somehow – unless machine is rebooted. I have started looking for alternative solution, most preferably using my favourite WiFi Radar – and I found it.
Configuring wpa_supplicant
First of all, we need to tweak wpa_supplicant’s configuration file, which is located in /etc/wpa_supplicant/wpa_supplicant.conf. My file looks like this:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
network={
ssid="worknetwork"
key_mgmt=WPA-PSK
psk="secretpassphrase"
priority=2
}
network={
ssid="homenetwork"
key_mgmt=WPA-PSK
psk="secretpassphrase"
}
It contains configuration for two networks I access most – work and home, obviously. Work network has WPA, and home has WPA2 encryption, but both require passphrase (psk parameter). Above configuration file is quite simple, and totally sufficient for my (and most) requirements of WPA-secured networks. Managing wpa_supplicant configuration is also possible by using GUI (wpa_gui). However, I have never used it.
Pretty interesting fact about wpa_supplicant is it supports not only WPA-secured networks, but also WEP-secured or even not secured at all. It also covers more complex WPA configurations than the ones above, of course. Check out man wpa_supplicant.conf or download sample config file – it is really powerful, indeed.
Configuring WiFi Radar
And here’s the easiest part. Once you have your network profile configured in WiFi Radar, just enter wext as a WPA Driver:

As ipw3945 is not supported by wpa_supplicant, we need to use wext (generic Wireless Extensions driver), but it works really fine. As of my experience, it is also good to define channel in the profile (WiFi Options section). You can check channel number of network with iwlist ethX scan command.
And BTW, please do not be surprised – for some reason associating with WPA network takes a little bit of time (say ~30 seconds, I guess?), and may seem not successful. Sometimes DHCP request may time out before network will actually connect, which could result in interface with no IP address. In that case I recommend issuing dhclient ethX command manually once computer is associated with access point, or define static IP configuration in network profile. [UPDATE] Upgrade to Fedora 7 brings improved wpa_supplicant (I guess), as associating with WPA enabled network is much faster and takes just few seconds!
Automatic connection while boot
Once network profile is properly configured in WiFi Radar, bringing connection to life automatically while your system boots, is dead easy. The only thing to do is add following line to /etc/rc.d/rc.local file:
wifi-radar -d &
This command will run WiFi Radar in daemon mode, which will automatically scan available networks and connect to preferred one. Note: if you are also executing ipw3945d daemon within the same file, it is better to run wifi-radar with little delay:
ipw3945d sleep 3 && wifi-radar -d &