Instalar Seviio en Disco Nas Synology

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.

serviio_synology

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]$ "
    PATH=/opt/sbin:/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/java/ejre1.6.0_25/bin
    LD_LIBRARY_PATH=/opt/lib:${LD_LIBRARY_PATH}
    JAVA_HOME=/opt/java/ejre1.6.0_25

    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
    JAVA_HOME=/opt/java/ejre1.6.0_25
    export JAVA_HOME

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.

Sobre rickcpp

Ciudadano de Burgos, aficionado a la Informática.