Mediacenter, Ubuntu e XBMC

Ho scelto una Ubuntu 9.10 per il mio mediacenter, un compromesso tra stabilità e novità dei pacchetti installati.
Ho eliminato subito gran parte del software non necessario (per esempio Openoffice e gran parte dei componenti accessori di Gnome).

Per velocizzare il più possibile la fase di boot ho eliminato anche GDM, quindi ho modificato gli script per le console di Upstart e .bash_profile
per avere un login automatico dell’utente xbmc, che si occuperà poi di lanciare Xorg e XBMC.

/etc/init/tty1.conf:


# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
#exec /sbin/getty -8 38400 tty1
exec /sbin/mingetty --autologin=xbmc tty1

/home/xbmc/.bash_profile:


#!/bin/bash
if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
    startx
fi

/home/xbmc/.xinitrc:


#!/bin/bash

xset -dpms s off
xsetroot -solid black

dbus-launch --exit-with-session xbmc --standalone

Naturalmente ho modificato usplash per dare al sistema un tocco ancora più “professionale”:

svn checkout http://usplash-theme-xbmc.googlecode.com/svn/trunk/ usplash-theme-xbmc-read-only

A questo punto ho prelevato e compilato i sorgenti di XBMC:

svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk

Xbmc screenshot

Per ottenere l’accelerazione H264 per i video HD ho dovuto scaricare i driver proprietari NVIDIA per la GeForce 9400 integrata sulla motherboard:

Driver Linux 32bit 256.35

Ho configurato il display LCD del case Antec editando il file /etc/LCDd.conf e impostando come driver=imonlcd, come si può capire da questo esempio:

LCDd.conf.tar.gz.

Ho fatto funzionare, non senza difficoltà, il telecomando Veris RM200 in dotazione, ecco un esempio dei files di configurazione che dovranno andare in /etc/lirc:

lirc.tar.gz

Quindi va preparato il mapping tra lirc e XBMC, di seguito un esempio dei due files necessari.

~/.xbmc/userdata/Lircmap.xml:



    
	KEY_LEFT
	KEY_RIGHT
	KEY_UP
	KEY_DOWN
	KEY_ENTER
	KEY_BACKSPACE
	KEY_PAUSE
	KEY_STOP
	KEY_NEXT
	KEY_PREVIOUS
	KEY_PLAY
	KEY_POWER
	KEY_MUTE
	KEY_VOLUMEUP
	KEY_VOLUMEDOWN
	KEY_DVD
	KEY_VIDEO
	KEY_AUDIO
	KEY_PHOTO
	Go
	KEY_REWIND
	KEY_FASTFORWARD
	Star
	KEY_CHANNELUP
	KEY_CHANNELDOWN
	KEY_EJECTCD
	AppLauncher
	KEY_BACKSPACE
	KEY_ESC
    

~/.xbmc/userdata/keymaps/Keymap.xml:



    
	
	    Left
	    Right
	    Up
	    Down
	    Select
	    PreviousMenu
	    Pause
	    Stop
	    SkipNext
	    SkipPrevious
	    Play
	    XBMC.ShutDown()
	    Mute
	    VolumeUp
	    VolumeDown
	    PlayDVD
	    XBMC.ActivateWindow(MyVideos)
	    XBMC.ActivateWindow(MyMusic)
	    XBMC.ActivateWindow(MyPictures)
	    XBMC.ActivateWindow(Home) 
	    AnalogSeekBack
	    AnalogSeekForward 
	    Rotate
	    ZoomIn 
	    ZoomOut
	    XBMC.EjectTray()
	    ContextMenu
	    ParentDir
	    Close