En el siguiente articulo voy a describir los pasos para instalar el Servidor DLNA Serviio en un Disco Duro Synology. En mi caso, un Disco Synology Ds111, con Cpu ARM.
La información del proceso de instalación ha sido obtenida de la siguiente pagina web:
http://pcloadletter.co.uk/2011/02/07/serviio-on-synology-nas-with-arm-cpu/
Nos conectaremos por Ssh al disco duro, e instalaremos los paquetes "lame" y "nano"
ipkg install lame
ipkg install nano
A continuación, descargaremos la Versión Java para ARM, desde la Web de Oracle (requiere registro):
http://www.oracle.com/technetwork/java/javame/embedded/download/javase/index.html
Para los Discos Synology con Cpu Arm (como es es caso del Ds111), escogeremos la Versión "ARMv5 Linux".
Podemos descargar el Archivo, en la carpeta compartida "public".
Desde la consola ejcutaramos los siguientes comandos :
cd /volume1/public
mv ejre-1_6_0_25-fcs-b06-linux-arm-sflt-eabi-headless-14_apr_2011.tar.gz /volume1/@tmp
cd /volume1/@tmp
tar ejre-1_6_0_25-fcs-b06-linux-arm-sflt-eabi-headless-14_apr_2011.tar.gz
mkdir /opt/java
mv ejre1.6.0_25 /opt/java
A continuación, hay que editar varios ficheros de Configuración, para lo cual se puede utilizar el editor Nano o Vi; con Nano usaremos los comando Ctrl+o para guardar los cambios, y Ctrl+x para salir.
Primero, el Fichero de Configuración del Perfil para todos los Usuarios de la Shell Bash.
nano /opt/etc/profile
Realizaremos los cambios resaltados en negrita:
# # Bash initialization script # PS1="[\u@\h \W]$ " export PS1 PATH LD_LIBRARY_PATH JAVA_HOME |
Luego el Fichero de Configuración del Perfil para todos los Usuarios de Shell.
nano /etc/profile
En la última línea, realizar los cambios resaltados en negrita:
PATH=/opt/java/ejre1.6.0_25/bin:/opt/bin:/opt/sbin:$PATH |
A continuación descargaremos e instalaremos Serviio :
cd /volume1/@tmp
wget http://download.serviio.org/releases/serviio-0.5.2-linux.tar.gz
tar xvzf serviio-0.5.2-linux.tar.gz
mv serviio-0.5.2 /opt/serviio
Para configurar Serviio, usaremos una aplicación Web escrita en PHP : Serviio Web Interface ( Ver )
Para poder hacer uso de esta aplicación, hemos da habilitar el Servidor Web en el Panel de Control del DSM ; Panel de Control / Servicios Web :
cd /volume1/@tmp
wget http://labs.softjourn.com/attachments/download/67/serviio-0.5.2.1b.zip
unzip serviio-0.5.2.1b.zip
mv serviio-0.5.2 /volume1/web/serviio
Ahora se puede acceder a la Web de Administración de Serviio, http://ip_nas_synology/serviio , en la que se mostrará una X Roja, indicando que Serviio no esta iniciado.
FFmpeg depende de las librerías libbz2 y zlib, y aunque se instalan con el paquete Optware-devel, FFmpeg las busca /lib en lugar de en su ubicación real en /opt/lib.
Copiaremos las librerías donde las busca FFmpeg :
cp /opt/lib/libbz2.so.1.0 /lib
cp /opt/lib/libz.so.1 /lib
A continuación descargaremos FFmpeg de la Web de Serviio, y lo compilaremos con las opciones adecuadas a nuestra Cpu ARM (El tipo de Cpu se puede comprobar con : cat /proc/cpuinfo )
cd /volume1/@tmp
wget http://download.serviio.org/opensource/ffmpeg-26303.tar.gz
tar xvzf ffmpeg-26303.tar.gz
cd ffmpeg
./configure –arch=arm –enable-armv5te –prefix=/opt –extra-cflags='-I/opt/include' –extra-ldflags='-L/opt/lib' –enable-static –disable-shared –disable-ffplay –disable-ffserver –enable-libmp3lame
make
El tiempo de compilación con la Cpu ARM de 1,6 Ghz del Disco Ds111, es de aproximadamente de 25 minutos.
Una vez completada la intalación, instalaremos FFmegp :
make install
Podemos comprobar que se ha instalado correctamente, ejecutando el comando ffmpeg , y comprobando la fecha de compilación :
Versión incorrecta de ffmpeg :
Desde el Panel de Control DSM, crear un nuevo usuario "serviio" y conceder acceso a las carpetas donde vayan a estar los archivos de video, música y fotos.
Pulsar el botón "Inicio de Usuario", y marcar el Check "Habilitar servicio de inicio…":
A continuación, editaremos desde Ssh, el archivo de Contraseñas ( !OJO¡ Mucho cuidado al editar este fichero, podríamos dejar el Disco inaccesible ):
nano /etc/passwd
Cambiaremos la Shell, del usuario "serviio", de "/sbin/nologin" a "/bin/sh":
A continuación crearemos el Script de Inicio/Parada para el Servicio de "serviio" :
nano /volume1/@tmp/S99serviio.sh
#!/bin/sh User=serviio case "$1" in stop) echo "Stop Serviio..." su -l $User -c "/opt/serviio/bin/serviio.sh -stop" > /dev/null 2>&1 & ;; start) # start Serviio in background mode su -l $User -c "/opt/serviio/bin/serviio.sh" > /dev/null 2>&1 & echo "Start Serviio..." #check libs FFmpeg depends on (in case DSM was upgraded) if [ ! -f /lib/libbz2.so.1.0 ]; then cp /opt/lib/libbz2.so.1.0 /lib fi if [ ! -f /lib/libz.so.1 ]; then cp /opt/lib/libz.so.1 /lib fi ;; restart) $0 stop sleep 1 $0 start ;; *) echo "usage: $0 { start | stop | restart}" >&2 exit 1 ;; esac
Daremos al fichero "", permisos de ejecución y asignaremos el usuario "serviio", como propietario de la carpeta "/opt/serviio" :
chmod +x /volume1/@tmp/S99serviio.sh
chown -R serviio /opt/serviio
Ahora un cambio de mi propia cosecha, que no figura en la web de donde he obtenido la información para instalar y configurar Serviio.
A pesar, de las excelentes cualidades de Serviio como Servidor Multimedia, he de decir que instalado en un Disco NAS Synology, presenta un par de inconvenientes :
- El gran consumo de Recursos que requiere Java
- No indexa, ficheros con caracteres extraños ( Acentos, Eñes, etc. ).
Con este par de inconvenientes, y dado lo bien que funciona el Servidor Multimedia integrado por Synology DiskStation, opté por que el Servidor "serviio" no se iniciara por defecto, e iniciarlo manualmente desde ssh (con putty desde del ordenador o desde el movil).
El problema, es que con el script de arranque de "serviio" ( /opt/serviio/bin/serviio.sh ), al cerrar la sesión de la consola, se detenía el servicio.
Lo que hice fue añadir al comando "nohup", al inicio de la ultima linea del fichero :
nano /opt/serviio/bin/serviio.sh
Podemos comprobar que el servicio, se inicia correctamente con los comandos :
/volume1/@tmp/S99serviio.sh start
ps | grep serviio
Ahora que el servicio de "serviio" esta iniciado, podremos comprobar que la Web de Administración funciona correctamente :
Detendremos el servicio con el comando:
/volume1/@tmp/S99serviio.sh stop
Si queremos, que el Servicio "serviio", se inicie al arrancar el disco, copiaremos el Script de arranque a la carpeta "/opt/etc/init.d" :
mv /volume1/@tmp/S99serviio.sh /opt/etc/init.d
Con esto, hemos completado la instalación del Servidor Multimedia "serviio" en un Disco NAS Synology.
Es maravilloso contar con pensamientos de este artículo, así como de nuestra discusión en este lugar.
A riesgo de parecer algo ignorante. ¿Qué ventaja tiene este servidor DLNA con respecto al que incluye Synology por defecto?
La lista de caracteristicas del Servidor DLNA Serviio, esta en la siguiente pagina : http://www.serviio.org/features
Una de las ventajas, es la disponer de Imagnes en Miniatura, en los Videos y Musica; puediendo en ambos casos recuperar la Caratura desde Internet.
También soporta Transcoding; es decir que si el Reproducor DLNA, no soporta un Formato de Video o Audio, el Servidor se encarga de recodificar al Vuelo, a un formato compatible con el Reproductor;
Como indico en el Articulo, tiene el incoveniente del Consumo de Memoria, y el problema con los Acentos; y el Reproductor integrado funciona muy bien.