HTPC con XBMC, Antec Veris Premiere y Ubuntu 10.04 (testeado en Ubuntu 12.04 LTS)

Contenido

1-. Introducción

Hace algunos años que estaba con la idea de un dispositivo que centralizara la mayor cantidad de funcines de entretención en el hogar. Había revisado LinuxMCE y Windows Media Center pero ninguno me convenció. Finalmente encontré Boxee, cuyo único problema (al menos para mí) es la privacidad y el "amarre", ya que debes sacar una cuenta en su sitio para usarlo. Finalmente supe que Boxee estaba basado en XBMC, asi es que bajé este último y comencé a explorarlo.

Las posibilidades son infinitas. Simplemente donde llegue la imaginación. Para un usuario pasivo, ya hay cientos de plugins y posibilidades para extender las funcionalidades del sistema. Para un usuario con ganas de hacer mas, hay mucha documentación en su wiki y posee una arquitectura que favorece la integración de otros elementos, como por ejemplo su web server. Es posible realizar operaciones y consultas de información por medio de un backend basado en Web. Así, puedes conectarte por medio de la red inalámbrica de tu casa y manejar el HTPC desde tu teléfono movil con WiFi. O si quieres ir mas alla, puedes diseñar utu propia interfaz, o controlarlo desde otro equipo, etc.

La idea de este artículo es compartir lo que hice para que funcionara este mediacenter. Básicamente por dos motivos: para no olvidarlo :) y porque me tomó varios días tenerlo ok, por lo tanto esto podría facilitar el camino a otros que se atrevan a hacerlo.

Actualización 23 Sept 2012

Al realizar actualización de Ubuntu 10.04 LTS a Ubuntu 12.04 LTS el sistema se mantiene funcionando correctamente.
Se debe procurar mantener los archivos de configuración de LIRC, LCDproc y modprobe alsa o bien modificarlos despues de la actualización del mismo modo que se indica en este tutorial.

1.1-. Resultado final

Saliendo del horno, esta marraqueta tiene las siguientes caracteristicas:

  • Reproducción de archivos de audio y video (mp3, ogg, avi, flac, flv, mpeg, mov, etc). Casi todos.
  • Conexión a la red
  • Reproducción de streams de audio y video locales o remotos
  • Reproducción de videos desde Youtube y muchos otros sitios
  • Plugins como "el clima" y Lector de RSS
  • Obtiene info en línea sobre artistas álbumes y películas
  • Todas las características de XBMC
  • Control remoto usando RM200 que viene con el panel Antec Veris Premiere
  • Despliegue de información en tiempo real en el display LCD del panel Antec
  • Salida de audio 5.1 para ver películas en DVD como corresponde
  • Montar recursos compartidos en la red con audio y video
  • Extensible.
  • Corre sobre Linux ;)

1.2-. Elementos utilizados

1.2.1-. Hardware

  • Placa madre Intel DG31PR con Audio, Video y Lan integrados.
  • 1 Disco de 80G IDE
  • 1 Unidad RW CD/DVD
  • Panel Antec Veris Premiere con control remoto RM200
  • Televisor HD cualquiera con entrada RGB (VGA).

1.2.2-. Software

Claramente hay muchos mas elementos de software que son utilizados, pero la mayoría queda operativo cuando se instala el sistema operativo (Ubuntu). Esta lista se refiere mas que nada al software que hay que configurar o instalar adicionalmente.

2-. Instalación del SO

Se utilizó Ubuntu 10.04 simplemente porque es la última estable. Debes descargar una imagen ISO de Minimal CD y grabarlo para Instalar. Si necesitas ayuda para esto la puedes encontrar en el mismo sitio de descarga del ISO.

Luego hay que bootear el equipo con el CD y realizar una instalación simple base. Cuando preguntó por algunos paquetes sólo agregue OpenSSH Server.

Y eso sería todo con el SO. Luego hay que hacer algunos ajustes pero con apt se arregla todo.

