Dopo aver inutilmente cercato un “connettore” per permettere di sincronizzare le rubriche tra lo smartphone BlackBerry ed un generico programma di posta, ho spostato le mie ricerche verso una soluzione completamente open su piattaforme Linux, dove di fatto poco si indirizza l'interesse di RIM.
La ricerca mi ha portato su due distinti percorsi:
- utilizzo delle applicazioni per Microsoft Windows su piattaforma Linux, con WINE;
- utilizzo di applicazioni studiate e sviluppate per operare su piattaforma Linux nativa.
La soluzione WINE non ha dato grandi risultati, infatti è possibile utilizzare gli office 2000/2003 attraverso l'emulatore, ma le nuove versioni del Desktop Manager sono installabili, a causa di alcune incompatibilità.
I problemi possono essere risolti con opportuni aggiornamenti del motore WINE ed il caricamento di specifiche librerie, oltre ad un'azione di migrazione del DM verso WINE. Tuttavia la soluzione sarebbe stabile per un tempo limitato, in quanto sarebbe da rielaborare e collaudare per ogni nuovo rilascio o aggiornamento della DM.
La soluzione nativa si è invece dimostrata vincente, anche se non senza difficoltà e con la premessa che i prodotti utilizzati, al momento della realizzazione di questa guida, NON sono ancora completamente stabilizzati e quindi potrebbero portare a perdite di dati.
Integrazione dei prodotti e dello smartphone
Quanto vado ad illustrare, per le scelte di integrazione prese, non è di semplice implementazione e alla portata di tutti, ma chi sa muoversi su un sistema Linux dovrebbe riuscire ad installare e configurare il prodotto.
La mia ricerca si è soffermata sul progetti OpenSync e Barry, che combinati permettono di sincronizzare diverse tipologie di dispositivi in ambiente Linux, grazie ai plugin messi a disposizione da OpenSync.
Del prodotto Barry possono essere scaricati i sorgenti da compilare oppure i binari da installare già compilati per diverse distribuzioni.
La mia scelta è stata tuttavia quella di compilare il prodotto Barry partendo dai sorgenti, questo per via di alcune incompatibilità tra le librerie di distribuzione del mio installato di test e i file compilati.
Nel corso della compilazione è emersa la mancanza di alcuni pacchetti, che sono tutti reperibili all'interno del repository della distribuzione Linux o dei CD.
Nel seguito è riportata una lista dei pacchetti che hanno dipendenze dirette con i prodotti da installare.
Piattaforma di test
Per le prove è stata adottata una piattaforma Linux ospitata da una macchina virtuale VMWare, tenendo in considerazione le indicazioni riportate nelle diverse documentazioni dei due progetti integrati in questa soluzione.
- Sistema Operativo Linux Debian 4.0 etch con ambiente di sviluppo (compilatore, ecc);
- Ambiente grafico Gnome;
- Programma di posta Evolution;
- Opensync 0.22;
- Barry 0.12;
- Blackberry Perl 8100 (v4.2.1.103/Plat 2.3.0.82))
Si tenga presente che essendo Debian il sistema di base della distribuzione Ubuntu, quanto indicato in questa nota dovrebbe essere applicato alla pari anche su tale distribuzione.
Prerequisiti per l'installazione
Per poter compilare il prodotto Barry ed installare OpenSync sono indispensabili i seguenti pacchetti, nel caso di utilizzo dei binari possono non essere installate gli oggetti (dev).
- pkg-config
- libusb-dev
- libssl-dev
- libboost-serialization-dev
- libtar-dev
- libgtkmm-2.4-dev
- libglibmm-2.4-dev
- libglademm-2.4-dev
- zlib1g-dev
- gtkmm 2.4 - C++ GTK+ wrapper library
- glademm 2.4 - C++ glade wrapper library
- glibmm 2.4 - C++ glib wrapper library
- libtar 1.2.x - TAR file library
- zlib - compression library
- sqlite
- glib2
- libxml2
Installazione di Opensync 0.22
Nella distribuzione è solitamente installata la versione OpenSync0 0.19, che non è compatibile con il prodotto Barry, quindi per installare le componenti di OpenSync collegarsi al sito e scaricare i seguenti prodotti:
- libopensync0_0.22-etch2_i386.deb
- libopensync0-dev_0.22-etch2_i386.deb
- libopensync-plugin-evolution2_0.22-etch2_i386.deb
- libopensync-plugin-evolution2-dev_0.22-etch2_i386.deb
- msynctool_0.22-etch2_i386.deb
- multisync-gui_0.91.0+svn20061129-etch1_i386.deb
- opensyncutils_0.22-etch2_i386.deb
Il pacchetto multisync-gui può anche non essere installato, si tratta di un'interfaccia grafica per la creazione del gruppo di sincronizzazione, operazione che può essere svolta da riga di comando, visto che la GUI non permette di fatto di eseguire la configurazione completa, richiedendo quindi un'azione manuale.
Se si sta operando in ambiente grafico aprire una shell di testo, in modo da poter operare in riga di comando.
L'utente che esegue le operazioni in questa fase deve essere root, quindi aprire direttamente un “terminale root”, oppure cambiare i privilegi con i comandi sudo o su -.
Per comodità posizionarsi nella cartella che contiene i file scaricati in precedenza.
Lanciare quindi il comando di installazione per i vari pacchetti:
- dbkg -i libopensync0_0.22-etch2_i386.deb
- dbkg -i libopensync0-dev_0.22-etch2_i386.deb
- dbkg -i libopensync-plugin-evolution2_0.22-etch2_i386.deb
- dbkg -i libopensync-plugin-evolution2-dev_0.22-etch2_i386.deb
- dbkg -i msynctool_0.22-etch2_i386.deb
- dbkg -i multisync-gui_0.91.0+svn20061129-etch1_i386.deb
- dbkg -i opensyncutils_0.22-etch2_i386.deb
Nel corso dell'installazione potrebbero presentarsi degli errori causati dal mancato rispetto delle dipendenze dei pacchetti, in tal caso usare il programma di installazione pacchetti della distribuzione e cercare il prodotto indicato come mancate, quindi installarlo e rieseguire il comando di cui sopra.
Ultimati questi passi avremo a disposizione il motore di comunicazione verso i terminali smartphone.
Installazione di Barry
Dal sito del progetto Barry scaricare i sorgenti del prodotto, ovvero il pacchetto: barry_0.12.orig.tar.gz.
Si consiglia di salvare l'archivio nel percorso /usr/src.
Se si sta operando in ambiente grafico aprire una shell di testo, in modo da poter operare in riga di comando.
L'utente che esegue le operazioni in questa fase deve essere root, quindi aprire direttamente un “terminale root”, oppure cambiare i privilegi con i comandi sudo o su -.
Prima di iniziare la compilazione è necessario esplodere l'archivio scaricato, quindi nella shell eseguire i seguenti comandi:
- cd /usr/src
- tar -xzvf barry_0.12.orig.tar.gz
- cd barry-012
- make clean
- ./configure --with-boost=/usr --enable-gui --enable-opensync-plugin
- make
- make install
Il comando configure verifica il rispetto delle dipendenze di base e genera i file di progetto per la successiva compilazione, in questa fase possono presentarsi degli errori legati alla mancanza di alcune componenti necessarie per la creazione del nuovo binario o per mancanza di elementi del compilatore, in tal caso procedere all'installazione dalla distribuzione del sistema operativo.
Il comando make genera i file binari dell'applicazione, anche in questo caso potrebbero verificarsi degli errori come per il comando precedente.
Il comando make install copia i binari generati nelle opportune locazioni e imposta i permessi dei file in modo che possano essere eseguite, viene anche installata la documentazione accessibile con il comando man.
Per una questione di permessi di accesso di fatto l'applicazione principale non funziona se non viene eseguita dall'utente root, non è detto che sia così per tutte le distribuzioni, ma in attesa di ulteriori evoluzioni procedere in questo modo per aggirare il problema.
Aprire una shell utente e con il comando su – o sudo -s acquisire i privilegi di root.

