Pogoplug 4: sfruttare Busybox e Samba per dare vita alle cartelle di rete

| |

Pogoplug è un piccolo prodotto attraverso il quale potrete creare e gestire uno spazio cloud completamente personale (i file sono fisicamente presenti sui vostri dischi, ndr) con il vantaggio dell’avere un software già ben avviato (e abbastanza aggiornato), sempre disponibile sul web e raggiungibile tramite applicazione o interfaccia navigabile da browser. Uno spazio potenzialmente “infinito” (con le dovute pinze, ovviamente) grazie alle porte USB ed eSata presenti sul Pogoplug stesso al quale potrete ovviamente collegare dischi esterni. Questo articolo è dedicato alla quarta versione del prodotto acquistata a un prezzo decisamente inferiore al suo listino grazie ad un’offerta su Amazon (US), pacco consegnato in pochissimi giorni e con un ricarico minimo di tasse per un totale di spesa inferiore ai 40 € (impossibile non essere soddisfatti delle performance del big del commercio elettronico), considerando che il prezzo di listino si aggira ufficialmente intorno al centinaio di euro.

Pogoplug-series4-hero_Fotor

Il Pogoplug diventa ancora più interessante se si pensa che con un minimo di lavoro si riesce a modificare il comportamento di default previsto dalla casa madre poiché basato su una distribuzione essenziale di Linux chiamata Busybox:

/etc # uname -a
Linux Pogoplug 2.6.31.8 #5 Wed Sep 28 12:09:12 PDT 2011 armv5tel GNU/Linux

Di risorse ne esistono davvero tante e nel corso del tempo sono saltati fuori articoli in grado di spiegare passo-passo tutte le possibili modifiche o aggiunte al sistema; dall’installazione di Samba per la condivisione dei file in rete LAN su Windows al client Torrent da poter controllare anche da remoto con il minimo sforzo. Stavolta si affronta la prima citata con una piccola parentesi dedicata a OS X, ne ho raccolte diverse su delicious.com/gioxx/pogoplug.

Per partire

Procuratevi una scheda SD (anche da 1 GB, basta e avanza), un client che possa collegarsi in SSH al Pogoplug (terminale di OS X o Linux o PuTTY su Windows) e un cavo di rete direttamente connesso al vostro router (il Pogoplug non integra un chip WiFi e il cavo resta in ogni caso più stabile e affidabile, ndr). Se sapete di cosa sto parlando consiglio una reservation sul DHCP basata sul Mac Address del Pogoplug che trovate direttamente sulla sua etichetta.

A corredo suggerisco le applicazioni per iOS e Android se prevedete di effettuare il backup dei vostri dispositivi sul disco fisso connesso al prodotto (o nei 5GB messi a disposizione dall’account gratuito online).

Pogoplug
Pogoplug
Developer: Cloud Engines, Inc.
Price: Free+

Da ora in poi (e per alcuni vale già quanto scritto fino a qui) occhio a ciò che fate. Se non vi sentite sicuri utilizzate l’area commenti per chiedere lumi o rinunciate, nessuno ve ne farà una colpa ;-)

SD: formattazione su OS X

Questo è quel paragrafo che potete saltare a piè pari nel caso in cui stiate lavorando sotto Microsoft Windows. Tasto destro sulla lettera che identifica la vostra scheda SD, Formatta, scegliete FAT32 tra le voci disponibili in File System ed è fatta (occhio alla formattazione veloce, basta e avanza per quello che andremo a fare). Su OS X la storia cambia, non si traduce con un paio di clic, aiuta decisamente più il Terminale. A SD inserita lanciatelo e cercate la scheda tra le memorie disponibili con il comando:

diskutil list

Una volta identificata (date un’occhiata allo spazio totale, così la facciamo più semplice) si parte con la formattazione in FAT32:

sudo diskutil eraseDisk FAT32 POGO MBRFormat /dev/disk4

dove “POGO” è il nome che ho scelto per la scheda SD (quindi potete usarne un altro) e disk4 è la scheda individuata tramite il “list“, questo il risultato:

