MgM

Cómo montar un servidor DLNA con Ubuntu GNU/Linux

Digital Living Network Alliance, mejor conocido con DLNA, nos permite compartir contenido multimedia entre diferentes dispositivos. Yendo a lo práctico, esto se traduce en que puedo ver las películas, fotos y oír la música, que tengo almacenadas en mi disco duro, en mi smartTV o en mi móvil (por ejemplo). Para hacerlo posible hay que tener un servidor de DLNA instalado y aquí vamos a ver cómo se consigue esto en GNU/Linux.

Estas instrucciones son para la distribución de GNU/Linux Ubuntu, pero son válidas para cualquier distribución basada en Debian (aunque es sencillo hacerlo en cualquier otra distribución).

El primer paso es instalar el servidor. Lo puedes hacer desde el gestor de paquetes Synaptic o desde un terminal con la orden:

sudo apt-get install minidlna

Para configurar el servidor debes editar el archivo /etc/minidlna.conf.

sudo vim /etc/minidlna.conf

Hay que añadir una línea del tipo:

media_dir=V,/media/films

por cada directorio que quieras que aparezca en el servidor. Usa la “V” para especificar rutas a archivos de vídeo, “P” para fotos, y “A” para audio. Por ejemplo:

media_dir=V,/media/films
media_dir=P,/media/fotos
media_dir=A,/media/musica

Especifica el nombre de la interfaz de red del equipo en el que está el servidor:

network_interface=eth0

Si no sabes su nombre, usa el comando ifconfig para averiguarlo.

Especifica el puerto que usará el servidor:

port=8200

Si usas un firewall (ufw, por ejemplo), recuerda que debes permitir conexiones desde tu red local al ordenador que tiene el servidor por el puerto que hayas especificado aquí.

Ponle el nombre que quieras al servidor, es el que verás en los equipos que se conecten a él:

friendly_name=Mi servidor DLNA

Activa inotify y ajusta el tiempo de notificación, de esa forma el servidor detectará de manera automática los nuevos archivos que añadas a los directorios que contienen los archivos multimedia:

inotify=yes
notify_interval=300

Graba los cambios que has hecho en este archivo.

Por defecto, la base de datos que crea el servidor se guarda en /var/cache/minidlna. asegúrate de que ese directorio pertenece al usuario minidlna (que es con el que corre el servidor) y que tiene permiso de escritura para el propietario (u+w)

Por un problema de diseño en el script de inicio del servidor, es necesario añadir el archivo /etc/init/start-minidlna.conf para que el servidor no arranque hasta que los servicios de red estén activos. Créalo con la orden:

sudo vim /etc/init/start-minidlna.conf

o con tu editor favorito, y escribe estas líneas en él:

# Task to start Minidlna - lightweight DLNA/UPNP media server
# Minidlna is not starting correctly on boot, see bug
# https://bugs.launchpad.net/ubuntu/+source/minidlna/+bug/1053173
#
description "Task to start minidlna"

start on (local-filesystems and net-device-up IFACE!=lo)

respawn
respawn limit 5 30
task

exec /usr/sbin/service minidlna start

Este archivo debe tener los permisos rw-r–r– y pertenecer a root y al grupo root.

Y esto es todo. El servicio arrancará cada vez que reinicies el ordenador o puedes hacerlo manualmente con:

sudo service minidlna start

Si quieres reiniciar la base de datos, puedes hacerlo con:

sudo service minidlna force-reload

En mi caso, tengo una TV LG modelo 55LM620S-ZE y así es cómo se ve el servidor al visualizar la lista de entradas disponibles:

Servidor DLNA

Al seleccionar el servidor DLNA puedes navegar por las carpetas para ver su contenido y reproducir lo que te apetezca.

Carpetas

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

