Questo manuale

Versione 0.5
Aggiornato a gnokii 0.6.27 in data 15/03/2009.
Questo documento è ancora in fase di rifinitura, quindi ogni commento è gradito.
Notare che i riferimenti sono quasi esclusivamente a sistemi Linux, ma gnokii funziona anche sui *BSD e su Windows con la differenza principale che i nomi delle porte sono diversi e non tutti i tipi di connessione potrebbero essere disponibile.
Autore: Daniele Forsi dforsi chiocciola gmail punto com

Introduzione

Il progetto gnokii fornisce la libreria libgnokii e alcuni programmi che ne fanno uso:

  • gnokii
  • xgnokii
  • smsd
  • gnocky

Installazione

È possibile installare gnokii tramite:

  • pacchetti binari già pronti (di solito i programmi si trovano in pacchetti separati rispetto alla libreria, quindi si dovrà installare più di un pacchetto)
  • compilazione dei sorgenti

Installare pacchetti binari

È la soluzione più veloce, ma è necessario un pacchetto specifico per il sistema operativo o distribuzione che si sta usando.
Ulteriori informazioni sui pacchetti si possono trovare qui:

Compilare i sorgenti

È la soluzione più lenta perché è necessario un ambiente di sviluppo (compilatore, librerie aggiuntive come spiegato in dettaglio nel file INSTALL, in inglese), ma permette di installare qualunque versione si desideri e di aggiornarla quando si vuole.
Si possono scaricare i sorgenti da un server CVS o sotto forma di archivio. Per ulteriori informazioni consultare la pagina http://gnokii.org/downloads.shtml (in inglese).

Configurazione

Sono tre i parametri più importanti da modificare nel file /etc/gnokiirc (se si vuole far usare la stessa configurazione a più utenti) o nel file $HOME/.gnokiirc (se si vuole personalizzare la configurazione per ogni utente del sistema):

  • il modello di telefono, che si imposta con il parametro model
  • la porta a cui è collegato, che si imposta con il parametro port
  • il tipo di connessione, che si imposta con il parametro connection

Il parametro "model"

Si riferisce al driver che gestisce una singola famiglia di telefoni e per i telefoni non Nokia l'unico valore che funziona è model = AT, mentre per telefoni Nokia recenti quasi certamente il valore più corretto è model = series40.
Attualmente 6510, series40 e series60 sono gestiti dallo stesso driver che automaticamente è in grado di distinguere i vari telefoni gestiti, dove necessario, come per gli SMS.
Per i Nokia Serie 60 prima e seconda versione è consigliabile installare gnapplet sul telefono e usare model = gnapplet.
Per i Nokia Serie 60 della terza versione è necessario usare model = AT se si usa il Bluetooth, mentre se si usa un cavo USB si può impostare model = series60, in ogni caso si potranno solo inviare SMS e non riceverli e ci sono altre limitazioni perché questi telefoni gestiscono meno comandi degli altri.
Per i telefoni Nokia costruiti approssimativamente prima dell'anno 2000, si può specificare un valore preciso se è conosciuto da gnokii (come model = 3330), o come ultimo tentativo per i vecchi telefoni è possibile provare i seguenti valori:

2110
3110
6110
6160
7110
AT

Si può usare model = AT anche con i telefoni Nokia, ma non conviene farlo perché in genere il protocollo Nokia FBUS supporta più comandi; questo è particolarmente vero nei modelli che usano i sistemi operativi Serie 40 e Serie 60 dove il protocollo AT permette di usare il telefono solo come modem per collegarsi a Internet (una cosa che non ha a che fare con gnokii) e per compiti minori, ed eventualmente per inviare SMS, ma non per riceverli o per operare sulla rubrica.

Il parametro "port"

La porta si riferisce al dispositivo usato per il collegamento in uso e dipende dal modello di telefono e da come lo si vuole collegare al computer. È possibile usare con gnokii solo i telefoni che supportano uno o più dei seguenti metodi:

  • Bluetooth, esempio port = aa:bb:cc:dd:ee:ff
  • cavo USB, esempio port = /dev/ttyACM0
  • infrarossi, esempio port = /dev/ircomm0
  • cavo seriale RS-232, esempio port = /dev/ttyS0
  • connessione TCP/IP, esempio port = indirizzo_computer:porta_tcp

In ogni caso è necessario che i permessi di accesso siano impostati opportunamente; quando si usaport = /dev/... questo in genere viene fatto automaticamente dal sistema tramite udev e se si usa connection = dku2libusb gnokii fornisce delle regole adatte nel file 45-nokiadku2.rules da copiare nella directory etc/udev/rules.d/.
Si tenga presente che spesso il telefono disattiva automaticamente il collegamento con il computer se non è usato per alcuni minuti e se sta funzionando a batteria.

Bluetooth

Gli adattatori Bluetooth tramite USB che seguono lo standard Bluetooth HCI (Host Controller Interface) sono gestiti dal modulo hci_usb che normalmente è caricato automaticamente (si può usare lsmod per verificare se è caricato).
In ogni caso è necessario aver impostato computer e telefono per l'associazione (pairing).
È consigliabile usare la connessione nativa di tipo Bluetooth inserendo nel file di configurazione i parametri

model = inserire il modello del telefono
connection = bluetooth
port = indirizzo bluetooth del telefono

in questo modo si individua univocamente il telefono da usare e funziona sia per Nokia che per altre marche.
In alternativa si può usare l'emulazione seriale, in questo caso il telefono viene individuato quando si crea il device /dev/rfcomm0 con ha il vantaggio che si possono usare telefoni diversi cambiando la corrispondenza a livello di sistema operativo, ma lasciando invariata la configurazione di gnokii (questo sarebbe utile se fosse gestito automaticamente dal sistema operativo).
La configurazione che emula un collegamento seriale con un telefono generico (non Nokia), è la seguente:

port = /dev/rfcomm0
model = AT
connection = serial

Cavo USB

I cavi che seguono lo standard CDC ACM (Communication Device Class, Abstract Control Model) sono gestiti dal modulo cdc_acm che è distribuito insieme al kernel di Linux e normalmente viene caricato in automatico quando si collega il telefono al computer tramite il cavo, ma in alcuni casi la modalità USB deve essere attivata esplicitamente dal menù del telefono.
Per i telefoni Nokia la configurazione consigliata è:

port = 1
model = series40
connection = dku2libusb

Se si collegano contemporaneamente più telefoni è necessario cambiare il parametro port che indica la posizione fisica a cui i telefoni sono stati collegati (1 è il primo telefono, 2 il secondo e così via) e quindi è un valore che può cambiare si si collegano due telefoni contemporaneamente.
In alternativa si può usare l'emulazione seriale, in questo caso il telefono viene individuato quando si crea il device /dev/ttyACM0 e quindi ha il vantaggio che si possono usare telefoni diversi cambiando la corrispondenza a livello di sistema operativo, ma lasciando invariata la configurazione di gnokii (questo può essere fatto con regole di udev).
La configurazione che emula un collegamento seriale con un telefono generico (non Nokia), è la seguente:

port = /dev/ttyACM0
model = AT
connection = serial

Infrarossi

Esistono due tipi di collegamento tramite infrarossi connection = irda (usato dai telefoni più recenti) e connection = infrared (usato dai telefoni più vecchi, approssimativamente fino all'anno 2000).
Se l'adattatore per il collegamento tramite infrarossi è supportato dal sistema operativo, il driver relativo viene caricato automaticamente, ma può essere necessario far creare il device /dev/irda0 e abilitare la ricerca dei dispositivi eseguendo il comando irattach irda0 -s.
In questo caso la configurazione tipo è:

port = /dev/irda0
model = inserire il modello del telefono
connection = serial

In alternativa si può usare l'emulazione seriale tramite il modulo ircomm-tty, impostando connection = serial come nell'esempio seguente:

port = /dev/ircomm0
model = AT
connection = serial

Cavo seriale

È il caso più semplice perché esistono driver per qualunque sistema operativo, ma è supportato solo dai modem GSM e dai telefoni più vecchi. L'unica difficoltà può consistere nell'attribuire all'utente i permessi di lettura e scrittura sul dispositivo.
Esempio di configurazione:

port = /dev/ttyS0
model = 3210
connection = serial

Se si verificano errori di timeout, è necessario aggiungere anche il parametro

sm_retry = 1

Il parametro "connection"

I valori ammessi sono:

serial
dau9p
dlr3p
m2bus
irda
bluetooth
dku5
dku2
dku2libusb
pcsc
tcp
tekram

È disponibile anche

infrared

da usare solo con i vecchi telefoni (come il Nokia 6110 degli anni '90 non il Navigator).

Utilizzo di xgnokii

Lanciare xgnokii e selezionare i comandi presenti nel menu contestuale che appare facendo clic con il tasto destro del mouse all'interno della finestra principale, oppure selezionare con il tasto sinistro i simboli grafici e le scritte nella parte destra della stessa finestra principale.
La maggior parte delle finestre secondarie ha un menu e una barra con i bottoni.
Un'immagine che mostra alcune finestre di xgnokii è disponibile qui.

Utilizzo di gnokii

Digitare gnokii --help per l'elenco dei comandi disponibili (si tenga presente che la maggior parte dei telefoni non risponde a tutti i comandi).

Utilizzo di gnocky

Lanciare gnocky.
Al momento gnocky ha meno funzioni di xgnokii.

Utilizzo di smsd

Smsd è un programma utile per chi vuol inviare e ricevere SMS in modo automatico; l'uso tipico è con un modem GSM collegato ad un server, ma nella cartella del programma ci sono degli esempi di come si possa usare in altri modi.
Digitare smsd --help per l'elenco dei comandi disponibili.