Io avevo la stessa esigenza e ho risolto configurando in /etc/network/interfaces una interfaccia logica per ogni rete che utilizzo, facendo attenzione che ogni interfaccia abbia il nome uguale al SSID relativo.
Faccio un esempio:
iface rete1 inet dhcp
wpa-driver wext
wpa-ssid "rete1"
wpa-psk "**********"
iface rete2 inet dhcp
wpa-driver wext
wpa-ssid "rete2"
wpa-psk "**********"
iface rete3 inet dhcp
wpa-driver wext
wpa-ssid "rete3"
wpa-psk "**********"
Dopo di che, tramite uno script in perl eseguito in /etc/rc.local, viene automaticamente abilitata la connessione "visibile" in quel momento, se ce n'è una.
Lo script è questo
#!/usr/bin/perl -w
use strict;
my @knownNetwork = ("rete1","rete2","rete3");
my $interface = "wlan0";
my $foundNetwork="";
my $knownNetwork;
system("ifconfig $interface up");
foreach $knownNetwork (@knownNetwork) {
foreach (`iwlist $interface scan`) {
$foundNetwork = $knownNetwork if /$knownNetwork/;
}
}
if ($foundNetwork eq "") {
print "wifiUp.pl: Nessuna rete conosciuta.\n";
} else {
print "wifiUp.pl: Attivo la connessione con $foundNetwork.\n";
system("ifup $interface=$foundNetwork");
Per farlo funzionare bisogna cambiare solo il valore di @knownNetwork, specificando i nomi delle rete che vogliamo includere nella abilitazione automatica, e il valore di $interface che, ovviamente, si riferisce all'interfaccia wireless che vogliamo usare.
Ovviamente lo script dipende dal pacchetto wireless-tools che contiene il comando "iwlist".
Se qualcosa non è chiara fatemelo sapere. Spero che questa soluzione possa essere utile
