Aqui está uma ideia usando o Perl para executar o script para você. Você poderia traduzi-lo para o idioma de sua preferência, ou até mesmo para bater. São realmente os comandos para se conectar ao wireless que contam. Perl é apenas um meio para eu fazer isso rapidamente, sua ideia de rápido pode ser diferente. Uma nota, se você não está acostumado a ler Perl, todos os backticks são um comando shell.
O Gnome, por exemplo, construiu o tratamento de lembrar de suas redes e fará isso para um usuário logado, mas ... Estou assumindo uma configuração sem cabeça. O que é divertido, uma configuração headless itinerante que se conectará automaticamente ao wifi. Legal.
Isso pressupõe uma rede wpa e o iwconfig instalado (que eu aposto que vem com seus pacotes sem fio) e o wpa_supplicant.
Isso representa apenas uma rede definida em um csv. E supõe que funcionará na primeira tentativa. Você precisará detalhar os parâmetros reais das redes desejadas ou adicionar outro tratamento. Mas essa estrutura geral fará isso rapidamente.
Arquivo @ /mnt/usb/network.csv
no formato "target SSID, passphrase":
myWifiSSID,mypassword
Arquivo @ /home/me/connect.pl
(com chmod 755 por exemplo):
#!/usr/bin/perl
# Set to your device name.
$iface = "wlan0";
# Set to your USB mount point & network definition CSV file.
$networkdefinition = "/mnt/usb/network.csv";
# Get the contents of your file on USB stick.
$line = 'cat $networkdefinition';
# Read the CSV into parts.
@parts = split(/,/,$line);
# Get a list of wireless networks in range.
# And grep that for the network we're looking for.
$foundnetworks = 'iwlist $iface scan | grep 'ESSID:"$parts[0]"'';
# See if this turns up the network we're looking for
if (length($foundnetworks)) {
# It did. Let's bring up that interface.
'wpa_supplicant -B -i $iface -c <(wpa_passphrase $parts[0] $parts[1])';
} else {
# Network not in range, perform error handling etc.
}
No seu crontab:
@reboot /home/me/connect.pl
Advertências:
- Precisa de melhor tratamento de erros / uma maneira de executar mais regularmente
- Precisa de manipulação de outras redes que não WPA
- A solução Cron supõe que a montagem estará disponível até lá.
Essa é a coisa divertida de se ampliar à medida que você avança, mas pode ser uma maneira rápida de inicializar usando o arquivo CSV do pendrive USB para especificar sua rede Wi-Fi.
A carne real disso são esses dois comandos:
-
iwconfig
-
wpa_supplicant
O resto é apenas uma ideia de como implementar a solução proposta para conexão automática a um aplicativo Wi-Fi.