3-. Configuracion

3.1-. Habilitación del repositorio de XBMC

Ejecutar el siguiente comando para habilitar el repositorio

  1.  
  2. sudo apt-get install python-software-properties
  3. sudo add-apt-repository ppa:team-xbmc
  4.  

Luego instalar xbmc y xbmc-live:

  1.  
  2. xbmc@xbmc:~$ sudo apt-get install xbmc xbmc-live
  3.  

3.2-. LIRC y el control remoto

Esto es importante. Es una de las principales gracias del mediacenter.
LIRC servirá para habilitar el control remoto. Para instalar ejecutar:

  1.  
  2. sudo apt-get install lirc
  3.  

Al ejecutar este comando aparecerá la pantalla de configuración de lirc, donde debes seleccionar "Soundgraph iMON Antec Veris":

En la segunda pantalla debes seleccionar None:

Acá viene un punto importante en la configuracion,. Si revisamos el archivo /etc/lirc/hardware.conf veremos lo siguiente en la primeras líneas:

  1.  
  2. # /etc/lirc/hardware.conf
  3. #
  4. #Chosen Remote Control
  5. REMOTE="Soundgraph iMON Antec Veris"
  6. REMOTE_MODULES="lirc_dev lirc_imon"
  7. REMOTE_DRIVER=""
  8. REMOTE_DEVICE="/dev/lirc0"
  9. REMOTE_SOCKET=""
  10. REMOTE_LIRCD_CONF="imon/lircd.conf.imon-antec-veris"
  11.  

Si intentas usar el control ahora no funcionará. Al revisar el archivo /usr/share/lirc/remotes/imon/lircd.conf.imon-antec-veris veremos que no hay ningun control llamado Soundgraph iMON Antec Veris, sino Antec_Veris_RM200, por lo tanto debemos cambiar el nombre en el archivo /etc/lirc/hardware.conf:

  1.  
  2. # /etc/lirc/hardware.conf
  3. #
  4. #Chosen Remote Control
  5. REMOTE="Antec_Veris_RM200"
  6. REMOTE_MODULES="lirc_dev lirc_imon"
  7. [...]
  8.  

Luego, reiniciar lirc y xbmc-live:

xbmc@xbmc:~$ sudo service lirc restart
 * Stopping remote control daemon(s): LIRC                   [ OK ] 
 * Loading LIRC modules                                      [ OK ] 
 * Starting remote control daemon(s) : LIRC                  [ OK ] 
xbmc@xbmc:~$ sudo service xbmc-live restart
 * Configuring system and starting XBMC...          
 * Increasing ALSA volumes..                                 [ OK ]
 * Setting volumes at 100%
xbmc@xbmc:~$ 

Ahora puedes probar el control, y verás que tampoco funciona :P

