In questo articolo vedremo come configurare da zero una Raspberry Pi che funzioni da torrentbox, ovvero installeremo un client torrent che ci consente di scaricare contenuti via torrent su Hard Disk esterno. Prima di entrare nel vivo della guida è bene seguire queste operazioni preliminari per rendere l’ambiente di Raspbian più confortevole all’uso che dobbiamo farne.
In questa guida è stato utilizzato un hard disk da 320Gb autoalimentato, formattato in NTFS da windows, unito a una Raspberry Pi 2 con Raspbian appena installato. Nell’hard disk, denominato “HD320G” è presente una cartella “Transmission” in cui vengono archiviati i download completati e in essa una cartella “_part” in cui vengono archiviati download incompleti.
Operazioni Preliminari
- Effettuiamo il login. Utilizzando “pi” come username e “raspberry” come password;
- Avviamo l’interfaccia grafica. Digitando startx dopo aver fatto il login;
- Configuriamo alcune opzioni utili. Digitiamo raspi-config nel terminale e settiamo l’avvio automatico del desktop (Enable boot to Desktop/Scratch -> Desktop login as user ‘pi’ at the graphical interface), nel settaggio Overclock scegliamo Pi2 oppure Turbo (per rendere più agevole l’utilizzo del client torrent), nelle Advanced Options attiviamo l’SSH (opzione molto utile in seguito che ci consentirà di comunicare con la raspberry via terminale ma da un altro pc);
- Alimentazione dell’hard disk esterno. Raspberry e hard disk esterni autoalimentati non vanno molto d’accordo, l’energia erogata non è sufficiente ad alimentarli. Per ovviare a questo problema oltre all’opportunità di scegliere un hard disk con alimentazione a parte, oppure di prendere un hub usb alimentato (scelte che consiglio vivamente) è possibile procedere via software e settare il nostro mini-computer per erogare più energia nelle porte usb. Procediamo in questo modo dal desktop della Raspberry. Apriamo il terminale e andiamo a modificare il file /boot/config.txt in questo modo:
sudo leafpad /boot/config.txt
Ci si aprirà un editor di testo, modifichiamo il file aggiungendo in fondo la stringa di seguito e salviamo.
max_usb_current=1
Se prima di questo settaggio il nostro hard disk non si accendeva vedrete ora che funzionerà correttamente ma non sarete ancora in grado di scriverci dentro, seguite il prossimo punto.
- Installare le utility per ntfs. Linux, Raspbian per la precisione, non ha un supporto nativo all’NTFS per questo dovremo installare un pacchetto che ci consentirà di avere accesso completo alla nostro hdd. Sempre da terminale:
sudo apt-get update sudo apt-get install ntfs-3g
- Montiamo l’hard disk. La funzione di automount (non appena si collega l’hard disk) che possiede raspbian dà problemi perché non consente la scrittura da parte di altri programmi, in particolar modo al client torrent che installeremo. Nel mio caso, ho l’hard disk HD320G “automontato” in media/HD320G, con il comando lsblk verifichiamo quale sia il suo indirizzo nel formato /dev/sd..
pi@raspberrypi ~ $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 298.1G 0 disk └─sda1 8:1 0 298.1G 0 part /media/HD320G mmcblk0 179:0 0 7.4G 0 disk ├─mmcblk0p1 179:1 0 814.3M 0 part ├─mmcblk0p2 179:2 0 1K 0 part ├─mmcblk0p3 179:3 0 32M 0 part /media/SETTINGS ├─mmcblk0p5 179:5 0 60M 0 part /boot └─mmcblk0p6 179:6 0 6.5G 0 part /
Nel mio caso (e sicuramente anche nel vostro se non avete altri supporti di memorizzazione collegati) si tratta di /dev/sda1 quindi tutto ciò che dobbiamo fare è smontarlo e rimontarlo con ntfs-3g creando una cartella hdd_ext (oppure il nome che desiderate) in media con mkdir, in questo modo:
sudo umount /dev/sda1 sudo mkdir /media/hdd_ext sudo mount -t ntfs-3g /dev/sda1 /media/hdd_ext/
Ora è tutto pronto per scrivere correttamente nel nostro HDD esterno.
Ovviamente ad ogni accensione della raspberry dobbiamo rieseguire questi comandi, per far ciò automaticamente possiamo innanzitutto creare uno script bash in /home/pi magari denominato startup.sh che sarà composto in questo modo, per esempio:
#!/bin/bash # Ferma il demone di Transmission service transmission-daemon stop # Smonta l'hard disk automontato umount /dev/sda1 # Crea la cartella di mount mkdir /media/hdd_ext # Monta l'hard disk nella cartella di mount appena creata mount -t ntfs-3g /dev/sda1 /media/hdd_ext # Riavvia il demone di Transmission service transmission-daemon start # Restituisci esito positivo exit 0
e renderlo automaticamente avviantesi citandolo nel file /etc/init.d/rc.local, scrivendo nell’ultima riga del suddetto file:
./home/pi/startup.sh
Da notare nello script startup.sh che la riga 15 è strettamente necessaria (vedi articolo dedicato) mentre le righe 3 e 13 ci saranno più chiare proseguendo nella guida.
Installiamo e configuriamo Transmission
Ora che abbiamo reso il nostro Raspbian un ambiante confortevole bisogna installare il nostro client torrent: Transmission. Intalleremo una versione “demone” senza interfaccia grafica (almeno da desktop) perché il nostro obiettivo è lasciare accesa la Raspberry senza un monitor, né mouse e né tastiera ma con solo l’hdd collegato. Tuttavia il pregio di questo programma è che esso possiede una comoda interfaccia web per cui potremo sapere come vanno i nostri download solamente digitando l’indirizzo IP della nostra macchina, ovunque noi fossimo.
Installazione
sudo apt-get update sudo apt-get install transmission-daemon
Configurazione
Per procedere alla configurazione fermiamo il demone (operazione strettamente necessaria altrimenti le modifiche non avranno effetto) ed apriamo il file di configurazione sito in /etc/transmission-daemon/
sudo service transmission-daemon stop sudo leafpad /etc/transmission-daemon/settings.json
Ecco come si presenterà il file di configurazione settings.json, con evidenziate le righe che ci interessano
"alt-speed-down": 50, "alt-speed-enabled": false, "alt-speed-time-begin": 540, "alt-speed-time-day": 127, "alt-speed-time-enabled": false, "alt-speed-time-end": 1020, "alt-speed-up": 50, "bind-address-ipv4": "0.0.0.0", "bind-address-ipv6": "::", "blocklist-enabled": false, "blocklist-url": "http://www.example.com/blocklist", "cache-size-mb": 4, "dht-enabled": true, "download-dir": "/media/hdd_ext/Transmission", "download-limit": 100, "download-limit-enabled": 0, "download-queue-enabled": true, "download-queue-size": 5, "encryption": 1, "idle-seeding-limit": 30, "idle-seeding-limit-enabled": false, "incomplete-dir": "/media/hdd_ext/Transmission/_part", "incomplete-dir-enabled": true, "lpd-enabled": false, "max-peers-global": 200, "message-level": 2, "peer-congestion-algorithm": "", "peer-limit-global": 240, "peer-limit-per-torrent": 60, "peer-port": 51413, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": "default", "pex-enabled": true, "port-forwarding-enabled": false, "preallocation": 1, "prefetch-enabled": 1, "queue-stalled-enabled": true, "queue-stalled-minutes": 30, "ratio-limit": 2, "ratio-limit-enabled": false, "rename-partial-files": true, "rpc-authentication-required": false, "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-password": "{1a18533b93bd36ff0076eaa38a4f4b72ea40066fTjow.cRu", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "transmission", "rpc-whitelist": "127.0.0.1", "rpc-whitelist-enabled": false, "scrape-paused-torrents-enabled": true, "script-torrent-done-enabled": false, "script-torrent-done-filename": "", "seed-queue-enabled": false, "seed-queue-size": 10, "speed-limit-down": 100, "speed-limit-down-enabled": false, "speed-limit-up": 100, "speed-limit-up-enabled": false, "start-added-torrents": true, "trash-original-torrent-files": false, "umask": 18, "upload-limit": 100, "upload-limit-enabled": 0, "upload-slots-per-torrent": 14, "utp-enabled": true }
Alle righe 15 e 23 bisogna scrivere gli indirizzi delle nostre cartelle, alla riga 24 attiviamo la cartella ci cache, alla riga 47 attiviamo l’interfaccia web e alla riga 45 la settiamo che possiamo accedervi senza una password. E’ importante settare la riga 53 su “false“. Altrimenti non saremo in grado di accedere all’interfaccia web.
Operazioni Finali
A questo punto settiamo il nostro nome utente (nel mio caso “pi”) come proprietario dei file di settaggio (Ond’evitare problemi di permessi):
sudo chown pi -R /var/lib/transmission-daemon/info/ sudo chown pi /etc/transmission-daemon/settings.json
E riavviamo transmission
sudo service transmission-daemon start
A questo punto possiamo accedere all’interfaccia web di Transmission da qualsiasi pc della nostra rete locale digitando l’ip della raspberry e la porta: es 192.168.0.7:9091. Ecco come si presenta l’interfaccia:
Da qui possiamo aggiungere, rimuovere (attraverso l’icona blu in alto a sinistra) o controllare torrent e magnet-link.
IP Blocking
Come ultimissima precauzione finale aggiungiamo una grande lista di IP che verranno bloccati soprattutto per i filtri AntiP2P imposti dai gestori. Quindi nell’interfaccia web di Transmission clicchiamo sulla chiave inglese poi Peers poi Enable Blocklist e aggiungiamo questo link
http://john.bitsurge.net/public/biglist.p2p.gz
Poi Update come nella figura sottostante
Commentate con i vostri dubbi, i vostri pensieri e le vostre correzioni!