Instalación y configuración de centro multimedia + cliente torrent en Raspberry Pi (XBian 1.0 Alpha 5)

En este tutorial aprenderemos a instalar y configurar un centro multimedia (xbmc) y cliente torrent (transmission) en nuestra Raspberry Pi. Concretamente, usaremos la distribución XBian 1.0 alpha 5, que está especialmente optimizada para ejecutar xbmc sobre nuestra Raspberry. El tutorial es una versión actualizada de este otro.

Además, prepararemos nuestra Raspberry para que se descargue torrents automáticamente desde una lista de noticias RSS. Esto nos permitirá descargar los capítulos de una serie (una que permita su libre distribución, claro está) de forma automática conforme sean emitidos. Para este fin usaremos un programa llamado flexget.

El tutorial asume unos mínimos conocimientos de GNU/Linux (no muchos, bastará con saber editar archivos a través de una consola de comandos).

¡Comencemos, por Belenos!

Instalación de imagen xbian

  1. Descargar instalador de xbian (http://xbian.org/download/) al PC.
  2. Meter la SD en el PC. Ejecutar el instalador y seleccionar la tarjeta SD y la versión 1.0 alpha5.
  3. Instalar la imagen (INSTALL).

Primer arranque

  1. Conectar la SD a la raspberry.
  2. Conectar HDMI a la TV.
  3. Conectar el ethernet al router.
  4. Conectar teclado USB (no es estrictamente necesario si tenemos mando con CEC para controlar el xbmc).
  5. Conectar la alimentación. NOTA: para el modelo B de 512MB usar un cargador de al menos 1A, ya que un cargador de menor corriente podría producir que la interfaz ethernet no funcione correctamente, o incluso que el sistema se bloquee.

El sistema empezará a arrancar, dejarlo a su amor.

Una vez la luz ACT se tranquilice, para acceder al router hay que averiguar la IP de la raspberry. Hay muchas formas de hacer esto, por ejemplo:

  • A través de la interfaz del router, accediendo a la lista DCHP y viendo qué IP asignó a la raspberry.
  • A través del propio menú del xmbc (System Info).

Conexión SSH

  1. Mediante un cliente ssh (por ejemplo, puTTY), conectarse a la IP de la raspberry.
    • User: xbian
    • Pass: raspberry
  2. Tras conectar, se abre automáticamente el menú de configuración xbian (xbian-config). Para movernos por el menú, podemos usar las teclas direccionales, ENTER y ESCAPE de nuestro teclado. Realizar las siguientes acciones a través del menú:
    1. Configurar una IP fija para la raspberry (menú Settings/Network/LAN/eth0/Static IP). Lo ideal es que dicha IP esté fuera del rango DHCP del router (para que éste nunca asigne dicha IP a otro equipo).
    2. Cambiar pass de ssh (menú Settings/Accounts/XBian password).
    3. Instalar los siguientes paquetes usando el menú Packages (esto tarda bastante):
      • net/samba  (para acceder a los directorios desde un equipo Windows)
      • net/transmission (para usar el cliente torrent transmission)
  3. Una vez terminados el paso 2, salir a consola mediante el botón Return del menú.
  4. Para que los siguientes pasos se realicen más rápido, aconsejo parar el xmbc (sudo /etc/init.d/xbmc stop).

transmission-daemon

Por defecto, la interfaz web del cliente torrent transmission sólo es accesible desde ciertas IPs de la red local. Si queremos poder acceder desde una IP externa, será necesario añadirla a la “lista blanca”, o bien desactivar completamente dicha lista. Para ello:

  1. Detener el servicio mediante /etc/init.d/transmission stop (si no, los cambios no se guardarán).
  2. Editar /usr/local/etc/transmission/settings.json y eliminar la whitelist (para poder acceder desde fuera de casa al cliente web):
    "rpc-whitelist-enabled": false,
  3. Una vez modificado el archivo, podemos iniciar nuevamente el servicio mediante /etc/init.d/transmission start .

DNS dinámico

Si vamos a tener la raspberry conectada de forma permanente a Internet, y nuestro proveedor de telefonía/internet no nos proporciona una IP fija (aquella que no cambia al reiniciar el módem/router), es muy recomendable utilizar un servicio de nombres de dominio dinámico. De esta forma podremos conectarnos a nuestra raspberry desde fuera de casa.

A continuación describo los pasos para configurar DNS dinámico usando dnsdynamic.org :

  1. Crear una cuenta en https://www.dnsdynamic.org/.
  2. Una vez activada la cuenta, añadir el nombre de dominio que queramos usar (por ejemplo, miraspberryeschuchuchuuuli.dnsget.org ) pinchando aquí .
  3. Consultar parámetros de configuración aquí, mantener abierta la página para su posterior consulta.
  4. En la consola de la raspberry, instalar ddclient (sudo apt-get install ddclient).
  5. Durante la instalación pedirá una serie de parámetros, meterlos de acuerdo a lo indicado en el punto 3:
    1. Server: http://www.dnsdynamic.org
    2. Dynamic DNS update protocol: dyndns2
    3. Username: <MISUARIO>
    4. Password: <MIPASSWORD>
    5. Como interfaz (interface), introducir eth0 (en realidad, este campo vamos a eliminarlo en el siguiente paso).
    6. DynDNS fully qualified domain names: <MIDOMINIO>
  6. Una vez finalizada la instalación, editar (como root) el archivo /etc/ddclient.conf para que contenga:
     # Configuration file for ddclient generated by debconf
     #
     # /etc/ddclient.conf
    
     protocol=dyndns2
     use=web, web=myip.dnsdynamic.org
     server=www.dnsdynamic.org
     login=<MIUSUARIO>
     password='<HASHDELPASSWORD>'
     <MIDOMINIO>

    NOTA: en lugar de <MIUSUARIO>, <HASHDELPASSWORD> y <MIDOMINIO> aparecerán los parámetros introducidos durante la instalación, y que se corresponden con nuestro nombre de usuario en https://www.dnsdynamic.org/, nuestra contraseña, y el nombre de dominio que hayamos creado (en el ejemplo, miraspberryeschuchuchuuuli.dnsget.org).

Samba

Samba es una implementación libre del protocolo de compartición de recursos usado por Windows. Activarlo en la raspberry nos permitirá acceder a su sistema de archivos desde otros ordenadores (tanto Windows como GNU/Linux).

En un paso anterior del tutorial ya instalamos el paquete samba. Para configurarlo editaremos el archivo /etc/samba/smb.conf, ejemplo:

[global]
 workgroup = WORKGROUP
 usershare allow guests = no
 security=share
 follow symlinks = yes
 wide links = yes
 unix extensions = no
 lock directory = /var/cache/samba
 hosts allow = 192.168.1.44 127.

 [xbian]
 browsable = yes
 read only = no
 guest ok = yes
 path = /home/xbian
 force user = xbian

Donde WORKGROUP es el nombre del grupo de equipos que comparten. Si nunca habéis cambiado este parámetro en ningún otro equipo de vuestra red, lo más probable es que el grupo sea WORKGROUP.

NOTA: en ocasiones, he observado que el servicio de samba consume muchos recursos (aunque no esté pasando archivos), no sé si debido algún servicio de indexación de alguna de mis máquinas windows. Si es el caso, recomiendo parar el servicio (sudo /etc/init.d/samba stop) para usar el xmbc.

FlexGet

  1. Instalar pip:
    sudo apt-get install python-pip
  2. Instalar flexget:
    sudo pip install flexget
  3. Si está bien instalado, esto devolverá la versión:
    flexget -V
  4. Ahora hay que crear un archivo de configuración. Pero primero creemos la carpeta que lo contendrá:
    mkdir /home/xbian/.flexget
  5. Ahora sí, crearemos y editaremos el archivo de configuración en /home/xbian/.flexget/config.yml utilizando el formato descrito aquí, ejemplo:
    tasks:
      tv-shows:
        rss: <DIRECCION_RSS>
        series:
          - <NOMBRE_DE_SERIE>:
              quality: hdtv
        download: /home/xbian/torrents

    NOTA1<DIRECCION_RSS> es la dirección de la lista de noticias y <NOMBRE_DE_SERIE> es el nombre de la serie a descargar.

    NOTA2: ¡Mucho cuidado con los espacios al principio de cada línea!

  6. Una vez definido el archivo de configuración, podemos probar que la configuración es correcta mediante:
    flexget --test
  7. Por último, vamos a programar la ejecución de flexget una vez cada hora, para ello abrimos crontab:
    crontab -e
  8. Y añadimos la siguiente línea:
    @hourly /usr/local/bin/flexget --cron

Quitar servicios de inicio de sistema

Personalmente prefiero ser yo quien decida qué servicios se ejecutan en cada momento, para quitar servicios de la secuencia de arranque:

 sudo /usr/sbin/update-rc.d -f transmission remove

Desactivar el lanzamiento automático de xbian-config

Si no queremos que xbian-config se lance cada vez que nos conectemos por ssh, lo desactivamos editando como root el archivo /home/xbian/.bashrc, y comentando la siguiente línea:

#sudo xbian-config

Configurar automontaje de discos ext3/ext4 al arrancar la raspberry.

Este paso sólo es necesario si queréis conectar un disco externo que esté formateado en ext3/ext4. Si el disco está formateado en NTFS, saltad al siguiente apartado.

  1. Con la raspberry encendida conectar el disco.
  2. Ejecutar df -h. Si sale el disco, apuntar el nombre de la partición en dev (ejemplo /dev/sda1) y saltar a 4.
  3. Ejecutar dmesg, buscad dónde ha intentado montarlo (sin éxito xD). Apuntar el nombre como en el paso 2.
  4. Crear la carpeta que actuará como punto de montaje (por ejemplo, /media/midisco).
  5. Añadir a /etc/fstab :
    /dev/sda1   /media/midisco   ext4 defaults     0   0
  6. Reiniciar la raspberry con:
    sudo reboot

Automontaje de discos NTFS.

Los discos externos USB que estén formateados en NTFS son reconocidos y montados automáticamente en /media/usb .

Configurar el guardado de las descargas de transmission en el disco externo

Este paso cambia la localización de la carpeta de descargas incompletas (/home/xbian/incomplete) y descargas finalizadas (/home/xbian/downloads) para que se almacenen en el disco externo configurado en el paso anterior.

  1. Detenemos el transmission para evitar problemas:
    sudo /etc/init.d/transmission stop
  2. Movemos las carpetas al disco duro:
    mv /home/xbian/downloads /media/midisco/
    mv /home/xbian/incomplete /media/midisco/
  3. Creamos enlaces simbólicos a dichas carpetas:
    cd /home/xbian/
    ln -s /media/midisco/downloads/
    ln -s /media/midisco/incomplete/
  4. Iniciamos el transmission:
    sudo /etc/init.d/transmission start

23 thoughts on “Instalación y configuración de centro multimedia + cliente torrent en Raspberry Pi (XBian 1.0 Alpha 5)

  1. Pingback: Instalación y configuración de centro multimedia + cliente torrent en Raspberry Pi | ¡Por tutoriatis!

  2. Hola, gracias por el tuto, y lo que necesitaba era acceder desde internet a mi casa.
    Ha ido bien, pero cuando en el explorador pongo la URL de mi dnsdynamic, me salta la ventana del login, poniendo el login y contraseña del router, he podido entrar a la configuración del router. Lo que necesito es acceder al raspberry pi, o a otro portatil, no al router. ¿Cómo puedo hacerlo? Gracias!

    • Hola! de nada! me alegro de que te haya sido de utilidad!

      Lo que te ocurre es normal, y depende de la configuración del router. Según el modelo de router que uses, tienes que buscar en él una opción llamada “port forwarding”/”NAT”/”Virtual servers” o similar (probablemente la hayas usado alguna vez al configurar el eMule o el bittorrent).

      Una vez encuentres el menú del que hablo (si no lo encuentras prueba a buscar tu modelo de router y “abrir puertos” en google). Tienes que decirle al router qué puertos mandará a cada equipo. Por ejemplo, si quieres acceder a la página web del transmission (que está en el puerto 9091) tendrías que decirle al router “las llamadas al puerto 9091 mándalas al puerto 9091 de la raspberry”. De este modo, cuando accedas a TUURL:9091, se abrirá la web de la raspberry.

      De este modo, puedes decirle al router que según que puertos los mande a un equipo u otro (el 22 a la raspberry te permitiría acceder por ssh a ella desde fuera).

      Un último apunte, para probarlo lo mejor es usar un equipo externo (o el móvil en 3G), porque hay modelos de router que no aceptan llamadas a la IP externa desde dentro.

      si tienes más dudas no dudes en preguntar 😀

  3. Hola, tengo un problema.
    He instalado samba y cuando busco en el xbmc el acceso a la carpeta compartida en W7, veo el grupo de trabajo de mi windows y el grupo de trabajo definido en samba.
    Cuando trato de acceder al de windows, me da un error.
    Supongo que deben tener ambos el mismo grupo de trabajo, pero no se cómo accerder al fichero smb.conf para editarlo, ya que desde win no veo nada de la raspberry y por putty no tengo ni idea.
    Gracias por el tutorial.

    • Puede ser por lo que dices, aunque no he probado a usar dos grupos diferentes.

      Una opción es cambiar el nombre del grupo de trabajo de Windows (en inglés es el menú “Control Panel/System and Security/System/Advanced system settings/Computer name/Change”, en español debe de ser algo como “Panel de Control/Sistema y Seguridad/Sistema/Opciones de configuración avanzadas/Nombre de equipo/cambiar”) para que coincida con el de la raspberry (por defecto, WORKGROUP). Lo digo por lo que comentas de que no puedes acceder por putty.

      Si te animas a conectarte usando putty, siguiendo los pasos del tutorial puedes editar el archivo /etc/samba/smb.conf para que el nombre del workgroup coincida con el que tienes en windows.

  4. Tengo problemas en el último apartado “Configurar el guardado de las descargas de transmission en el disco externo”.

    Al crear enlace simbólico a la carpeta incomplete me sale error en transmission y se me cierra el servicio.

    ¿Alguna ayuda?

    • Lo he solucionado usando esto:

      ln -s /media/usb/downloads /home/xbian/downloads
      ln -s /media/usb/incomplete /home/xbian/incomplete
      ln -s /media/usb/torrents /home/xbian/torrents

      • Pero tengo una duda, haciendo esto, me aparece el archivo en /home/xbian y en mi disco duro.

        ¿Esta duplicando los archivos o solo se guardan en una ubicación?

      • ten en cuenta que los enlaces que indican el tutorial asumen que tienes el disco montado en /media/midisco . Imagino que tu problema se debía a que, en tu caso, lo tienes montado en /media/usb

        En cuanto a tu segunda duda, sólo se guardan en una ubicación, en /home/xbian lo que hay son enlaces simbólicos (simplificando, se podría decir que son equivalentes a los accesos directos de windows)

        si quieres comprobar que son enlaces y no copias de la carpeta, puedes ejecutar en /home/xbian el comando “ls -al”, si son enlaces verás que los representa con una flecha al destino

  5. hola, primero gracias por el tutorial!

    ahora cuando intento hacer este paso, para acceder remotamente (para añadir torrent mas que nada…)
    Cita:
    Editar /usr/local/etc/transmission/settings.json y eliminar la whitelist (para poder acceder desde fuera de casa al cliente web): “rpc-whitelist-enabled”: false,

    me dice access denied, y no me deja, como si me faltasen permisos de administrador y no se porque….

    alguna idea?
    gracias!!

    • hola, me alegro de que te haya servido 🙂

      En cuanto a tu problema, usa sudo para lanzar el editor como administrador (por ejemplo, sudo nano /usr/local/etc/transmission/settings.json). ¡Ah! y recuerda que debes detener el transmission antes de editar nada para que los cambios tengan efecto.

      • ok, luego lo prubeo, !

        ya te comento si me sigue dando problemas!
        si el transmission ya lhe instalado desde los packages,
        asi que en teoria deberia ser el sudo nano.

        veo que respondes rapido asi que te comento si me ha valido o no!

        gracias una vez mas.

      • ok! ya me cuentas. Ah! y me refería a que tienes que parar el servicio transmission (sudo /etc/init.d/transmission stop). Si no lo paras, los cambios que hagas no se guardan.

  6. Hola muchas gracias por el tutorial, está perfecto lo he hecho todo y va de lujo!!
    solo una cuestión por si sabes hacerlo, como podría crear un torrent desde el transmission?
    es decir para compartir un archivo mio, por linea de comandos??
    gracias!!

  7. estas semanas he estado muy liado y por eso he tenido esto algo abandonado.

    buscando, parece que se pueden crear torrents usando: transmission-cli -n -a http:/// -r .torrent

    pruébalo y nos cuentas 🙂

  8. yo lo instalado y va a tirones el transmission,

    me explico:

    va como a golpes, es decir, empieza a descargar y a los pocos segundos se queda pillado y pierde semillas, luego empeiza otra vez etc,
    total que no se puede descargar casi nada, porque va muy lento

    he probado de todo y no hay manera…

    • yo tengo la raspberry modelo b de 512 y no he tenido ese problema, así que no sirvo de mucha ayuda :S

      Quizá puedes probar a cambiar (desde el navegador usando la interfaz web) los valores de “max peers per torrent/overall”… a ver si bajándolo se descongestiona un poco.

  9. hola, en verdad ya sabia todo lo que pones en tu manual, pero se agradece algo tan directo, “sencillo”, currado, bien formateado, esquemático, completo,,,, me ha gustado mucho, me lo guardo ya que tenerlo todo en un único manual siempre es agradable, y te garantizo que es el que pasaré cuando alguien me pregunte sobre rasp+xbmc

    gracias.

  10. buenas tardes, estoy aqui liado porque lo que yo queria es justamente lo que ofreces, un xmbc que ademas me permita descargar los archivos, he estado haciendo lo que pones pero en elmomento de llegar al punto
    transmission-daemon
    meto los comandos que me dices y siempre me contesta que permiso denegado y ya no puedo avanzar mas, no se que es lo que estare haciendo mal pero ya me he vuelto loco.

    Un saludo

    • quizá te esté faltando incluir el comando sudo delante de cada comando:

      sudo /etc/init.d/transmission stop
      sudo /usr/local/etc/transmission/settings.json

      (aplicas los cambios)

      sudo /etc/init.d/transmission start

  11. Pingback: Raspberry Pi con XBMC y Transmission en XBian - Babuleando

Leave a Reply to jmlvega Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s