Eso es porque falta configurar el mapeo en xbmc, para lo cual debes crear el archivo ~/.xbmc/userdata/Lircmap.xml, esto es en el home del usuario que corre xbmc:

  1.  
  2. <!-- -->
  3. <!-- Andres Altamirano 20100923 http://patux.cl/htpc -->
  4. <!-- Este archivo tiene el de teclas para el panel con control remoto de Antec -->
  5. <!-- Multimedia Station Premiere -->
  6. <!-- Sección del control remoto -->
  7. <lircmap>
  8. <remote device="Antec_Veris_RM200">
  9. <power>KEY_POWER</power>
  10. <record>Record</record>
  11. <play>KEY_PLAY</play>
  12. <reverse>KEY_REWIND</reverse>
  13. <pause>KEY_PAUSE</pause>
  14. <stop>KEY_STOP</stop>
  15. <forward>KEY_FASTFORWARD</forward>
  16. <left>KEY_LEFT</left>
  17. <right>KEY_RIGHT</right>
  18. <up>KEY_UP</up>
  19. <down>KEY_DOWN</down>
  20. <select>KEY_ENTER</select>
  21. <pageplus>KEY_CHANNELUP</pageplus>
  22. <pageminus>KEY_CHANNELDOWN</pageminus>
  23. <back>KEY_ESC</back>
  24. <back>KEY_BACKSPACE</back>
  25. <menu>Go</menu>
  26. <title>TaskSwitcher</title>
  27. <info>3TaskSwitcher</info>
  28. <skipplus>NextChapter</skipplus>
  29. <skipminus>PrevChapter</skipminus>
  30. <display>FullScreen</display>
  31. <start>MultiMon</start>
  32. <volumeplus>KEY_VOLUMEUP</volumeplus>
  33. <volumeminus>KEY_VOLUMEDOWN</volumeminus>
  34. <mute>KEY_MUTE</mute>
  35. <myvideo>KEY_VIDEO</myvideo>
  36. <mymusic>KEY_AUDIO</mymusic>
  37. <mypictures>KEY_PHOTO</mypictures>
  38. <mytv>KEY_TV</mytv>
  39. <one>KEY_1</one>
  40. <two>KEY_2</two>
  41. <three>KEY_3</three>
  42. <four>KEY_4</four>
  43. <five>KEY_5</five>
  44. <six>KEY_6</six>
  45. <seven>KEY_7</seven>
  46. <eight>KEY_8</eight>
  47. <nine>KEY_9</nine>
  48. <zero>KEY_0</zero>
  49. </remote>
  50. <remote device="Antec_Veris_Premiere">
  51. <play>KEY_PLAYPAUSE</play>
  52. <reverse>KEY_REWIND</reverse>
  53. <stop>KEY_STOP</stop>
  54. <forward>KEY_FASTFORWARD</forward>
  55. <left>KEY_LEFT</left>
  56. <right>KEY_RIGHT</right>
  57. <up>KEY_UP</up>
  58. <down>KEY_DOWN</down>
  59. <select>KEY_SELECT</select>
  60. <volumeplus>KEY_VOLUMEUP</volumeplus>
  61. <volumeminus>KEY_VOLUMEDOWN</volumeminus>
  62. <mute>KEY_MUTE</mute>
  63. <myvideo>KEY_VIDEO</myvideo>
  64. <mymusic>KEY_AUDIO</mymusic>
  65. <mypictures>KEY_PHOTO</mypictures>
  66. <mytv>KEY_TV</mytv>
  67. </remote>
  68. </lircmap>
  69.  

3.3-. LCDproc y el display

LCDproc permitira a XBMC enviar mensajes a display LCD que viene integrado en el panel Antec. Primero hay que instalar lcdproc:

  1.  
  2. xbmc@xbmc:~$ sudo apt-get install lcdproc
  3.  

Luego hay que modificar el archivo /etc/LCDd.conf. Dentro de la sección [server] modificar el parámetro Driver cambiando curses por imonlcd y el parámetro ServerScreen con el valor "no" (descomentar si está comentado):

  1.  
  2. [server]
  3.  
  4. Driver=imonlcd
  5. ServerScreen=no
  6. # ** Comentarios omitidos
  7.  

Luego reiniciar LCDd:

  1.  
  2. xbmc@xbmc:~$ sudo /etc/init.d/LCDd restart
  3. Restarting LCDd: Stopping LCDd: LCDd.
  4. Starting LCDd: LCDd.
  5. xbmc@xbmc:~$
  6.  

Ahora es posible ver en el display LCD del panel, información respecto de LCDproc. En XBMC debes habilitar LCD en Sistema->Ajustes->Sistema->Tipo de LCD.

Se muestra entonces en el display la información que envía XBMC.

3.4-. AUDIO

La placa madre usada en este caso (DG31PR) viene con audio integrado. Soporta 6 canales con salidas analógicas en tres clavijas (plugs, o conectores) de 3.5 (el típico de audífono). Uno es para los canales delantero izquierodo y derecho. El otro para los traseros derecho e izquierdo y el otro para el central.

Debes conectar esto a un amplificador con las entradas necesarias.

Por el lado del software hay que instalar alsa:

  1.  
  2. xbmc@xbmc:~$ apt-get install alsa-utils
  3.  

Luego modificar el archivo /etc/modprobe.d/alsa-base.conf agregando una nueva línea despues de "# Prevent abnormal drivers from grabbing index 0":

  1.  
  2. # Prevent abnormal drivers from grabbing index 0
  3. options snd_hda_intel model=3stack-6ch
  4.  

Se debe reiniciar ahora.

Luego hay que configurar el volumen y los canales con el comando alsa-mixer:

En las barras verticales que aparecen hay que bajar los niveles de Front, Surround, Center, LFE a un nivel que no sea rojo ya que en muchos casos puedes saturar la salida de la tarjeta o la entrada del amplificador dependiendo de como venga el audio en el medio que estemos reproduciendo.

Luego, en la barra "Channel" hay que seleccionar "6ch" moviendo las flechas hacia arriba y hacia abajo para cambiar los valores.

Para comprobar el funcionamiento y conectar los canales correctamente el amplificador primero hay que detener xbmc-live:

  1.  
  2. root@xbmc:~# /etc/init.d/xbmc-live stop
  3.  

y despues usar el siguiente comando que enviará un sonido indicativo correspondiente a cada parlante para ubicarlos y detectar si estan bien conectados:

  1.  
  2. root@xbmc:~# speaker-test -Dplug:surround51 -c6 -l1 -twav
  3.  
  4. speaker-test 1.0.22
  5.  
  6. Playback device is plug:surround51
  7. Stream parameters are 48000Hz, S16_LE, 6 channels
  8. WAV file(s)
  9. Rate set to 48000Hz (requested 48000Hz)
  10. Buffer size range from 64 to 349504
  11. Period size range from 32 to 174752
  12. Using max buffer size 349504
  13. Periods = 4
  14. was set period_size = 174752
  15. was set buffer_size = 349504
  16. 0 - Front Left
  17. 4 - Center
  18. 1 - Front Right
  19. 3 - Rear Right
  20. 2 - Rear Left
  21. 5 - LFE
  22. Time per period = 22.206718
  23. root@xbmc:~#
  24.  

Antes de volver a iniciar xbmc fue necesario cambiar algo en el script de inicio. El problema fue que al iniciar xbmc-live hay un script que sube todos los volumenes al 100%, lo cual era intolerable en algunos casos. Simplemente comenté esa linea para evitarlo en el archivo /etc/init.d/xbmc-live (linea 118 aprox.):

                        XBMC_SETVOLUME="$(echo $XBMC_PARAMS | grep setvolume)"
                        if [ -n "$XBMC_SETVOLUME" ]; then
                                log_warning_msg "Increasing ALSA volumes..."
                                #/usr/bin/setAlsaVolumes &
                        fi

3.5-. Automount

Update 20101002
Para lograr esto se debe instalar hal, que permitirá a XBMC detectar los dispositivos de almacenamiento conectados por USB.

  1.  
  2. xbmc@xbmc:~$ sudo apt-get install hal
  3.  

***** Pendiente *****
Por ahora instale los siguientes paquetes:

  • afuse autofs
  • usbmount
  • pmount
  • autofs5

Con lo cual monta automaticamente los discos usb, pero no aparecen en XBMC. Mientras, lo resolví creando un link desde el home del usuario que corre xbmc hacia el directorio /media.

Seran bienvenidos los aportes al respecto.

3.6-. Apagar

La idea es poder apagar desde el control remoto. El mapeo ya está hecho, sin embargo es probable que no funcione la primera ves si la instalación del sistema operativo fue mínima. Si es así, entonces hay que instalar acpi.

  1.  
  2. xbmc@xbmc:~$ sudo apt-get install acpi
  3.  

About the Author