Cerca nel blog

Loading

8 gennaio 2011

[Guida] Sincronizzare iPhone/iPod/iPad con linux (libimobiledevice)

Se state leggendo questa pagina è perché siete dei fortunati possessori di un dispositivo Apple di ultima generazione e allo stesso tempo siete utenti linux. Fino a non molto tempo fa, questa era una situazione parecchio critica perché significava essere costretti ad utilizzare iTunes (che io personalmente detesto) su Windows o Mac perché non ne esiste una versione per il pinguino.

A partire dall'agosto 2007, un gruppo di sviluppatori ha iniziato un progetto per insegnare al pinguino a parlare la lingua della frutta, o almeno questo è il motto (Teaching penguins to talk to fruits) di libimobiledevice di cui vi ho già riportato le mie prime impressione in un post precedente

Questa libreria è in grado di gestire completamente il vostro iCoso, dall'attivazione al backup, dalla sincronizzazione delle vostre canzoni alla gestione delle applicazioni che avete acquistato. Inoltre, cosa non trascurabile, linux riconosce l'iPhone come un'interfaccia di rete e quindi lo potete utilizzare facilmente come modem (tethering) e collegarvi ad internet attraverso il piano dati che avete sottoscritto con il vostro gestore. Nella mia recensione precedente vi avevo annunciato qualche problemino di compatibilità con l'ambiente KDE, così per poter effettuare un test più approfondito mi sono installato Ubuntu 10.10 (Maverick). In realtà dovrebbe funzionare ugualmente con ogni altra distribuzione basata su Gnome.

Sommario

  1. Introduzione e prerequisiti
  2. Aggiornamento dei pacchetti
  3. Primi passi
  4. Facciamo un backup
  5. Gestione della musica
  6. Gestione delle fotografie
  7. Gestione delle applicazioni
  8. Altre ed eventuali



Introduzione e prerequisiti

Dopo una normale installazione di Ubuntu 10.10 vi ritroverete già installata la libreria in questione e tutte le sue dipendenze. Qui di seguito trovate una lista di cosa vi serve necessariamente (e ripeto dovrebbe essere già installato) e cosa opzionalmente potete aggiungere.
  • libimobiledevice1 (versione 1.0.1-1). Il cuore della libreria. Non è la versione stabile più recente (1.0.4) che vi serve necessariamente se il vostro iCoso ha una versione del firmware pari o superiore a 4.2.1. (Vedi capitolo Aggiornamento nel seguito).
  • libplist1 (1.3-1). Si tratta di una libreria in grado di gestire i file di preferenze e di configurazione (plist) di Apple. Viene utilizzata da libimobiledevice per la sincronizzazione dei contenuti. E' già aggiornata alla versione più recente disponibile.
  • usbmuxd (1.0.4-1) e la sua libreria. Si tratta del demone che permette al sistema operativo di riconoscere l'iPhone come tale. E' ovviamente necessario. Non è l'ultima versione disponibile (1.0.6), se volete vedere il capitolo Aggiornamento.
  • libimobiledevice-utils (non installato) [opzionale]. Questo pacchetto contiene alcuni programmi da eseguire da linea di comando e che permettono di verificare le informazioni del vostro iCoso. Di default non viene installato, ma io lo consiglio specie perché credo sia necessario se volete eseguire il backup del vostro dispositivo.
  • ifuse (non installato) [opzionale]. Questo pacchetto contiene il modulo Fuse per iCosi, ovvero vi permette di montare manualmente l'iPhone in una directory specifica del vostro file system. A parer mio non vi serve a niente.
  • nautilus-ideviceinfo (non installato) [opzionale]. Niente di fondamentale, questo pacchetto vi permette di visualizzare le informazioni del vostro iCoso direttamente in Nautilus senza andare via terminale. Come ho già detto, niente di fondamentale, ma lo installerei.
Una piccola nota tipografica. I comandi da digitare da terminale sono incapsulati in box da cui potete fare copia e incolla. In alcuni casi, vedrete che il comando è preceduto dal prompt del mio terminale, questo potrebbe differire dal vostro e non dovete copiarlo! Ok? Altra nota, spesso mi riferirò al vostro dispositivo chiamandolo iPhone, non fateci caso, potete sostituirlo con iPod o iPad a vostro piacere.

La situazione per KDE

E' necessario aggiungere una precisazione per gli utenti KDE. Vi accennavo ad alcuni problemi per quanto riguarda questo desktop environment e principalmente sono legati alla gestione della comunicazione verso l'iCoso. Gvfs è il servizio di Gnome che si occupa di montare automaticamente l'iDevice e di stabilire la comunicazione attraverso l'AFC (Apple File Connection). Ovviamente gvfs non c'è in KDE dove per fare la stessa si deve ricorrere ad un wrapper per kio (kio_afc) di cui al momento ne esiste un'implementazione molto basica ancora non impacchettata. Ci sono istruzioni abbastanza dettagliate su come compilarlo sul proprio computer a questo link. Io sono riuscito ad installarlo senza problemi, nel caso voi ne troviate, basta lasciare un messaggio qui sotto.

Una volta installato il kio_afc non aspettatevi che il vostro iPhone appaia automaticamente sul desktop come succede in Gnome, ma potrete esplorare il file system del vostro iphone aprendo una finestra di Konqueror o Dolphin e digitando nella barra degli indirizzi afc://. Purtroppo il wrapper afc è ad uno stadio di sviluppo che definirei embrionale e quindi a parte guardare cosa c'è nell'iphone potrete fare molto poco.


Un'altra cosa che potete provare a fare è installare ifuse. Vi avevo detto essere inutile sotto Gnome, ma magari vi può servire su KDE. Dopo averlo installato create un mounting point (ovvero una directory) da assegnare al vostro iPhone, diciamo $HOME/iphone e poi da terminale digitate questo comando:


ifuse $HOME/iphone


A questo punto nella cartella specificata troverete il contenuto del vostro dispositivo.

Nel mio caso specifico - che però potrebbe essere solo il mio - non sono riuscito a gestire la musica con Amarok (2.3), anzi quando Amarok è in funzione e connetto l'iPhone, il demone usbmuxd non riesce a prenderne il controllo e così nemmeno ideviceinfo riesce a funzionare. C'è un caveat per questo: sul sito ufficiale di Amarak è messo ben in evidenza che bisogna aspettare la versione 2.4 (che per il momento è disponibile solo in beta) per avere una gestione come si deve dei dispositivi con la mela morsicata. E' un peccato perché io personalmente preferisco di gran lunga Amarok a Rhythmbox, ma questa è la vita.

La mia opinione personale è che gli sviluppatori di libimobiledevice siano gnome-centrici (e non c'è niente di male nell'esserlo), il che non vuol dire che la libreria e tutti i suoi tools non funzioneranno mai su KDE, ma che ci vorrà un po' più di tempo.

Aggiornamento dei pacchetti

Come già precedentemente accennato la versione della libreria distribuita con Ubuntu 10.10 non è l'ultima disponibile e potreste incontrare problemi di compatibilità con le ultime versioni di iOS. Vi consiglio di aggiornare dunque. A questo indirizzo trovate il PPA di uno degli sviluppatori da dove recupare il software aggiornato. La stringa apt per aggiungere il repositorio è quella riportata nel box qui sotto.

deb http://ppa.launchpad.net/pmcenery/ppa/ubuntu maverick main

    Non appena aggiunto il repositorio, l'Ubuntu software center dovrebbe aggiornare immediatamente il software già precedentemente installato.

    Primi passi

    Come prima cosa, dopo aver controllato di avere tutti i pacchetti obbligatori e magari anche quelli che vi ho consigliato, possiamo collegare l'iDevice al PC attraverso il cavo USB in dotazione. Se come me state usando una virtual machine, assicuratevi che il controllo della periferica passi dall'host al guest, se siete in dubbio chiedete nei commenti che vi spiego nel dettaglio. Appena collegato, il vostro gingillo Apple potrebbe vibrare un paio di volte, per segnalarvi l'avvenuta connessione al Pc. Questione di istanti e sullo schermo vi dovrebbero comparire una dopo l'altra queste due finestre di dialogo.


    L'icona dell'iCoso vi appare sul desktop
    Io di solito annullo entrambe, ma se volete scaricare direttamente le foto o gestire la musica potete accettare una delle due. La finestra di dialogo vi permette anche di scegliere il programma che preferite. Fin qui tutto chiaro vero? Nel frattempo sul Desktop dovrebbe essere apparsa l'icona con il vostro dispositivo e anche il suo nome e se gli cliccate sopra vi si apre una finestra di Nautilus che vi permette di esplorare il contenuto del vostro iCoso come se fosse una memoria di massa. Ora se premete sull'icona dell'iPhone con il tasto destro e selezionate Proprietà vi si apre una bella finestra di dialogo e, se avete installato Nautilus-ideviceinfo, l'ultima tab contiene tutte le informazioni del vostro cellulare come nella foto qui sotto. Mi sono permesso di mascherare i miei dati sensibili.

    Informazioni sul dispositivo direttamente
    disponibili in Nautilus.

    Facciamo un backup

    (Attenzione! Il backup funziona solo se avete un iDevice con firmware <= 3.1.3. Se avete il fw 4.x avete due scelte: o compilare una versione più nuova della libreria seguendo le istruzioni qui sotto, o attendere che venga rilasciata la prossima versione stabile).

    Come dice il vecchio saggio: better safe than sorry. Così prima di cominciare a smanettare, vi consiglio vivamente di fare un bel backup. Magari l'avrete già fatto da iTunes l'ultima volta che l'avete usato, quindi perché non farlo anche la prima volta che usate linux per gestire l'iPhone. Per quanto ne so, non esiste ancora uno strumento con interfaccia grafica in grado di fare questa operazione, quindi dobbiamo ricorrere al buon vecchio terminale. Il comando che dobbiamo utilizzare è idevicebackup e nella finestra qui sotto vedete l'output del suo help.

    idevicebackup --help
    Usage: idevicebackup [OPTIONS] CMD [DIRECTORY]
    Create or restore backup from the current or specified directory.

    commands:
    backup Saves a device backup into DIRECTORY
    restore Restores a device backup from DIRECTORY.

    options:
    -d, --debug enable communication debugging
    -u, --uuid UUID target specific device by its 40-digit device UUID
    -h, --help prints usage information

    Vedete che lo stesso comando può essere utilizzato sia per effettuare una copia di backup sia per ripristinare una copia eseguita in precedenza. L'argomento facoltativo [DIRECTORY] rappresenta il percorso dove volete salvare / recuperare il vostro backup. La cosa interessante è che idevicebackup è in grado di fare backup incrementali, cioè la prima volta che lo lanciate, eseguirà un backup completo, mentre le volte successive copierà solo quanto è stato modificato.

    Backup con iOS 4.x

    Se stai leggendo questo paragrafo è perché sei molto coraggioso e anche molto impaziente. Hai un iDevice con fw >= a 4 e vorresti farne il backup. Il motivo per cui la versione stabile che avevate già installato non funziona, lo trovate ben spiegato in questo bug report dallo sviluppatore in persona; anche se il titolo si riferisce ad iPhone 4, in realtà è valido per tutti gli iOS 4.x. Visto che questa versione non è ancora stata giudicata stabile e affidabile dagli sviluppatori, utilizzatela a vostro rischio e pericolo.

    Per poter compilare questo codice sorgente dovete installare alcuni pacchetti che di default potrebbero non esserci. Il modo più rapido è attraverso il seguente comando da terminale:

    sudo apt-get install build-essential automake autoconf libtool\
    libgnutls-dev libglib2.0-dev libxml2-dev libreadline5-dev \
    python-dev swig libusbmuxd-dev libplist-dev libplist++ \
    libplist++-dev

    L'operazione potrebbe richiedere qualche minuto e occuparvi qualche megabyte sull'harddisk. Adesso dobbiamo andare a prendere il codice da compilare, per questo usiamo il programma git sempre da linea di comando.

    git clone http://git.sukimashita.com/libimobiledevice.git
    cd libimobiledevice
    git checkout mobilebackup2

    E adesso cominciamo a compilare. Per farlo dovete digitare i comandi che seguono, ma prima di farlo forse vi conviene leggere sotto il box che cosa fatto.

    ./autogen.sh
    ./configure --prefix=$HOME/test
    make
    make install

    • Il primo comando serve per analizzare il vostro sistema e per produrre lo script di configurazione. La sua esecuzione si interrompe quando viene individuata la mancanza di una libreria o di un pacchetto mancante. In quel caso dovete installare il pacchetto e ripetere la procedura.
    • Il secondo comando esegue la vera configurazione della sorgente. In realtà viene eseguito in automatico da autogen.sh se questo termina con successo, ma in tal caso la variabile --prefix viene lasciata al valore di default (/usr/local). Io personalmente preferire mettere il tutto in una directory di test per evitare di fare confusione con le altre librerie installate e perché  quando non volete più usarlo basta rimuovere l'intera cartella.
    • Compila il codice. Potreste vedere dei warning, non preoccupatevi. Si riferiscono al codice e non alla vostra compilazione. Se la procedura va a buon fine arrivate alla fine senza errori, altrimenti vi compare la scritta Error... In quel caso, o sapete cosa e come fare o altrimenti provate a chiedere nei commenti qui sotto.
    • L'ultimo comando installa quanto avete appena prodotto nella directory indicata da prefix. Se avete scelto un "prefix" al di fuori della vostra home, allora dovrete premettere sudo al comando e digitare la vostra password.
    Avete fatto? Ci siete riusciti? Spero di sì. Adesso nella cartella $HOME/test dovreste trovare altre 4 cartelle e in bin trovate tutti i comandi che potete utilizzare. Per fare il backup digiteremo questo comando:

    toto@toto-VirtualBox:$ cd $HOME/test
    toto@toto-VirtualBox:~/test$ bin/idevicebackup4 backup $HOME/Documents/iphone-backup/

    Notate che prima di eseguire il comando mi sono spostato nella directory $HOME/test e che ho specificato il percorso (bin/) perché questa cartella non appartiene al vostro path di esecuzione e notate anche il 4 alla fine del comando. Se tutto va come dovrebbe andare, nel giro di qualche minuto vi troverete nella cartella specificata un backup completo del vostro iDevice.



    Musica maestro

    Gestione della libreria musicale di iPhone
    da Rhythmbox
    Il prossimo passo è quello di giocare con i brani che avete nella vostra libreria sul Pc e quelli sull'iDevice. 
    Aprendo Rhythmbox, l'iDevice vi dovrebbe comparire nella colonna di sinistra sotto la voce dispositivi. Cliccandoci sopra vedrete comparire le vostre playlist e i vostri brani. Li potete ascoltare direttamente sul Pc, schiacciando il tasto play, oppure potete trasferirli nella vostra libreria locale. Per trasferire musica in entrambe le direzioni dovete fare semplicemente quello che il vostro intuito vi dice di fare: ovvero selezionate il brano o i brani che volete copiare e trascinateli dal Pc all'iPhone o viceversa. Dite la verità che iTunes non vi manca nemmeno un po'!

    Finestra di dialogo per la sincronizzazione
    Se sentite la nostalgia della sincronizzazione (che tanto mi ha fatto impazzire con iTunes) potete utilizzarla anche con Rhythmbox, dovete cliccare con il tasto destro su l'icone dell'iPhone e scegliere Sincronizzazione. Vi si apre una finestra di dialogo qui a lato dove potete scegliere quali playlist sincronizzare e quali escludere. Un aspetto positivo rispetto a iTunes (un altro?) è che prima di effettuare l'operazione vi viene detto quanti brani verranno copiati e quanti rimossi dal vostro iCoso. Almeno possiamo evitare brutte sorprese...
    Se cliccate su sincronizza il dispositivo, inizierete il trasferimento dei brani, che potrebbe impiegare anche qualche minuto a seconda della quantità. Durante la sincronizzazione, il display del vostro iCoso si accenderà e spegnerà più volte mostrando la tipica schermata con la scritta "Sincronizzazione in corso". E' tutto normale e non scollegate, mi raccomando!

    Si possono fare le suonerie?

    Certo che si possono fare, come no! La procedura è un po' macchinosa e quindi richiede una guida a sé stante che però trovate già bella pronta sull'unico-lab.

    Gestire i video

    Grazie al suggerimento di un nostro lettore, mi sono interessato del problema della gestione dei video, che sono sincronizzati contestualmente alla musica, ma che richiedono un po' di attenzione. Iniziamo con il chiarire che libimobiledevice si occupa di gestire la comunicazione tra il vostro iDevice e il programma che utilizzate per la gestione dei contenuti multimediali. Altro punto importante da tenere a mente è che iPhone richiede che il vostro video sia in un formato particolare, sia in termini di codifica sia in termini di risoluzione.

    Per questo motivo abbiamo preparato un'altra guida ad-hoc che trovate a questo link!

    Fotografie e immagini

    La gestione delle fotografie è talmente banale che non serve nemmeno avere libimobiledevice. Se volete potete utilizzare il vostro programma preferito per la gestione della vostra libreria fotografica, oppure potete aprire Nautilus, entrare nella cartella DCIM e scaricare le foto dove meglio credete. Non credo serva aggiungere altro, vero?

    Gestione delle applicazioni

    Il prossimo passo è gestire le applicazioni che avete installato sul vostro dispositivo. Personalmente mi piacerebbe poterle archiviare sul mio computer in modo da poterle reinstallare in un secondo momento o in caso di una ripristino totale dell'iCoso. Se questo è anche il vostro desiderio, allora ideviceinstaller è il programma che vi serve. Purtroppo non esiste già impacchettato e bisogna compilarselo a mano, ma tranquilli perché sto per dirvi passo passo cosa fare.

    Iniziamo con installare un po' di pacchetti utili, il modo più rapido è via terminale, quindi apritene uno e digitate quanto riportato nella finestra qui sotto.

    sudo apt-get install build-essential automake autoconf libtool\
    libgnutls-dev libglib2.0-dev libxml2-dev libreadline5-dev \
    libusbmuxd-dev libplist-dev libplist++ libplist++-dev libzip libzip-dev

    A questo punto dobbiamo scaricarci il codice da compilare; usiamo il comando seguente:

    git clone http://git.sukimashita.com/ideviceinstaller.git
    cd ideviceinstaller

    Adesso possiamo partire con la compilazione vera e propria che si compone di 4 passaggi

    ./autogen.sh
    ./configure --prefix=$HOME/test
    make
    make install

    Se avete compilato l'ultima versione di libimobiledevice seguendo le mie istruzioni, allora noterete che il processo è del tutto identico. Vi consiglio di andare a leggervi gli avvertimenti che vi avevo dato in precedenza. Anche in questo caso, sarei propenso ad utilizzare per l'istallazione un prefix diverso da quello di sistema, perché credo che nel giro di pochi mesi, se non settimane, verrà reso disponibile un pacchetto precompilato presso lo stesso repositorio da dove avete già ottenuto gli aggiornamenti. In questo modo, prima di installare il pacchetto rimuovete la directory test e vi siete tolti tutti i problemi.

    Una volta terminata la compilazione, nella cartella $HOME/test/bin troverete il comando ideviceinstaller che diventerà il vostro miglior amico nella gestione delle applicazioni. Andiamo a vedere un piccolo help.

    toto@toto-VirtualBox:$ cd $HOME/test
    toto@toto-VirtualBox:~/test$ bin/ideviceinstaller --help
    Usage: ideviceinstaller OPTIONS
    -U|--uuid UUID Target specific device by its 40-digit device UUID.
    -l|--list-apps List apps, possible options:
    -o list_user - list user apps only (this is the default)
    -o list_system - list system apps only
    -o list_all - list all types of apps
    -o xml - print full output as xml plist
    -i|--install ARCHIVE Install app from package file specified by ARCHIVE.
    -u|--uninstall APPID Uninstall app specified by APPID.
    -g|--upgrade APPID Upgrade app specified by APPID.
    -L|--list-archives List archived applications, possible options:
    -o xml - print full output as xml plist
    -a|--archive APPID Archive app specified by APPID, possible options:
    -o uninstall - uninstall the package after making an archive
    -o app_only - archive application data only
    -o copy=PATH - copy the app archive to directory PATH when done
    -o remove - only valid when copy=PATH is used: remove after copy
    -r|--restore APPID Restore archived app specified by APPID
    -R|--remove-archive APPID Remove app archive specified by APPID
    -o|--options Pass additional options to the specified command.
    -h|--help prints usage information
    -D|--debug enable communication debugging


    Probabilmente la prima cosa che vorrete fare sarà vedere quali sono le applicazioni che avete installato, per dovete usare l'opzione -l e potete scegliere se visualizzare tutte le applicazioni (-o list_all), quelle di sistema (-o list_system) o solo quelle installate da voi (-o list_all). In pratica utilizzate uno di questi comandi:

    toto@toto-VirtualBox:~/test$ bin/ideviceinstaller -l -o list_all
    toto@toto-VirtualBox:~/test$ bin/ideviceinstaller -l -o list_system
    toto@toto-VirtualBox:~/test$ bin/ideviceinstaller -l -o list_user

    Digitando uno di quei comandi, vi apparirà sul terminale una lista con a sinistra una stringa che rappresenta il codice dell'applicazione (APPID) e nella colonna di destra il nome dell'applicazione stessa.

    Il prossimo passo è l'archiviazione delle applicazioni; per farlo abbiamo due opzioni:
    1. archiviarle e lasciarle nella cartella ApplicationArchives sull'iPhone,
    2. archiviarle e trasferirle sul pc
    Ecco qui i due comandi, rispettivamente:

    toto@toto-VirtualBox:~/test$ bin/ideviceinstaller -a pippo.pluto.paperino
    toto@toto-VirtualBox:~/test$ bin/ideviceinstaller -a pippo.pluto.paperino -o copy=$HOME/Documents/archivio-app -o remove

    In questo esempio pippo.pluto.paperino è l'APPID che avete ricavato dal comando list e $HOME/Documents/archivio-app è la cartella sul vostro computer dove andrete a mettere l'applicazione. Attenzione che dovete creare la cartella di destinazione prima di eseguire i comando.

    A questo punto, volendo potete installare un applicazione che avete archiviato sul PC e rimosso dal dispositivo digitando il comando seguente:

    toto@toto-VirtualBox:~/test$ bin/ideviceinstaller -i $HOME/Documents/archivio-app/pippo.pluto.paperino.ipa

    Ricordatevi di sostituire a $HOME/Documents/archivio-app/pippo.pluto.paperino.ipa il percorso completo all'applicazione che avete precedentemente archiviato su Pc.

    Volete archiviare tutte le applicazioni con un solo comando? Eccovi serviti:

    toto@toto-VirtualBox:~/test$ for i in `bin/ideviceinstaller -l -o list_user | awk '{print $1}'` ; do bin/ideviceinstaller -a $i -o copy=/home/toto/Documents/iphone-backup/apps -o remove ; done

    Posso trasferire applicazioni da un iPhone ad un altro?

    Bella domanda. Una volta che avete archiviato le vostre applicazioni con il comando sopra citato, la domanda: posso installarle anche su un altro iCoso usando l'opzione -i del comando ideviceinstaller? La risposta è tecnicamente sì, ho provato ad installare un'applicazione gratuita originariamente presa dal cellulare di mia moglia su quello di mio cognato, ma nonostante l'installazione fosse terminata con successo, l'applicazione non era in grado di funzionare.

    Il motivo è da ricercarsi nel fatto che all'interno del file .ipa, che altro non è che un archivio zippato e di cui  quindi potete facilmente vedere il contenuto, ci sono delle informazioni che riguardano il vostro Apple Store account e che quindi vi identificano univocamente.

    Magari un giorno un qualche hacker troverà il modo per farlo in tutta sicurezza, ma questo argomento esula dallo scopo di questa guida.

    Cosa manca?

    Per farmi veramente felice fino in fondo, vorrei provare ad attivare un dispositivo, aggiornarne il firmware, usare il tethering e sincronizzare i contatti. Tutto questo dovrebbe essere possibile usando libimobiledevice, ma non ho ancora avuto modo di provarlo.

    Se questa guida vi è piaciuta mi fa piacere e vi ringrazio in anticipo se la diffondete. Se avete trovato delle inesattezze, lasciatemi un messaggio e sarò felice di correggerle. Se non vi è piaciuta, me ne rammarico, ma ci posso fare ben poco.

    Chiunque può lasciare commenti su questo blog, ammesso che vengano rispettate due regole fondamentali: la buona educazione e il rispetto per gli altri.

    Per commentare potete utilizzare diversi modi di autenticazione, da Google a Facebook e Twitter se non volete farvi un account su Disqus che resta sempre la nostra scelta consigliata.

    Potete utilizzare tag HTML <b>, <i> e <a> per mettere in grassetto, in corsivo il testo ed inserire link ipertestuali come spiegato in questo tutorial. Per aggiungere un'immagine potete trascinarla dal vostro pc sopra lo spazio commenti.

    A questo indirizzo trovate indicazioni su come ricevere notifiche via email sui nuovi commenti pubblicati.

    Related Posts Plugin for WordPress, Blogger...