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.
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).
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):
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:
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:
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! :-)