La quantità di materiale a disposizione dei possessori di NAS Synology è impressionante. Ci sono community in grado di utilizzarlo per cuocerci due uova e una bistecca al sangue, persone che non si arrendono certo davanti a una commerciale impossibilità (o mancata volontà) di integrare alternative a software ufficiali supportati dalla casa madre. A tutto questo io aggiungerei un “per fortuna“.
Qualche mese dopo l’acquisto del mio Synology DS216j, posso ritenermi tutto sommato soddisfatto di quanto messo in piedi (fa forse eccezione la scelta –sbagliata– del taglio disco da mettere in RAID 1, potendo tornare indietro metterei nel carrello da subito due dischi da 4 TB anziché da 2), e soprattutto sono molto contento di quanto si possa personalizzare il prodotto secondo le proprie esigenze. In questo articolo, ti voglio spiegare come passare a un eMule Adunanza, distribuzione custom dedicata agli abbonati Fastweb e certamente più rapido dell’eMule presente di fabbrica sul prodotto Synology (non solo il mio DS216j).
aMule AdunanzA
Ricorda che tutto il mio test (e relativo articolo) hanno fatto leva su un NAS con processore ARM, non posso quindi fare test (e darti istruzioni) per un’architettura diversa, basata per esempio su Intel. Detto ciò, basandomi sulla guida originale del 2016 ancora disponibile nel forum di AdunanzA (forum.adunanza.net/t/installare-amule-adunanza-su-synology-arm/9392), ho fatto accesso al mio NAS e sono passato all’utente di root.
Per farlo (con le versioni di DSM attuali) dovrai accedere al NAS in SSH e utilizzare il sudo -i
, comando che richiederà di inserire la password dell’amministratore che solitamente utilizzi per entrare sull’interfaccia web.
Se è la prima volta che utilizzi l’utente di root, riceverai un messaggio di Synology che ti inviterà a fare attenzione a ciò che tocchi:
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility.
Appurato ciò, si passa all’installazione degli aggiornamenti dei pacchetti IPKG:
AduUser@Syno:~# feed=http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable AduUser@Syno:~# ipk_name=`wget -qO- $feed/Packages | awk '/^Filename: ipkg-opt/ {print $2}'` AduUser@Syno:~# wget $feed/$ipk_name --2017-05-01 16:41:55-- http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ipkg-opt_0.99.163-10_arm.ipk Resolving ipkg.nslu2-linux.org... 140.211.169.161 Connecting to ipkg.nslu2-linux.org|140.211.169.161|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 74474 (73K) [text/plain] Saving to: 'ipkg-opt_0.99.163-10_arm.ipk' 100%[==========================================================>] 74,474 219KB/s in 0.3s 2017-05-01 16:41:56 (219 KB/s) - 'ipkg-opt_0.99.163-10_arm.ipk' saved [74474/74474] AduUser@Syno:~# tar -xOvzf $ipk_name ./data.tar.gz | tar -C / -xzvf - ./data.tar.gz ./ ./opt/ ./opt/bin/ ./opt/bin/ipkg ./opt/bin/ipkg-opt ./opt/bin/update-alternatives ./opt/etc/ ./opt/etc/ipkg.conf ./opt/lib/ ./opt/lib/libipkg.so ./opt/lib/libipkg.so.0 ./opt/lib/libipkg.so.0.0.0 ./opt/share/ ./opt/share/ipkg/ ./opt/share/ipkg/intercept/ ./opt/share/ipkg/intercept/depmod ./opt/share/ipkg/intercept/ldconfig ./opt/share/ipkg/intercept/update-modules AduUser@Syno:~# mkdir -p /opt/etc/ipkg AduUser@Syno:~# echo "src cross $feed" > /opt/etc/ipkg/feeds.conf AduUser@Syno:~# /opt/bin/ipkg update Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages Updated list of available packages in /opt/lib/ipkg/lists/cross Successfully terminated.
Quindi si scarica e si installa aMule AdunanzA, pacchetto disponibile anch’esso sul forum (l’ho scaricato precedentemente e messo in una cartella del NAS, la “Download“, così da raggiungerlo facilmente via SSH). Tu puoi ottenerlo da qui o in alternativa prendendo la copia che ho caricato su box (app.box.com/s/bcrnvq0m9uegrsvcf3q03oqdwn3jyub9):
AduUser@Syno:~# cd /volume1/Download/ AduUser@Syno:/volume1/Download# /opt/bin/ipkg install amuleadunanza-svn_rev531-2014.1_arm.ipk Installing amuleadunanza-svn (rev531-2014.1) to AduUser... package libupnp suggests installing ushare Installing libstdc++ (6.0.9-6) to AduUser... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/libstdc++_6.0.9-6_arm.ipk Installing wxbase (2.8.12-1) to AduUser... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/wxbase_2.8.12-1_arm.ipk Installing expat (2.0.1-1) to AduUser... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/expat_2.0.1-1_arm.ipk Installing zlib (1.2.5-1) to AduUser... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/zlib_1.2.5-1_arm.ipk Installing libpng (1.2.44-1) to AduUser... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/libpng_1.2.44-1_arm.ipk Installing libgd (2.0.35-6) to AduUser... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/libgd_2.0.35-6_arm.ipk Installing libjpeg (6b-3) to AduUser... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/libjpeg_6b-3_arm.ipk Installing freetype (2.3.6-1) to AduUser... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/freetype_2.3.6-1_arm.ipk Installing fontconfig (2.8.0-0) to AduUser... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/fontconfig_2.8.0-0_arm.ipk Installing gconv-modules (2.5-1) to AduUser... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/gconv-modules_2.5-1_arm.ipk Installing libupnp (1.6.6-1) to AduUser... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/libupnp_1.6.6-1_arm.ipk Configuring amuleadunanza-svn Configuring expat Configuring fontconfig Configuring freetype Configuring gconv-modules Configuring libgd Configuring libjpeg Configuring libpng Configuring libstdc++ Configuring libupnp Configuring wxbase Configuring zlib Successfully terminated.
Il primo avvio di aMule AdunanzA servirà a verificare che tutto sia andato a buon fine ma, soprattutto, a permetterti di generare i file di configurazione che andranno in seguito modificati per poter ottenere un software che rispetti le tue esigenze e i tuoi criteri d’uso (cambio di porte da utilizzare, attivazione dell’interfaccia web, ecc.):
AduUser@Syno:/opt/bin# ./amuled -f 2017-05-01 16:50:17: Initialising aMuleDAdunanzA MOD based on aMule SVN compiled with wxBase v2.8.12 and Boost 1.56 (Snapshot: rev. 531) AdunanzA 2014.1b1 2017-05-01 16:50:17: Checking if there is an instance already running... 2017-05-01 16:50:17: No other instances are running. 2017-05-01 16:50:17: ListenSocket: Ok. 2017-05-01 16:50:17: amuled: forking to background - see you
Torna sul forum e dai un’occhiata al paragrafo 7 (7. CONFIGURAZIONE amuleAdunanza) per capire come procedere e cosa toccare. Io ho configurato il mio aMule per partire su porti differenti rispetto allo standard (già utilizzate da un altro client in casa). Ricorda che dovrai sempre e comunque toccare la configurazione del tuo router per permettere una corretta comunicazione con l’esterno, ma quello è un altro discorso e spero tu lo conosca già (la stessa sorte vale per il firewall integrato in Synology, se lo utilizzi, nda).
Per snellirla un po’, puoi evitare di scaricare le liste server e nodi, non ti servono, puoi sempre caricarle in un secondo momento o appoggiarti a quelle già disponibili, ti basteranno per partire.
Trovi ulteriori riferimenti ai file di configurazione (per poter utilizzare aMule senza GUI) all’indirizzo stefano.dscnet.org/a/amuled_amule_senza_gui. Ora, ammesso che non ci siano errori, sei pronto per avviare ancora una volta il demone di aMule, e subito dopo quello della sua interfaccia di amministrazione web (altrimenti diventa più difficile amministrarlo per chi non si destreggia più di tanto con la riga di comando, nda). Ammesso che tu ti sia spostato già nella /opt/bin
, dove hai installato aMule AdunanzA, i comandi per lanciare ciò che ti serve sono ./amulewed -f
e ./amuleweb
.
Al comando che avvia amuleweb ho notato che serve indicargli la password come parametro da riga di comando, la stessa che ti servirà per accedere poi all’interfaccia web (appunto). Per facilitarmi la vita, ho preparato un piccolo script da tenere a portata di mano sul NAS, il quale può avviare, spegnere o riavviare i servizi dedicati ad aMule:
Ho aggiornato lo script includendo anche la possibilità di riavviare il solo servizio relativo all’interfaccia web di aMule, talvolta capita che questa vada in crash a causa delle elevate risorse richieste. Ho aggiunto il comando restartweb
(già che c’ero ho anche messo a posto qualcosina, pura estetica e nulla più) :-)
#! /bin/sh | |
case "$1" in | |
start) | |
echo –n "Starting aMule ..." | |
/opt/bin/amuled -f | |
/opt/bin/amuleweb --admin-pass='PASSWORDCHEHAISCELTO' -q & | |
echo "Done." | |
;; | |
restartweb) | |
echo "Stopping aMule Web Interface ..." | |
PIDS=$(ps -eaf) | |
PID=$(echo "$PIDS" | grep "amuleweb" | awk '{print $2}') | |
kill -9 $PID | |
echo "aMule Web Interface Killed." | |
/opt/bin/amuleweb --admin-pass='PASSWORDCHEHAISCELTO' -q & | |
echo "aMule Web Interface Started." | |
;; | |
stop) | |
echo "Stopping aMule ..." | |
PIDS=$(ps -eaf) | |
PID=$(echo "$PIDS" | grep "amuled -f" | awk '{print $2}') | |
kill -9 $PID | |
echo "aMule Daemon Killed." | |
PID=$(echo "$PIDS" | grep "amuleweb" | awk '{print $2}') | |
kill -9 $PID | |
echo "aMule Web Interface Killed." | |
;; | |
restart) | |
echo –n "Stopping aMule ..." | |
PIDS=$(ps -eaf) | |
PID=$(echo "$PIDS" | grep "amuled -f" | awk '{print $2}') | |
kill -9 $PID | |
echo "aMule Daemon Killed." | |
PID=$(echo "$PIDS" | grep "amuleweb" | awk '{print $2}') | |
kill -9 $PID | |
echo "aMule Web Interface Killed." | |
echo "Starting aMule ..." | |
/opt/bin/amuled -f | |
/opt/bin/amuleweb --admin-pass='PASSWORDCHEHAISCELTO' -q & | |
echo "Done." | |
;; | |
*) | |
echo "Usage: aMuleStart start|stop|restart|restartweb" | |
exit 1 | |
;; | |
esac |
L’utilizzo (se sei abituato a convivere con questo genere di roba) è semplice. Lo richiami tramite ./aMuleStart.sh
(dopo averlo reso eseguibile, nda), seguito da start
(per far partire i processi che ti servono), stop
(per terminarli) o restart
(per fermare e avviare da zero i processi). Lo script è chiaramente da tenere a portata di mano per poterlo richiamare facilmente da prompt SSH (la cartella home dell’utente che hai creato per installare e far partire aMule AdunanzA può essere la giusta scelta).
Se –ancora una volta– non ci sono stati errori, potrai finalmente aprire il tuo browser e puntare all’IP del tuo NAS, porta 4711 (a meno che tu non l’abbia cambiata, cosa che ti consiglio di fare) :-)
Da qui in poi, nonostante si tratti di un’interfaccia molto più spartana rispetto a quella del client proposto sui sistemi Microsoft (e per certi versi anche più di quella proposta da Synology), potrai aggiungere download da eseguire, nuovi server, ecc. Ci sono alcuni bug, le statistiche non sono sempre ben visibili, ma il suo lavoro lo porta a termine correttamente, e se hai fatto tutto questo perché sei cliente Fastweb con necessità di far lavorare AdunanzA, noterai seri miglioramenti rispetto a quanto fatto con il modulo integrato nel DSM.
Nuovi repository
Che poi è un po’ un tornare all’introduzione di questo articolo, e capire sin da subito che il mondo va ben oltre quello che propone Synology tramite il Centro Pacchetti “di base“. Ci sono decine di porting per applicazioni che siamo abituati a vedere funzionare su sistemi Linux non embedded come quello di questo NAS, ed è assolutamente facile varcare quella soglia volutamente (e giustamente, aggiungerei) imposta dal produttore.
Allo stato attuale, i contributi scaricabili dalla comunità arrivano a superare i 100 pacchetti, tutti alla portata di clic (e successiva configurazione secondo proprie esigenze), tutti raggiungibili andando a modificare quella lista di repository che tu stesso puoi popolare andando nel Centro Pacchetti → Impostazioni → Pacchetti sorgente:
Trovi diversi riferimenti in internet dove è possibile capire cosa propongono i repository Synology amatoriali (e non), prova a dare un’occhiata al sito italiano dedicato (qui trovi una discussione ad-hoc), o magari a quello ufficiale (qui in particolare un post di un thread che raccoglie diverse fonti ancora funzionanti).
In realtà poco tempo fa funzionava perfettamente anche il monitor messo a disposizione da dottoremoe.com, utile per tenere d’occhio tutti i repository e relativi tempi di up & down (vedi dottoremoe.com/synomon-3rd-parties-package-list-update), sfortunatamente però a ora sembra non funzionare più (credo ci siano stati problemi con il provider che ospita quel sito web, in attesa quindi che vengano risolti), era davvero utile.
Sì, ma i file di ricerca?
Quasi dimenticavo. I file di ricerca servono ad aggiungere motori (appunto) di ricerca (ma va?) a quelli già disponibili sul DSM. Naviga verso synoboost.com, ed esplora la quantità di alternative messe a disposizione. Scarica e installa ciò che ti serve all’interno del Download Manager, le istruzioni sono fornite per ogni pacchetto aggiuntivo scaricato, dai un’occhiata a queste due immagini catturate durante i test eseguiti sul mio NAS, giusto per farti un’idea:
In conclusione
Un mondo tutto da esplorare e da migliorare costantemente. L’importante è dedicargli il giusto tempo, provare (e riprovare), cercando però di evitare danni irreparabili (occhio, che qui i backup non sono poi così semplici da tirare in piedi, non si torna indietro in un batter d’occhio), ma soprattutto da tenere sempre in sicurezza (non aprire verso l’esterno porte che non ti servono e tieni sempre up-to-date il tuo DSM, giusto qualche giorno fa è stata resa pubblica la patch che ha corretto il bug relativo a WannaCry), trovi le note di rilascio sul sito di Synology:
Version: 6.1.1-15101-4
(2017/05/25)Important Note
- The update is expected to be available for all regions within the next few days, although the time of release in each region may vary slightly.
Fixed Issues
- Fixed a security vulnerability regarding samba service (CVE-2017-7494).
E anche per stavolta è tutto.
Buon inizio di settimana! :-)
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! :-)