8 comentarios en “Cómo montar un servidor DLNA con Ubuntu GNU/Linux”

  1. Navegando con Mozilla Firefox Mozilla Firefox 41.0 en Ubuntu Linux Ubuntu Linux

    Tengo un problema con los permisos. Tengo los archivos en un disco duro de datos que se monta en /media/surimi. AL hacer
    sudo service minidlna force-reload
    Me dice que no son accesibles los directorios [Permiso denegado]. Tengo claro que el problema es de permisos pero no sé qué tengo que hacer. ¿Me puedes echar una mano?

  2. Navegando con Mozilla Firefox Mozilla Firefox 42.0 en Windows Windows 7

    Hola, David.
    Comprueba que el servicio minidlna se está ejecutando con el usuario minidlna y que el directorio de la base de datos (/var/cache/minidlna por defecto) pertenece al usuario minidlna y que tiene permiso de escritura para él.
    Comprueba que el directorio donde montas tu disco (/media/surimi) tiene permiso de lectura para “otros” (o+r) y que las rutas a los archivos que hayas especificado en el archivo de configuración:
    media_dir=V,/media/surimi/films (por ejemplo)
    también tengan permiso de lectura para “otros” (o+r)
    Si aún así te sigue dando problemas, dame más información de cómo lo tienes configurado y qué permisos tienen esos directorios.
    Saludos.

  3. Navegando con Mozilla Firefox Mozilla Firefox 42.0 en Ubuntu Linux Ubuntu Linux

    Hola! Mil gracias por tu rápida respuesta! Tengo todos los archivos de /media/surimi con propietario minidlna y permisos 777. Hice esa “locura” para asegurarme de que no era ese el problema. El directorio de la base de datos tiene propietario minidlna:minidlna. Lo que no sé es cómo hace para saber si es el usuario minidlna el que ejecuta el servicio. De todas formas, he cambiado el minidlna.conf para poner directorios locales (media_dir=V, /home/usuario/Público/Vídeos) y me da el mismo error (¿? No lo entiendo)

      1. Navegando con Mozilla Firefox Mozilla Firefox 42.0 en Ubuntu Linux Ubuntu Linux

        Hola, David.
        1º – En los directorios que hayas configurado en /etc/minidlna.conf como “media_dir=” es suficiente conque tengan permiso de lectura para otros (rwxr-xr-x), por ejemplo.

        2º – Los archivos en esos directorios deben tener permisos de lectura para otros: rw-r–r–

        3º – El directorio /var/cache/minidlna tiene que pertenecer, como ya hemos dicho, al usuario minidlna y tener permiso de escritura: rwxr-xr-x

        4º – Si dentro de /var/cache/minidlna existen el archivo files.db y el directorio art_cache, BÓRRALOS.

        5º – Comprueba que en /etc/minidlna.conf la línea:
        user=minidlna está comentada (por defecto se usa el usuario minidlna).

        6º – Comprueba en ese mismo archivo que la línea db_dir=/var/cache/minidlna está también comentada.

        7º Comprueba que tienes el archivo /etc/init/start-minidlna.conf con permisos rw-r–r– y propietario root:root tal como explico en el post.

        8º – Cuando hayas hecho esas comprobaciones abre dos terminales, en uno ejecuta:
        sudo service minidlna stop
        en el otro ejecuta:
        tail -f /var/log/minidlna.log
        Vuelve al primer terminal y ejecuta:
        sudo service minidlna start
        y fíjate lo que aparece en el log.

        Para saber qué usuario ejecuta el servicio ejecuta:
        ps aux | grep minidlna
        y verás algo así:
        minidlna 1542 0.6 0.1 208408 24312 …
        Lo primero es el usuario.
        Si no es minidlna, puede que el usuario no se haya creado.
        Puedes comprobarlo en el archivo /etc/passwd, deberías tener una línea así:
        minidlna:x:116:125:MiniDLNA server,,,:/var/lib/minidlna:/usr/sbin/nologin
        Si no existe, reinstala el paquete minidlna.
        Si con todo esto aún no funciona, dime qué error exacto aparece en el log.

        Saludos.

  4. Navegando con Mozilla Firefox Mozilla Firefox 43.0 en Ubuntu Linux Ubuntu Linux

    hola, tenia una duda con el archivo /etc/init/start-minidlna.conf
    al tratar de cambiar el usuario de “yo” a “root” me lo vuelve a dejar en “yo”, como podria dejarlo en “root”?

  5. Navegando con Mozilla Firefox Mozilla Firefox 43.0 en Windows Windows 7

    Hola, Eduardo.
    Para cambiar el usuario y grupo del archivo que comentas tienes que ejecutar en un terminal el comando:
    sudo chown root:root /etc/init/start-minidlna.conf

    Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Antes de enviar el formulario: