giancarlomangiagli.it

Roam - Roaming Wi-Fi automatico per Linux

Icona dell'applicazione Roam per il roaming Wi-Fi

Il problema

I portatili Linux possono rimanere connessi a una rete Wi-Fi anche quando il segnale è diventato debole o instabile, pur avendo a disposizione un'altra rete Wi-Fi conosciuta con un segnale molto migliore.

Il problema si nota soprattutto in case grandi, uffici, magazzini, scuole, laboratori, alberghi e altri ambienti in cui sono disponibili più punti di accesso o più reti Wi-Fi.

La situazione che volevo affrontare è semplice: un portatile ha già salvato diverse reti Wi-Fi e l'utente si sposta da un'area a un'altra. Il computer potrebbe continuare a usare la prima rete anche quando un'altra rete salvata è ormai nettamente migliore.

L'idea

Roam è una piccola applicazione per Linux progettata per controllare la connessione Wi-Fi corrente e passare automaticamente a una rete nettamente migliore, scelta dall'utente, quando la connessione in uso diventa debole o instabile.

Roam usa NetworkManager e non cerca di sostituirlo. NetworkManager rimane responsabile della connessione Wi-Fi effettiva, mentre Roam aggiunge una politica di roaming.

L'utente seleziona esplicitamente, tra i profili Wi-Fi salvati in NetworkManager, le reti che Roam può prendere in considerazione per il roaming.

Come funziona

Roam valuta continuamente la connessione corrente e le alternative ammesse. Non sceglie semplicemente la rete con il valore di segnale più alto in un dato istante, perché questo potrebbe provocare continui passaggi da una rete all'altra quando i segnali sono simili.

La decisione tiene quindi conto di:

L'obiettivo è un passaggio automatico prudente, non una continua competizione tra punti di accesso vicini.

Reti Wi-Fi diverse

Roam è pensato non solo per il caso in cui più punti di accesso usino lo stesso SSID. Gestisce anche il caso in cui l'utente abbia salvato reti Wi-Fi diverse, ad esempio:

WiFi-Ufficio
WiFi-Laboratorio
WiFi-Magazzino

L'utente può scegliere esplicitamente quali di questi profili salvati rendere disponibili per il roaming. Le reti sconosciute o non selezionate vengono ignorate.

Due semplici impostazioni

Modalità

Roam offre due modalità:

Reattività

L'utente può scegliere una reattività bassa, media o alta. Questa impostazione determina quanto facilmente Roam considera utile un cambiamento, senza esporre all'utente soglie tecniche.

Cosa non è Roam

Roam non è:

Privacy

Roam è progettato per funzionare localmente. Non richiede un account né usa servizi cloud, telemetria, analisi, caricamento di segnalazioni di errore o monitoraggio remoto.

Roam non ha bisogno di memorizzare le password Wi-Fi. La configurazione persistente contiene solo la modalità selezionata, la reattività e gli identificativi dei profili NetworkManager scelti dall'utente.

Lo storico del segnale usato dal motore decisionale esiste solo in memoria. Il progetto è concepito per non memorizzare lo storico delle reti Wi-Fi, la posizione, gli indirizzi IP, i dati DNS o altre informazioni non necessarie al roaming.

Linux e NetworkManager

L'implementazione attuale è volutamente dedicata ai sistemi Linux che usano NetworkManager. Il servizio in background comunica con NetworkManager tramite D-Bus, mentre l'interfaccia grafica è un client separato basato su GTK4 e libadwaita.

Chiudere la finestra grafica non interrompe il roaming: il servizio in background continua a funzionare nella sessione dell'utente.

Codice sorgente

Il progetto è open source e il codice sorgente è disponibile su GitHub:

https://github.com/ossacolsale/roam

Installazione

Il progetto è in fase di preparazione per una distribuzione più semplice tramite pacchetti Linux nativi e compilazione dai sorgenti. Le istruzioni di installazione aggiornate e gli eventuali pacchetti disponibili sono pubblicati su GitHub.

Versioni di Roam

A chi si rivolge Roam?

Roam è pensato per chi usa Linux e si sposta in edifici o altre aree con più reti Wi-Fi disponibili, e vuole evitare che il computer resti collegato a una rete debole quando nelle vicinanze è disponibile un'alternativa salvata migliore.

È particolarmente adatto a chi cerca il passaggio automatico tra reti Wi-Fi, il roaming tra SSID diversi o una soluzione locale basata su NetworkManager che non richieda una rete mesh.

Stato attuale

Roam è un progetto open source attivo. L'implementazione attuale si concentra sull'affidabilità del funzionamento su Linux, su un comportamento prudente e sulla semplicità di installazione. Le prove nell'uso reale restano importanti, perché il comportamento della rete wireless dipende dalla scheda Wi-Fi, dal driver, da NetworkManager e dalle condizioni radio dell'ambiente.