venerdì 2 agosto 2013

Raspberry Pi - come installare e configurare Transmission-daemon, il celebre client BitTorrent

Uno dei modi più proficui per sfruttare il Raspberry Pi, non è tanto quello di utilizzarlo come sostituto economico di un desktop, ma più che altro è vantaggioso farlo lavorare autonomamente ed accedervi in remoto quando necessario. Ad esempio, se abbiamo necessità di scaricare dei file di grandi dimensioni dalla rete sfruttando il protocollo di condivisione BitTorrent, sarebbe un incredibile spreco di energia utilizzare un normale computer desktop. Inoltre questa operazione spesso richiede tempi lunghi e la presenza dell'utente davanti al computer non è affatto necessaria. Ecco che qui entra in gioco il Raspberry Pi, con i suoi soli 2 Watt di consumo per ora!
Nel precedente post ho spiegato come installare e configurare Samba, adesso proseguiamo la serie di guide dedicate al Raspberry Pi con l'installazione di Transmission-daemon.

Transmission - il popolare client BitTorrent


Transmission è il nome di un client BitTorrent  molto conosciuto tra gli utenti di sistemi GNU/Linux ed anche tra quelli che utilizzano OS X, a mio giudizio è il migliore.
Transmission-daemon invece è lo stesso programma, ma in versione daemon, cioè privo di interfaccia grafica, il suo scopo è quello di lavorare in background, proprio ciò di cui abbiamo bisogno per utilizzarlo sul Raspberry Pi.
Prima di iniziare la procedura di installazione assicuratevi di aver collegato e configurato correttamente un disco esterno tramite porta USB, se non lo avete già fatto fatelo ora (nel precedente post troverete come fare).
A questo punto poniamo il caso che il vostro disco sia montato in /mnt/nas.
Prima di installare Transmission-daemon aggiorniamo la lista dei pacchetti del repository con

sudo apt-get update

quindi installiamo con

sudo apt-get install transmission-daemon

Transmission necessita di 3 cartelle, una dove mettere i file completati, una dove mettere i file che si stanno scaricando ed una terza opzionale dove l'utente può spostare i file .torrent che vuole aggiungere alla lista dei download.
Andiamo quindi a creare queste cartelle sul nostro disco esterno:

mkdir /mnt/nas/complete

mkdir /mnt/nas/incomplete

mkdir /mnt/nas/watch

Ora abbiamo creato le tre cartelle, la prima per i file completi, la seconda per quelli incompleti e la terza per i file .torrent.
Tutto è pronto per la configurazione di Transmission-daemon.

cd /etc/transmission-daemon

Questa è la posizione in cui troveremo il file di configurazione settings.json, apriamo il file per modificarlo con

sudo nano settings.json

Il file è composto di molte righe, ognuna delle quali contiene un'impostazione del programma.
Cerchiamo la riga denominata "download-dir" ed inseriamo il percorso della nostra cartella destinata a contenere i file completati, diventerà così:

"download-dir": "/mnt/nas/complete",

Ora cerchiamo la riga denominata "incomplete-dir" ed inseriamo il percorso della cartella incomplete:

"incomplete-dir": "/mnt/nas/incomplete",

Nella riga seguente abilitiamo l'utilizzo della cartella incomple:

"incomplete-dir-enabled": true,

Le prossime impostazioni servono ad abilitare l'accesso in remoto a Transmission-daemon, così da poterlo controllare da un altro computer.
Cerchiamo la riga denominata "rpc-enabled" ed assicuriamoci che l'accesso in remoto sia attivo:

"rpc-enabled": true,

Quindi inseriamo una password per poter accedere al programma in questa riga:

"rpc-password": "la_tua_password",

Dove al posto di la_tua_password inserirete una password di vostra scelta. La password che ora appare in chiaro verrà successivamente criptata, la prossima volta che apriremo il file non sarà visibile. Per finire inseriamo un nome utente per accedere

"rpc-username": "nome_utente",

Ricordatevi di scrivere un nome utente di vostra scelta al posto di nome_utente.
C'è anche la possibilità di impostare un filtro sugli indirizzi IP dai quali poter accedere, ma a me ha dato solo problemi quindi vi consiglio di disabilitarlo dalla riga

"rpc-whitelist-enabled": false,

Opzionalmente è possibile utilizzare la cartella che abbiamo chiamato watch come contenitore dei file .torrent che vogliamo aggiungere alla lista dei download. Ogni volta che metterete un file al suo interno Transmission-daemon lo aggiungerà automaticamente alla lista dei download.
Per farlo dovrete aggiungere queste due righe alla fine del file, prima della parentesi graffa chiusa

"watch-dir": "/mnt/nas/watch",
"watch-dir-enabled": true

Fate attenzione alle virgole a fine riga, tutte le righe devono terminare con la virgola, tranne l'ultima prima della parentesi graffa. Per questo motivo non ho messo la virgola dopo true. Ovviamente se aggiungete queste righe dovete aggiungere anche la virgola al termine della riga che le precede.
Possiamo salvare le modifiche premendo i tasti Ctrl + o, premiamo il tasto Invio per confermare il nome del file, quindi usciamo dall'editor con Ctrl + x.

Ora dobbiamo fare in modo che Transmission-daemon legga il file con le nuove impostazioni, digitiamo il comando:

sudo /etc/init.d/transmission-daemon reload

Questo ordinerà allo script di controllo di Transmission-daemon di rileggere il file settings.json e provvederà a criptare la password. Quindi riavviamo il daemon con

sudo /etc/init.d/transmission-daemon restart

Siamo a buon punto, ancora pochi passi per terminare la configurazione. Fermiamo nuovamente il daemon con

sudo /etc/init.d/transmission-daemon stop

Aggiungiamo il nostro nome utente al gruppo debian-transmission, questo è necessario per il corretto funzionamento del daemon

sudo adduser nome_utente debian-transmission

Al posto di nome_utente scrivete il vostro nome utente (quello di default è pi).
Ora modifichiamo lo script di controllo di Transmission-daemon

sudo nano /etc/init.d/transmission-daemon

Nella riga USER mettiamo il nostro nome utente

USER=nome_utente

Salviamo premendo i tasti Ctrl + o, premiamo enter per confermare il nome del file, quindi usciamo dall'editor con Ctrl + x. Dobbiamo ora modificare il proprietario dei file di Transmission-daemon per ovviare ad un presunto bug che impedisce la scrittura sul disco esterno.
Inseriamo i seguenti comandi:

sudo chown nome_utente -R /var/lib/transmission-daemon/info/
sudo chown nome_utente /etc/transmission-daemon/settings.json

Ora possiamo avviare Transmission-daemon, la configurazione è completata

sudo /etc/init.d/transmission-daemon start

Per ovviare a possibili blocchi di sistema in determinate condizioni di lavoro di Transmission-daemon andiamo a modificare alcuni parametri del Raspberry Pi

sudo nano /etc/sysctl.conf

Modifichiamo il valore dell'ultima riga con questo
vm.min_free_kbytes = 16384

Dopo aver salvato, modifichiamo un altro file

sudo nano /boot/cmdline.txt

Modifichiamo la riga come questa

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline smsc95xx.turbo_mode=N rootwait

Abbiamo aggiunto il parametro smsc95xx.turbo_mode=N, il resto della riga rimane invariato.
Salviamo le modifiche e riavviamo il Raspberry Pi con

sudo reboot

Al suo riavvio Transmission-daemon verrà avviato automaticamente e potrete provarlo spostando un file .torrent nella cartella watch. E' sicuramente comodo poter aggiungere i file in questo modo ed aspettare che i file vengano scaricati, ma spesso è necessario avere un controllo completo del programma. Bene, possiamo controllare Transmission-daemon in remoto nello stesso modo in cui utilizziamo Transmission con la sua interfaccia grafica, vediamo come fare.

Accedere a Transmission-daemon in remoto da un altro computer

Per accedere a Transmission-daemon installato sul Raspberry Pi dal nostro desktop dobbiamo installare il programma Transmission remote GUI. Se utilizzate Ubuntu potete installarlo utilizzando Ubuntu Software Center, per altri sistemi derivati da Debian potete installarlo da Terminale con il comando

sudo apt-get install transgui

Per altre distribuzioni GNU/Linux utilizzate i comandi destinati all'installazione dei pacchetti.
Per gli utilizzatori di sistemi OS X o Windows potrete scaricare il file di installazione direttamente dal sito del progetto.

Una volta completata l'installazione sul vostro desktop, lanciate Transmission remote GUI e scegliete dal menu Transmission -> connetti al demone -> Nuova connessione.
Comparirà una finestra per l'inserimento dei parametri di connessione, inseriamo i parametri:
Host remoto = inserite l'indirizzo IP del Raspberry Pi (è necessario impostare un IP statico per il vostro Raspberry Pi, così non sarà necessario modificare questo parametro ad ogni riavvio)
Porta = 9091 (è la porta standard, a meno che non l'abbiate modificata nel file di configurazione)
Nome utente = il nome utente che avete inserito nel file di configurazione
Password = la password che avete inserito nel file di configurazione

Connessione a Transmission-daemon da remoto


Premete Ok e, se avete inserito tutti i parametri corretti, il programma si collegherà al daemon in esecuzione e vi mostrerà i download in corso. Il suo funzionamento è del tutto identico a quello della versione classica di Transmission. L'unica piccola differenza è nel suo utilizzo con i link magnetici. Se volete aprire un link magnetico con Transmission remote GUI dovrete copiare il link dal browser e, quando porterete in primo piano la finestra di Transmission, apparirà automaticamente la finestra per aggiungere il torrent.

In caso di interruzione dell'energia elettrica non ci sono problemi, il vostro Raspberry Pi si riavvierà e continuerà a lavorare da dove si era fermato.