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

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

Primer arranque

Conectar la SD a la raspberry. Conectar HDMI a la TV. Conectar el ethernet al router. Conectar teclado USB (no es estrictamente necesario si tenemos mando con CEC para controlar el xbmc). 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

Mediante un cliente ssh (por ejemplo, puTTY), conectarse a la IP de la raspberry. User: xbian

Pass: raspberry 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ú: 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). Cambiar pass de ssh (menú Settings/Accounts/XBian password). Instalar los siguientes paquetes usando el menú Packages (esto tarda bastante): net/samba (para acceder a los directorios desde un equipo Windows)

(para acceder a los directorios desde un equipo Windows) net/transmission (para usar el cliente torrent transmission) Una vez terminados el paso 2, salir a consola mediante el botón Return del menú. 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:

Detener el servicio mediante /etc/init.d/transmission stop (si no, los cambios no se guardarán). 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, 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 :

Crear una cuenta en https://www.dnsdynamic.org/. Una vez activada la cuenta, añadir el nombre de dominio que queramos usar (por ejemplo, miraspberryeschuchuchuuuli.dnsget.org ) pinchando aquí . Consultar parámetros de configuración aquí, mantener abierta la página para su posterior consulta. En la consola de la raspberry, instalar ddclient (sudo apt-get install ddclient). Durante la instalación pedirá una serie de parámetros, meterlos de acuerdo a lo indicado en el punto 3: Server: http://www.dnsdynamic.org Dynamic DNS update protocol: dyndns2 Username: <MISUARIO> Password: <MIPASSWORD> Como interfaz (interface), introducir eth0 (en realidad, este campo vamos a eliminarlo en el siguiente paso). DynDNS fully qualified domain names: <MIDOMINIO> 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

Instalar pip: sudo apt-get install python-pip Instalar flexget: sudo pip install flexget Si está bien instalado, esto devolverá la versión: flexget -V Ahora hay que crear un archivo de configuración. Pero primero creemos la carpeta que lo contendrá: mkdir /home/xbian/.flexget 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! Una vez definido el archivo de configuración, podemos probar que la configuración es correcta mediante: flexget --test Por último, vamos a programar la ejecución de flexget una vez cada hora, para ello abrimos crontab: crontab -e 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.

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

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