Creare un nodo Bittorrent con una Raspberry Pi – Parte 1

Di - 10 October 2013 - in
Post image for Creare un nodo Bittorrent con una Raspberry Pi – Parte 1

Se non la si è comprata per divertirsi piú con l’elettronica che col software, una delle prime cose che vengono in mente di fare quando si ha un PC a bassissimo consumo e silenziosissimo come la Raspberry Pi, è un nodo headless (ovvero senza monitor né tastiera, ma controllabile da remoto) per scaricare e condividere file via Bittorrent. Personalmente ne ho uno sempre attivo, creato appunto con una Raspberry Pi, per dare una mano alla comunità Debian nella distribuzione dei dischi di installazione.

Voglio descrivervi qui la procedura e il setting che ho utilizzato, dall’installazione dei programmi necessari fino al download del primo torrent.

Presuppongo che il tutto sia fatto potendo collegare la Raspberry Pi ad un classico modem/router, e che il controllo remoto avvenga solo all’interno della LAN creata dal router. È possibile creare un nodo controllabile da remoto ovunque ci si trovi, ma richiede configurazioni differenti e una maggiore robustezza a livello di sicurezza.

Il materiale

Vediamo il materiale necessario per la creazione del nodo:

  • Ovviamente, ci serve una Raspberry Pi, model B (l’interfaccia Ethernet, mancante sul model A, ci è utile)
  • Un alimentatore per la Raspberry Pi, ovvero un qualsiasi alimentatore micro-USB (quelli degli smartphone, insomma) da almeno 700 milliampere. Consiglio qualcosina in piú.
  • Non è necessario, ma un case è consigliabile. Se ne trovano in abbondanza su eBay.
  • Una scheda SD con installata Raspbian. Non mi occuperò qui dell’installazione, molto facile da qualunque sistema, le istruzioni le trovate qui nella sezione “Raw images”, e potete eventualmente acquistare su The Pi Hut schede preinstallate ufficiali.
  • Un normale cavo Ethernet di lunghezza appropriata a collegare la Raspberry Pi al router
  • Un hard disk esterno, USB, possibilmente alimentato a parte (se non lo è, l’alimentatore della Raspberry Pi prendetelo da almeno 1,5 ampere). L’hard disk è la nota dolente, considerato che ha un costo non indifferente. Se avete intenzione di lasciarlo sempre acceso, consiglio qualcosa che sia di marca ragionevolmente buona e che sia silenzioso. Io utilizzo (ma non consiglio necessariamente: mi ci trovo ottimamente ma ce ne sono di equivalenti) un Western Digital MyBook Essential da 1TB, che è molto silenzioso e che si sospende (praticamente spegne) da sé se non è utilizzato, e si riavvia da sé quando torna ad essere richiesto. Trovo molto comoda questa funzionalità perché mi permette di accendere e spegnere la Raspberry senza curarmi del disco. Il disco deve essere vuoto, in quanto lo formatteremo: tipicamente i dischi esterni vengono venduti con filesystem NTFS o FAT, poco pratico con la Raspberry.

Per il primo avvio faranno anche comodo:

  • Una tastiera USB
  • Un monitor HDMI o uno schermo TV con ingresso RCA

Assemblaggio, primo avvio e configurazione di base

Se abbiamo tutto, è il momento di metterlo insieme. Se avete acquistato un case per la Raspberry Pi, per prima cosa la scheda va messa lí dentro. Altrimenti, va messa in un posto ben riparato dagli urti e arieggiato a sufficienza.

Fatto questo, è necessario collegare tutte le componenti. Il disco a uno dei due spinotti USB, il monitor alla porta HDMI o allo spinotto RCA, il cavetto Ethernet alla sua porta ed al router, la scheda SD nello slot, e la tastiera all’altro spinotto USB. No, non abbiamo bisogno di un mouse. Come ultima cosa, la Raspberry Pi va collegata al cavo di alimentazione.

Ad un certo punto della procedura di avvio, che chiederà informazioni sulla lingua da utilizzare, verrà presentato un menu di configurazione. La prima cosa da fare è eseguire la voce “Expand Filesystem”, per rendere disponibile al sistema l’intera scheda SD. Poi con “Change User Password” va impostata la propria password. A questo punto, selezionando “Advanced Options” seguito da “SSH” si attiva il supporto al controllo remoto via SSH.

Fatto questo, potete uscire dalla configurazione guidata e fare login (l’utente è “pi”, la password quella che avete impostato).

È tutto pronto per iniziare a lavorare. Come prima cosa, dobbiamo aggiornare il sistema. I comandi da dare sono i seguenti:

sudo apt-get update
sudo apt-get upgrade

Il primo aggiornerà le informazioni sui programmi, mentre il secondo aggiornerà i programmi installati. A meno di richieste davvero strane, si dia l’OK al secondo quando lo richiederà. Entrambi possono richiedere la password.