Neptune:~ gioxx$ sudo diskutil eraseDisk FAT32 POGO MBRFormat /dev/disk4
Password:
Started erase on disk4
Unmounting disk
Creating the partition map
Waiting for the disks to reappear
Formatting disk4s1 as MS-DOS (FAT32) with name POGO
512 bytes per physical sector
/dev/rdisk4s1: 15485368 sectors in 1935671 FAT32 clusters (4096 bytes/cluster)
bps=512 spc=8 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=8192 drv=0x80 bsec=15515648 bspf=15123 rdcl=2 infs=1 bkbs=6
Mounting disk
Finished erase on disk4
Neptune:~ gioxx$

Potete quindi smontare la scheda SD e inserirla nel Pogoplug, che accenderete subito dopo collegandolo alla rete elettrica.

Installazione di Samba

Il mio articolo si basa sull’ottimo originale pubblicato da Razvan Rosca e disponibile su razva.ro/how-to-install-samba-on-pogoplug-4 (lo stesso ha scritto come installare Arch Linux pur mantenendo le caratteristiche del salvataggio in cloud di My Pogoplug: razva.ro/install-arch-linux-pogoplug-samba-pogoplug-4). Qui voglio raccogliere il da farsi localizzato in italiano basandomi sulla mia personale esperienza (nel mio caso ho utilizzato una scheda SD e un disco USB attaccato a una delle porte USB 3.0), suggerendovi altre fonti che ho avuto modo di scoprire e leggere durante le svariate ricerche fatte.

La scheda SD è formattata e dentro al Pogoplug, abilitate il prodotto a farvi accedere via SSH dalla pagina web del servizio (my.pogoplug.com, Settings, Security):

Schermata 2015-01-27 alle 22.09.14

Scegliete una password che potrete ricordare semplicemente ma che non sia banale (soprattutto se il vostro Pogoplug sarà accessibile dall’esterno della vostra rete casalinga tramite IP pubblico!). Usate ora un Terminale (OS X o Linux) o PuTTY su Windows (ne avevamo già parlato, ricordate?) e puntate all’IP del Pogoplug, entrate come root e con la password che avete stabilito sull’interfaccia web. Da ora in poi è tutto un comando o un file di configurazione, procedete con ordine, non fate confusione, nel caso aveste dei dubbi utilizzate l’area commenti!

Montate la “/” in lettura e scrittura e create la cartella /opt

mount -o remount,rw /
mkdir /opt

prima di poter montare la scheda SD nella /opt sarà necessario capire chi è la SD e chi il disco fisso collegato alla porta USB, per farlo basterà andare in /tmp/.cemnt e lanciare un ls della cartella:

cd /tmp/.cemnt/ls | grep mnt

questo il mio risultato:

/tmp/.cemnt # ls -la | grep mnt_
drwxr-xr-x    6 root     root   4096 Jan  1  1970 mnt_mmcblk0p1
drwxr-xr-x    1 root     root   8192 Jan 14 02:18 mnt_sda1
/tmp/.cemnt #

e si scopre che mnt_mmcblk0p1 è la scheda SD (basta entrare nella cartella e lanciare un ulteriore ls per controllare che file contiene, riconoscerete cosa avete messo dove, no? :-)). A questo punto si potrà procedere con il montare in lettura e scrittura la SD nella /opt:

mount -o exec,remount /tmp/.cemnt/mnt_mmcblk0p1/ /opt

Sostituiamo il wget originale del Pogoplug con quello ufficiale che siamo abituati a vedere sulle macchine Linux più comuni (ma anche su Windows, usato in diversi miei script):

cd /opt
mkdir work
cd work
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/wget_1.12-2_arm.ipk
tar xf wget_1.12-2_arm.ipk
tar xf data.tar.gz
mv /usr/bin/wget /usr/bin/wget.bak
mv /opt/work/opt/bin/wget /usr/bin/

a questo punto procediamo con un po’ di pulizia per poter lavorare meglio, basta un semplice

