Desde luego no es ninguna novedad el utilizar una Raspberry Pi como mediacenter. Existen bastantes distribuciones que directamente te ofrecen la posibilidad de bajarte una imagen para una tarjeta SD y disfrutar casi de inmediato de las posibilidades multimedia de este dispositivo.

Utilizar una distribución de como RaspBMC o XBian permite en muy poco tiempo (lo que tardes en grabar en una SD la imagen de disco) tener una versión operativa de XBMC y generalmente bien configurado. Sin embargo siempre quedamos algunos que preferimos cocinarnos nosotros mismos nuestra propia configuración, basándonos en una distribución a nuestro gusto.

También tengo que decir que he probado algunas distribuciones y esta solución es la que mayor rendimiento me ha ofrecido, permitiéndome reproducir con mayor fluidez contenido FullHD a 1920×1080.

Obteniendo una copia de Archlinux

Archlinux es una distribución Linux quizás menos conocida que otras como Debian, Ubuntu, Fedora, etc. Sin embargo resulta muy interesante si quieres tener un entorno ligero. Huye de artificios, manteniendo en todo momento la configuración por consola de sus componentes de forma totalmente minimalista y elegante. Se basa en el principio KISS (Keep It Simple, Stupid!).

Para obtener una copia para nuestra Raspberry (da igual si es la versión de 256MB o de 512MB) puedes descargarla de: http://archlinuxarm.org/platforms/armv6/raspberry-pi. No tiene ningún misterio. Seleccionas el enlace o método preferido y te bajas una imagen de disco para tu SD de 2 GB.

Grabando la imagen a SD

Un vez hayas descargado la imagen deberás de grabarla en una tarjeta SD, como mínimo de 2 GB.

# dd if=archlinux-hf-2013-07-22.img of=/dev/mmcblk0 bs=1M

Un consejo: 2GB realmente no dan para mucho y menos para un servidor multimedia. Aunque conserves tus archivos multimedia en un disco externo necesitarás espacio para guardar tus imágenes de carátulas, fanarts y la base de datos. Por ese motivo es mejor que cuando tengas la imagen en disco utilices alguna utilidad de particionado o una distribución como PartedMagic para redimensionar el particionado de la SD.

Claro que también puedes configurar XBMC para que almacene todos los ficheros gráficos en otro dispositivo y compartir una base de datos en MySQL para todos tus centros multimedia. 😉

Una vez hecho esto ya podemos extraer la tarjeta y pincharla en nuestra Raspberry.

Configurando Archlinux

Una vez arranquemos nuestra Raspberry tendremos todo un sistema base instalado con varios servicios (incluso SSH). Usaremos el usuario root y constraseña root para validarnos y seguir la instalación.

Cambiamos el nombre de host

# echo mediacenter > /etc/hostname

Cambiamos la password de root

# passwd

Y cambiamos la distribución de teclado a castellano.

# localectl set-keymap es

Ahora puede suceder que utilicemos una conexión de cable o bien wifi. Si tenemos una conexión cableada puedes saltarte el siguiente punto. Si por el contrario (como yo) vas utilizarlo con wifi el siguiente apartado explica como configurar la conexión.

Configurando el wifi

La rama 3.6 del kernel de Linux tiene un buen soporte de chipsets wifi, por lo que probablemente detectará correctamente tu dispositivo inalámbrico y podrás continuar la instalación. Si quieres puedes comprobar la lista de dispositivos de red de tu equipo para asegurarte. Teclea:

# ip link

Y seguramente tendrás un dispositivo wlan0 o similar.

Archlinux huye de scripts y artificios, manteniendo una estructura muy simple. Y configurar un wifi por consola no va a ser menos. Utilizando la utilidad CLI netcli y el script wifi-menu que viene por defecto sólo te llevará un minuto configurar tu conexión.

Con esta linea detectaremos las redes disponibles, podremos elegir a cual conectarnos y nos solicitará su clave. Almacenará un fichero con la configuración en la ruta /etc/netctl/ que posteriormente utilizaremos.

# wifi-menu -o

Una vez creada la configuración de la conexión podemos activar dicha conexión para comprobar que se conecta correctamente

# netctl start wlan0-xxxx

Ahora ya tenemos conexión. Podemos hacer un ping o simplemente comprobar la IP asignada con

# ip addr show wlan0

Si todo es correcto ya podemos habilitar la conexión en el arranque para que se conecte automáticamente.

# netctl enable wlan0-xxxx (donde xxxx es el nombre de la conexión almacenada en <em>/etc/netctl/</em>)

Actualizando e instalando paquetes

Cualquier instalación que se precie debe de estar siempre actualizada, así que utilizaremos pacman, el gestor de paquetes de Archlinux. Una vez realizado este paso procederemos a instalar todos los paquetes necesarios (y sus dependencias) para ejecutar XBMC.

# pacman -Syu
# pacman -Sy alsa-utils libxv mpeg2dec upower unrar xorg-server xf86-video-fbdev lirc xorg-xinit udisks  xbmc

Configurando el audio

El paquete alsa-utils habilita el servidor de audio, permitiéndonos utilizar la salida de sonido. Por defecto viene habilitada la salida de audio por HDMI, lo más habitual. No está de más ejecutes el mezclador de sonido para revisar las opciones y niveles de salida.

# alsamixer

Preparando el entorno para la ejecución como servicio

Ahora ya estamos en disposición de arrancar XBMC con la cuenta de root y comprobar que todo funcione correctamente. Sin embargo esta es una opción «poco elegante». El paquete xbmc ya incluye un script de systemd (el gestor de servicios de Archlinux) que permite habilitarlo en el arranque, corriendo como un proceso del usuario xbmc. Sin embargo dicho usuario no existe en el sistema y hay que crearlo.

Como es una instalación mínima he encontrado algunos problemas que he resuelto consultando foros. El principal problema se suele dar con el acceso a dispositivos de video y acceso a los dispositivos de entrada. Tampoco hay acceso a la gestión de energía. Os recopilo las distintas .rules a añadir a udev para evitar estos problemas de servicios.

Añadimos soporte para la gestión de energía. Creamos el fichero /etc/polkit-1/rules.d/10-xbmc.rules y añadimos el siguiente contenido:

polkit.addRule(function(action, subject) {
    if(action.id.match("org.freedesktop.login1.") &amp;&amp; subject.isInGroup("power")) {
        return polkit.Result.YES;
    }
});
 
polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.udisks") == 0 &amp;&amp; subject.isInGroup("storage")) {
        return polkit.Result.YES;
    }
});

Añadimos permisos para utilizar el sistema de video:

# echo 'SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"' &gt; /etc/udev/rules.d/10-vchiq-permissions.rules

Permisos para utilizar los dispositivos de entrada:

# echo 'SUBSYSTEM=="input", KERNEL=="mouse*|mice|event*", GROUP="users", MODE="0660"' &gt; etc/udev/rules.d/51-input-permissions.rules

Añadimos el usuario que gestionará el servicio

Creamos el usuario y grupo xmbc y lo añadimos a los grupos necesarios.

# groupadd xbmc
# useradd -m -g xbmc xbmc
# usermod -a -G disk, video, audio, optical, storage, power, users xbmc

Probando que todo funciona correctamente

Ahora en teoría ya estamos en disposición de arrancar el servicio con systemd y probar su funcionamiento. Lanzamos el servicio.

# systemctl start xbmc

Si todo está correctamente tras unos segundos arrancará el servicio y el modo gráfico, corriendo xbmc a pantalla completa. Prueba que funciona correctamente el entorno con el teclado y vuelve nuevamente a consola.

Ahora habilitamos el servicio en el arranque.

# systemctl enable xbmc

Controlar el centro multimedia

A partir de aquí ya sólo queda decidir cómo queremos controlar nuestro centro multimedia.

Particularmente en esta instalación utilizo el cliente oficial de Android para XBMC como control remoto y gestor de la biblioteca multimedia, por lo que gestiono desde el móvil todos los dispositivos XBMC. Claro, ello implica que se encuentren conectados a la misma red.

También puedes seguir controlando el dispositivo por teclado o bien instalar un control remoto, siguiendo un tutorial como este: http://www.arch-ed.dk/systemd-lircd-mceusb-xbmc-and-arch-linux/

Por último, si conectas a una televisión relativamente reciente podrás hacer uso del mando a distancia de la misma a través de la conexión HDMI-CEC. Dicha conexión la gestiona directamente XBMC y es reconocida automáticamente en la Raspberry por lo que el mando funcionará directamente sin ningún tipo de configuración.

Fuentes

Comparte si te ha gustado

Autor:
Última actualización:

Un comentario

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

De acuerdo con lo dispuesto en el Reglamento (UE) 2016/679 de 27 de abril de 2016, consiento que mis datos sean tratados bajo la responsabilidad de Oscar Gascón Arjol para recibir respuesta a consultas. publicación de comentarios del blog y que las conserve mientras haya un interés mutuo para ello. Me doy por informado que tengo derecho a revocar este consentimiento en cualquier momento y a ejercer los de acceso, rectificación, portabilidad y supresión de mis datos y los de limitación y oposición al tratamiento dirigiéndome por email a me@oscargascon.es. También estoy informado de que puedo reclamar ante la autoridad de control a www.agpd.es.