Con il comando ls -la /usr/local/sbin/ controllare il gruppo associato al comando bcharge, che dovrebbe essere staff.
A questo punto associare il gruppo staff agli utenti che dovranno utilizzare la sincronizzazione dello smartphone. Per eseguire l'operazione usare il comando adduser <nome_utente> <nome_gruppo>, l'utente deve esistere.
Completata la modifica digitare exit per tornare alla sessione utente della shell.
La soluzione non è molto pulita, ma al momento è quanto di più rapido si possa fare.
Configurazione di Barry
I passi successivi devono essere eseguiti con il proprio utente Linux, in quanto le configurazioni e i salvataggi sono eseguite nella cartella personale dell'utente.
Collegando lo smartphone alla porta USB sul display compare il messaggio “Caricamento USB corrente non sufficiente...”, ignorare questo messaggio di errore.
Da una shell utente eseguire il comando /usr/local/sbin/bcharge per mappare lo smartphone, nel caso di terminali Perl è consigliabile eseguire il comando due volte, una con l'opzione -d.

Questo comando modifica le impostazioni di carica della batteria mandando un handshake ai terminali Blackberry, in modo da cambiare la corrente di caricamento erogata dalla USB da 100mA, default di linux, a 500ma, richiesti dal terminale, e quindi riconfiguare le comunicazioni in dual mode per poter agire sia sui database sia sullo storage.
Eseguire il comando btool che deve visualizzare le informazioni di base relative allo smartphone, ovvero modello e PIN.
Il comando btool permette di eseguire delle query sui database dello smartphone e di leggerne il contenuto, anche se non in formato usabile. Esegue inoltre delle conversioni in formato ldif per permettere l'importazione dei dati in un database LDAP. Per le opzioni possibili si consiglia la consultazione del manuale online (man btool).
Backup e restore del terminale
Come prima operazione procedere con l'esecuzione, per mettere al sicuro i dati del terminali prima delle successive operazioni.
Nella shell lanciare il comando barrybackup, che apre una piccola interfaccia grafica.
Le opzioni disponibili sono limitate, ma contiene quanto serve, è infatti possibile eseguire dei backup e dei restore selettivi andando nella sezione di configurazione nel menu Edit.
I file di backup sono salvati nel percorso /home/<nome_utente>/.barry/backup/<PIN_smartphone>/.
Sincronizzazione di rubrica, calendario e attività
Per poter procedere con le sincronizzazioni è necessario creare un gruppo di oggetti che contenga lo smartphone e i plugin usati. Il comando usato per questa azione è msynctool, di cui esiste un manuale in linea (man msynctool).
- creazione gruppo msynctool --addgroup <nome_gruppo>
- associazione membri msynctool –addmember <nome_gruppo> <nome_plugin>
I plugin da associare sono nell'ordine barry-sync e evo2-sync.
I due membri devono essere configurati con gli opportuni parametri attraverso il comando
msynctool --configure <nome_gruppo> <numero_membro>, dove numero membro è il progressivo dei membri inseriti con i precedenti comandi (1, 2, ...).
Il comando msynctool --configure grp_jolly 1 apre un editor di testo in cui dovrà essere riportato il PIN del terminale.
Nell'esempio dell'illustrazione il valore 3009efe3 deve essere sostituito con il PIN del terminale posseduto, seguito da due 1 separati da uno spazio.
Il comando msynctool --configure grp_jolly 2 apre un editor di testo in cui dovranno essere configurati i percorsi dei file di appoggio del programma di posta usato.

Nelle prove svolte con Evolution è stata inserita la seguente configurazione.
<config>
<address_path>file:///home/jolly/.evolution/addressbook/local/system</address_path>
<calendar_path>file:///home/jolly/.evolution/calendar/local/system</calendar_path>
<tasks_path>file:///home/jolly/.evolution/tasks/local/system</tasks_path>
</config>
Dove jolly è il nome dell'utente.
Assicurarsi dell'esistenza delle directory specificate, in caso contrario la sincronizzazione fallisce, per crearle aprire il programma di posta ed entrare nella rubrica, nel calendario, etc.
Lanciare il comando msynctool –sync grp_jolly e se tutto è andato per il verso giusto i contenuti verranno sincronizzati.
Utilizzo
In condizioni operative la procedura di utilizzo del programma diventa la seguente:
- collegamento del terminale;
- esecuzione del comando /usr/local/sbin/bcharge
- esecuzioni di msynctool –sync <nome_gruppo> o di barrybackup