rm -rf /opt/work/*

Ora si passa all’installazione di IPKG che permetterà in seguito di installare pacchetti binari tra cui Samba, da spostare subito dopo nella /opt:

cd /opt/work
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ipkg-opt_0.99.163-10_arm.ipk
tar xf ipkg-opt_0.99.163-10_arm.ipk
tar xf data.tar.gz
cd /opt/work/opt
mv * /opt

pulizia, ancora una volta:

rm -rf /opt/work/*

A questo punto occorrerà preparare la directory all’interno della quale far lavorare IPKG e aggiungere i repository ai quali “bussare” per cercare e scaricare i pacchetti:

mkdir -p /opt/etc/ipkg
echo "src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable" > /opt/etc/ipkg/armel-feed.conf
echo "src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable" >> /opt/etc/ipkg/armel-feed.c

e coprire i file delle dipendenze per poi lanciare l’aggiornamento di IPKG:

cp /opt/lib/libipkg.so.0.0.0 /opt/lib/libipkg.so.0
/opt/bin/ipkg update

Siamo pronti per installare libnsl ed in seguito Samba:

/opt/bin/ipkg install libnsl
cp /opt/lib/libnsl-2.5.so /opt/lib/libnsl.so
cp /opt/lib/libnsl-2.5.so /opt/lib/libnsl.so.1
/opt/bin/ipkg install samba2

A questo punto bisognerà mettere da parte il file di configurazione di default di Samba per poterne creare uno nuovo che andremo a personalizzare in seguito:

mv /opt/etc/samba/smb.conf /opt/etc/samba/smb.conf.bak
touch /opt/etc/samba/smb.conf
vi /opt/etc/samba/smb.conf

premendo “i” sulla tastiera si entrerà in modalità di inserimento e potrete copiare e incollare ogni singola riga (qui di seguito), una alla volta, occhio a non fare copia e incolla totale perché non vi riuscirà e dovrete ricominciare (consiglio per i più temerari: tasto ESC e poi scrivete q! per uscire da vi senza salvare ciò che avete combinato):

[global]
        workgroup = workgroup
        server string = Pogoplug
        hosts allow = 192. 127. 10.
        null passwords = yes
        guest account = root
        log file = /opt/var/log/samba/log.%m
        max log size = 50
        security = share
        encrypt passwords = yes
        smb passwd file = /opt/etc/samba/smbpasswd
        dns proxy = no
        preserve case = yes

[sda1]
        comment = USB1
        path = /tmp/.cemnt/mnt_sda1/
        available = yes
        public = yes
        writable = yes
        printable = no
        create mask = 0777
        guest ok = yes
        browseable = yes

Il file (tradotto in soldoni) permetterà il collegamento al disco gestito da Samba dalle reti 192. e 10. (oltre il classico localhost 127.(0.0.1)). Al posto del path sotto sda1 mettete il puntamento al vostro disco collegato alla porta USB 3 (vi ricordate quanto verificato qualche paragrafo più su? mnt_sda1 corrispondeva al mio disco esterno, lo richiamo adesso). Al posto di sda1 nelle parentesi quadre inserite il nome da dare alla cartella condivisa sotto Samba.

Se tutto vi sembra in ordine premete il tasto ESC e scrivete “wq” (write and quit) per salvare e uscire da vi. A questo punto potrete testare la validità della configurazione del vostro Samba:

/opt/bin/testparm

questo è grosso modo il risultato che dovrebbe spuntare fuori:

/opt/etc/samba # /opt/bin/testparm 
Load smb config files from /opt/etc/samba/smb.conf
Processing section "[DiscoDatiUSB3]"
Loaded services file OK.
Press enter to see a dump of your service definition

in caso contrario c’è un problema. Niente panico, potete buttare via il file di configurazione Samba (rm -rf /opt/etc/samba/smb.conf) e rifarlo (tornate al vi /opt/etc/samba/smb.conf). Se tutto è filato liscio potrete lanciare Samba:

/opt/etc/init.d/S80samba start

Godetevi il risultato esplorando l’unità da una qualsiasi macchina Windows nella rete, avviate un esplora risorse e puntate a \\IPPogoplug, dovreste trovare la cartella condivisa (corrispondente al disco USB) pronta per essere utilizzata:

Schermata 2015-01-27 alle 22.53.43

Ho dimenticato qualcosa? Pensate che ci sia qualcosa che non quadra? L’area commenti è a vostra totale disposizione!

OS X 10.10.1 e smb://, Support deprecated

Andate nel Finder e quindi nelle applicazioni, entrate nella cartella delle Utility e avviate Console. Da questo spostatevi sulla voce “system.log” sotto FILE (colonna di sx, ndr) per leggere gli ultimi errori di sistema tracciati nel file di log, dovreste trovare qualcosa di molto simile a questo:

Jan 21 22:10:05 Neptune kernel[0]: smb1_smb_negotiate: Support for the server POGOPLUG has been deprecated (PreXP), disconnecting

Come avrete capito il supporto per il Samba installato sul Pogoplug non è più affare di Apple in quanto considerato vecchio e abbondantemente superato. Cercando nel web si arriva a diversi risultati che spesso però non aiutano (come questo vecchio consiglio per Lion: support.apple.com/en-us/HT200158). Ho provato a sbatterci la testa per diverso tempo ma nessuno dei test eseguiti ha portato al risultato sperato. Poco male, l’applicazione di backup ufficiale per OS X integra ancora la funzione di mappatura dinamica dei dischi collegati al Pogoplug, questo vi permetterà di vederli e amministrarli come se fossero collegati direttamente al vostro Macbook (e famiglia).

La si scarica dal sito ufficiale ma potete trovarne una copia qui (in caso di necessità): app.box.com/s/gi3s3wiilgkdkr4ob9w26v5twmant6mi (anche se dovesse diventare obsoleta, al primo avvio richiederà l’aggiornamento). La modifica va operata da “Settings” e funzionerà solo ad applicazione avviata sul sistema:

Schermata 2015-01-26 alle 20.42.19

Chiaramente all’interno delle unità montate nel sistema troverete anche la stessa SD sulla quale avrete installato i pacchetti aggiuntivi tramite IPKG, potete espellere l’unità così da evitare ogni possibile errore ;-)

Riavviare il Pogoplug ed il Samba installato

Questa è forse la pecca più fastidiosa del prodotto. Se viene riavviato sarà necessario ricordarsi di dare un “giro di chiave” anche alla modifica operata: occorrerà montare l’unità SD e avviare Samba. Poco male, si può sempre creare uno script ad-hoc (che nell’esempio ho chiamato startengine.sh) da tenere a portata di mano nella /etc e far fare a lui il lavoro sporco:

touch /etc/startengine.sh
vi /etc/startengine.sh

e includere al suo interno:

mount -o remount,rw /
mount /tmp/.cemnt/mnt_mmcblk0p1 /opt
/opt/etc/init.d/S80samba

Dove (ve lo ricordo ancora una volta) mnt_mmcblk0p1 corrisponde alla mia scheda SD e va sostituita con il nome assegnato alla vostra. Salvate il file e lanciate un chmod 0755 startengine.sh per renderlo eseguibile ed il gioco è fatto, basterà ovviamente collegarsi in SSH al Pogoplug e lanciare lo script con /etc/startengine.sh.

In conclusione

Una spesa tutto sommato affrontabile per riutilizzare i propri dischi USB esterni permettendo ai client di una stessa rete di accedervi facilmente in qualsiasi momento, copiare / spostare dati e fare backup dei propri dispositivi iOS, Android, OS X o Windows. Una soluzione che seppur modificata manterrà le funzionalità previste dalla fabbrica permettendovi di avere un punto unico di accesso ai vostri file e -se volete- un server DLNA accessibile anche da console (non ve ne ho parlato perché generalmente utilizzo Plex, lo stesso accede ai file contenuti sul disco collegato al Pogoplug, ndr). L’unico limite è dettato dall’hardware del prodotto e dalla vostra fantasia ma anche dalla vostra pazienza.

Buon divertimento! ;-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Gioxx's Wall

Se hai correzioni o suggerimenti puoi lasciare un commento nell'apposita area qui di seguito o contattarmi privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! Satispay / PayPal / Buy Me A Coffee / Patreon

Condividi l'articolo con i tuoi contatti: