Last night I rediscovered wifiroamd. I had been using OS X for so long that I had forgotten what it was like trying to configure wireless under linux; let alone have some form of functional roaming from work to home. I used to always make two scripts.
1. for connecting to my wireless network at home
2. for connecting to the wireless network at work
These scripts would always bring the wireless adapter to a usable state via ifconfig, use iwconfig to get on the right channel, essid, etc… then run dhclient, ping something, and echo “OK”. When I was at neither location I would have to get the list of available networks with iwlist then use iwconfig + wpa_supplicant (if it was a wpa enabled network) + dhclient to get a connection. Frankly thats a pain the the ass. Wifiroamd handles all of that and things are seamless. By default it connects to the first unencrypted network with the highest signal reported by iwlist. But that behavior is easily modified.
After initial configuration it “just works”. I have it set up to start on boot. It finds my home network, starts wpa_supplicant, connects to it on the 802.11x layer, gets an ip, and tries to ping the gateway to check for connectivity. If I plug in my cat5, then the two connections are automatically bonded. You read correctly, automatically bonded, not bringing one down and using the other. It comes with samples to do other things like start an openvpn tunnel on connection. I wonder if it could be extended to help with my other projects??