Collegarsi da remoto alla Raspberry Pi

Le istruzioni per collegarsi da remoto alla Raspberry Pi sono in questo articolo. La prima parte della procedura la abbiamo già vista in fase di configurazione, quindi è necessario solamente seguire l’articolo da “mDNS” in poi.

Preparazione del disco

Siamo collegati alla nostra Raspberry Pi, il disco è collegato, è ora di configurare la Raspberry Pi per farglielo riconoscere ad ogni avvio, e di formattarlo opportunamente.

Prima di tutto la formattazione. Linux associa ad ogni disco un vero e proprio file, manipolabile solo con appositi strumenti. Essendo l’unico disco collegato all’USB, il nostro disco esterno avrà come file associato il file “/dev/sda1” (in “/dev/” si trovano tutti i file di questo tipo, “sd” indica che è un disco SCSI (non lo è, ma l’USB viene visto come emulazione SCSI), “a” significa che è il primo disco di questo tipo e “1” significa che è la prima partizione di tale disco). Farò riferimento a questo nome. Se avete collegato piú dischi (o chiavette o altri storage che non siano la SD col sistema), la cosa potrebbe avere effetti collaterali formattando e installando il disco sbagliato.

Il comando per formattare è:

sudo mkfs.ext4 /dev/sda1 -L untitled

(al posto di “untitled” si può mettere un qualunque nome. Fatto questo, possiamo aggiungere il disco a quelli che la Raspberry Pi cercherà e attiverà in fase di avvio. Per farlo, dobbiamo modificare il file “/etc/fstab” che contiene la lista delle strutture di storage che il sistema cercherà di utilizzare. Utilizzeremo l’editor “nano”, che non è un gran che ma è piú che utile allo scopo.

Nel file, per riferirci al disco, potremmo utilizzare ancora “/dev/sda1”, ma questo non ci permetterebbe di collegare poi altri storage con la certezza che il sistema non li monti al posto del disco. Dobbiamo scoprire quindi prima l’UUID del disco, una stringa di caratteri che lo identifica univocamente.

Per farlo, diamo il comando:

ls -ls /dev/disk/by-uuid/

Otterremo alcune righe con delle informazioni, seguite da un codice, da una freccia, e da un nome di file. Qualcosa del tipo:

totale 0
0 lrwxrwxrwx 1 root root 15 ott  5 23:17 41cd5baa-7a62-4706-b8e8-02c43ccee8d9 -> ../../mmcblk0p2
0 lrwxrwxrwx 1 root root 15 gen  1  1970 5D2D-B09A -> ../../mmcblk0p1
0 lrwxrwxrwx 1 root root 10 ott  5 23:17 cbcd99f9-ff19-46b1-8833-a4f0e9d0fd3d -> ../../sda1

Copiamoci il codice legato alla riga che termina per “sda1”, in questo caso “cbcd99f9-ff19-46b1-8833-a4f0e9d0fd3d”.

Ora creiamo la directory che conterrà il contenuto del disco ogni volta che questo viene collegato. Tali directory vanno messe all’interno della directory “/mnt/”. Il nome che le daremo è “disco”.

sudo mkdir /mnt/disco

Ora siamo pronti a lanciare l’editor “nano” e a modificare l’fstab.

sudo nano /etc/fstab

Il comando “sudo”, lo avrete ormai capito, va anteposto ai comandi che influenzano il sistema, e può richiedere la password.

Dato il comando, vi trovate dentro un editor di testi, nel quale vi potete muovere liberamente con le quattro frecce. I comandi in fondo, ognuno preceduto da una lettera, possono essere dati premendo “Ctrl” assieme alla lettera.

In fondo al file, aggiungiamo la riga:

UUID=cbcd99f9-ff19-46b1-8833-a4f0e9d0fd3d /mnt/disco auto defaults,users 0 1

seguita da un “a capo”. Ovviamente al posto del codice dopo “UUID=” ci va quello ottenuto poco fa. Premiamo Ctrl-X per uscire, seguito da S per salvare e invio per confermare.

Infine, con:

sudo mount /mnt/disco

colleghiamo il disco.

Dentro al disco, creiamo una directory per i download di bittorrent:

mkdir /mnt/disco/bt-download

Nella prossima puntata descriveremo come installare un client bit torrent su Raspberry Pi.

Leave a Reply

Lorenzo Breda Articolo scritto da

Studente di Informatica a Roma, si occupa di programmazione web sopratutto lato server, e di accessibilità del web. Utilizza e ama Debian GNU/Linux, e si interessa di fisica, fumetto, trekking e fotografia (gli ultimi due possibilmente abbinati). Collabora con Googlab da aprile 2012.

Contatta l'autore

Previous post:

Next post: