sabato 24 agosto 2013

Raspberry Pi - come installare e configurare aMule-daemon

Nel precedente post vi ho guidati nell'installazione e configurazione di Transmission-daemon sul Raspberry Pi, vediamo adesso come installare aMule-daemon, il client peer-to-peer per le reti di scambio file eDonkey e Kademlia. Come Transmission-daemon anche aMule-daemon lavora in background e si potrà controllare in remoto da un computer o altro dispositivo collegato alla rete.

aMule - il client peer-to-peer per le reti eDonkey e Kademlia


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 (qui troverete come farlo).
A questo punto poniamo il caso che il vostro disco sia montato in /mnt/nas.
Prima di installare aMule-daemon aggiorniamo la lista dei pacchetti del repository con

> sudo apt-get update

quindi installiamo con

> sudo apt-get install amule-daemon amule-utils amule-utils-gui

aMule avrà bisogno di 2 cartelle, una dove mettere i file completati ed una dove mettere i file temporanei.
Se non abbiamo già due cartelle adatte allo scopo sul nostro disco esterno possiamo crearle adesso.

> mkdir /mnt/nas/incoming

> mkdir /mnt/nas/temp

Ora avvieremo per la prima volta aMule in modo che questo crei i file di configurazione, otterremo un messaggio d'errore, ma ignoratelo, è normale che succeda.

> amuled

I file di configurazione verranno messi in una cartella nascosta nella nostra home, il suo nome è .aMule. Le cartelle che hanno il nome che inizia con un punto sono nascoste, ma potete vederle aggiungendo l'opzione -a al comando ls, così

> ls -a

Ora impostiamo un password per aMule invocando il comando:

> amuled -e

Ci verrà chiesto di inserire la password.

Se per qualche strano motivo non riuscite ad impostare la password con il comando amuled -e, allora potrete inserirla manualmente nel file di configurazione in questo modo:
Inserite il sequente comando inserendo la password da voi scelta al posto di password.

> echo -n "password" | md5sum | awk '{print $1}'

Verrà visualizzato sul terminale una serie di lettere e numeri apparentemente senza senso, in realtà quella è la vostra password criptata in md5.

Copiatela ed aprite il file di configurazione per inserire la password con

> nano .aMule/amule.conf

amule.conf è un file piuttosto lungo, ad ogni riga corrisponde un'impostazione. Per rendere più ordinata questa lunga lista di opzioni, è stata suddivisa in sezioni contrassegnate da un nome posto tra parentesi quadre.

Cercate la sezione [ExternalConnect] ed inserite la password criptata alla voce ECPassword. Poche righe sotto cercate la sezione[WebServer] ed inserite di nuovo la password criptata alla voce Password.

Ora che la password è inserita, continuiamo con la modifica del file di configurazione. Se non lo avete già aperto per inserire la password manualmente apritelo adesso con il comando

> nano .aMule/amule.conf


Nella sezione [eMule] andate alla riga che inizia con TempDir ed inserite l'indirizzo della cartella per i file temporanei:

TempDir=/mnt/nas/temp

Poi trovate la riga con IncomingDir ed inserite l'indirizzo della cartella per i file completati:

IncomingDir=/mnt/nas/incoming

Per default l'indirizzo di queste due cartelle è dentro la cartella .aMule, questo vorrebbe dire utilizzare la scheda SD per scaricare i nostri file! Per questo motivo le modifichiamo inserendo gli indirizzi delle cartelle sull'HD esterno.

Se il vostro provider internet è Fastweb sarebbe preferibile impostare le URL dei nodi Kad e dei server ed2k. Potete farlo trovando le righe che iniziano rispettivamente con KadNodesUrl e Ed2kServersUrl, modificandole come segue:

KadNodesUrl=http://www.adunanza.net/files/emule/adu_nodes.dat
Ed2kServersUrl=http://update.adunanza.net/servers.met

Ora andate a cercare la sezione [ExternalConnect] ed assicuratevi che la riga AcceptExternalConnections sia impostata ad 1 come segue:

AcceptExternalConnections=1

Questo rende attivo il collegamento in remoto al demone.
Per finire, nella sezione [WebServer] modifichiamo questa riga come segue:

Enabled=1

Questa attiva il server web o meglio una pagina web che permette il controllo del programma.
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 sarà necessario modificare un altro file per permettere allo script di avvio del demone di funzionare correttamente.

> sudo nano /etc/default/amule-daemon

Nella riga AMULED_USER inserite il vostro nome utente

AMULED_USER="nome_utente"

Salvate e uscite dall'editor con i soliti Ctrl + o, Invio e Ctrl + x.
La configurazione è completata, ora potete avviare aMule-daemon con il comando

amuled -f

l'opzione -f forza l'avvio in background, in questo modo potrete chiudere il terminale e lasciarlo lavorare.

Accedere ad aMule-daemon in remoto da un altro computer

Per poter accedere in remoto e controllare aMule abbiamo due possibilità, la prima è quella di utilizzare l'apposita pagina web creata dal web server di aMule-daemon, la seconda è quella di installare l'interfaccia grafica del programma sul computer che vogliamo utilizzare per controllarlo.

Utilizzare la pagina web è la cosa più semplice ed immediata, senza contare il vantaggio di poter utilizzare qualsiasi tipo di device per controllare il demone, l'importante è che abbia un browser internet.
Per accedere alla pagina web di aMule-daemon dovete inserire nel browser l'indirizzo IP del Raspberry Pi seguito dal carattere : (due punti) ed il numero della porta che di default è 4711. Sarà qualcosa del genere:

172.16.254.1:4711

Vi comparirà una pagina con la richiesta di inserire la password, digitate la password che avete usato per aMule e accederete alla pagina di controllo del demone.

la pagina di aMule vi chiede la password per l'accesso


Per collegarvi in remoto dal vostro computer desktop è possibile installare ed utilizzare l'interfaccia grafica aMuleGUI. Il vantaggio di utilizzare l'interfaccia grafica è quello di avere un controllo completo del programma, come se fosse installato sul vostro computer. Se utilizzate Ubuntu potete installarlo utilizzando Ubuntu Software Center cercando aMuleGUI, per altri sistemi derivati da Debian potete installarlo da Terminale con il comando

sudo apt-get install amule-utils-gui

Per altre distribuzioni GNU/Linux utilizzate i comandi destinati all'installazione dei pacchetti.
L'utilizzo di aMuleGUI è molto simile a quello del programma aMule, appena avviato vi comparirà una finestra con i dati relativi alla connessione in remoto.

Parametri di connessione in remoto ad aMule-daemon


Nel campo "Connetti a" inserite l'indirizzo IP del vostro Raspberry Pi, nel campo successivo inserite il numero della porta che di default è 4712. Per finire inserite la password che avete utilizzato per aMule e fate un click sul tasto Connetti.

Buon utilizzo!

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.