Ho giocato un po’ con le quattro cose del titolo, stimolato da un commento di Matteo Moro, questo. Il risultato è uno script shell molto semplice che chiede a quale porta è connesso il modem USB e mostra operatore a cui è connesso sulla rete GSM/3G ed il livello di segnale.
Se si opera da una shell, e non si ha a disposizione Zenity o un display X, lo script lavora totalmente da terminale, altrimenti passa in modalità GUI.
Per funzionare richiede che l’utente da cui viene eseguito abbia i diritti di scrittura sul device del modem. In Fedora basta assegnare all’utente anche il gruppo di sistema uucp, usando l’utility in Sistema, Amministrazione, Utenti e gruppi, oppure col comando:
# usermod -G uucp nomeutente
dato da root. Ricordo che per far valere le variazioni di permessi e gruppi ad un utente occorre terminare la sessione desktop e rientrare, altrimenti i nuovi gruppi non saranno attivi per l’utente.
E’ utile per capire se siamo agganciati all’operatore giusto e quanto segnale abbiamo senza fare strane manovre o digitare stringhe impossibili nel terminale.
Naturalmente, lo script non funziona se il modem è attivo, ossia stiamo connessi a Internet. Va lanciato prima di connettersi per controllare appunto la rete a cui siamo agganciati, ed evitare salassi al portafogli.
Lo script è qui:
ck3g (click col tasto destro e “salva con nome”). Ricordatevi di dargli i permessi di esecuzione con un chmod a+x ck3g, altrimenti non viene eseguito e lamenta un “permesso negato”. Non c’è nessun bisogno di eseguirlo da utente root.
L’utilità? Nessuna, è solo un esercizio di programmazione che mostra alcune tecniche per scrivere e leggere dai dispositivi con uno script shell, oltre all’uso di alcune funzioni di Zenity, di cui avevo già parlato in passato.
Riferimenti
- Fedora e modem USB Momodesign HSDPA.
- I precedenti articoli su Zenity: Zenity #1, Zenity #2, Zenity #3.


#1 da Sde il 14 September 2008 - 17:41
Provato, utile e simpatico script.
Consiglierei di aggiungere delle istruzioni “if” e “then” inerenti la
variabile “$op”, così da definire sulla finestra l’operatore in modo
stringa di testo e non in modo numerico anonimo…
Un esempio sul tipo basic Applesoft
(lo so: trattasi di informatica brontosaura!)
if $op = 22201 then op = “I – TIM” : a = true
if $op = 22288 then op = “I – WIND” : a = true
if $op = 22299 then op = “I – TRE” : a = true
if $op = ????? then op = “I – VODAFONE” : a = true
if a = false then op = “Operatore Sconosciuto”