Estamos que lo tiramos de hocique ultimamente. Esto es interesantón. Y es que manejar el
HTPC con el teclado inalambrico, aunque se hace bien pero no es del todo cómodo. Así que tocaba buscar un mando a distancia. Por lo que veo hay muchos modelos destinados al mundo este de los HTPC. Es más, teniendo un receptor de infrarrojos nos serviría cualquier mando universal porque los botones se pueden mapear a posteriori. Todo es gracias al proyecto
lirc que se encarga de detectarlos. Antes de meterse en más complicaciones convendría ver desde su propia página si el que vamos a comprar es uno de los
modelos soportados.
Pero como siempre hay que ser un poco tocapelotas, yo he optado por otra solución. Y es que los infrarrojos nunca me han gustado. Así que buscando una opción bluetooth no pude encontrar nada mejor que el
mando de PS3. Y es que aparte de que no es necesario apuntar a ningún punto en concreto, el
adaptador bluetooth tiene mas uso que el adaptador infrarrojo y si por un casual no fuera capaz de hacerlo funcionar, me valdría para la consola. Pues nada, 21 euritos del mando y un adaptador bluetooth de estos baratos que van de fabula.
El adaptador lo reconoce Ubuntu sin problemas. Bueno, ahora viene lo jodido. Aclaro que he seguido unos 4 manuales distintos por trozos que a veces no me funcionaban hasta conseguir que chute. Todo esto es con la ultima versión de
XBMC (esto es lo de menos),
BDremote-ng 0.5 y
Ubuntu 9.10 Karmic Koala. Que luego no hay mas que manuales de mierda que te pones a seguirlos y son para Ubuntu Dapper.
Instalamos unos cuantos paquetes de los repositorios:
sudo apt-get install lirc bluez-compat bluez-hcidump cmake libbluetooth-dev
Bueno ahora pasamos a emparejar el mando con el bluetooth. Esto le da problemas a mucha gente. Con el interfaz gráfico peta al pedirte que metas un pin. Lo hacemos desde consola. Para que el mando se ponga en modo visible y podamos emparejarlos hay que pulsar y mantener unos 5 segundos el botón
Enter y el botón
Start a la vez. Metemos primero el comando y acto seguido pulsamos los botones:
hocicon # hcitool scan
Scanning ...
00:19:C1:5A:F1:3F BD Remote Control
De este modo sacamos la dirección del mando a distancia. A continuación emparejamos el mando con nuestro adaptador:
hidd --connect 00:19:C1:5A:F1:3F
Es posible que esto de error. Si nos pasa hay que volver a pulsar Start+Enter como antes mientras lo hacemos, hasta que no muestre ningún mensaje.
Este vinculo se supone que ya queda puesto pa siempre. De hecho no se que carajo habrá que hacer si quiero utilizarlo para manejar la consola.
Ahora nos vamos a bajar y compilar el
bdremote-ng. Hay parte sacada de su
wiki, pero no me funcionó practicamente nada. Nos creamos una carpeta para meterlo si queremos y nos bajamos la ultima versión que haya de
http://code.google.com/p/bdremote-ng/downloads/list , cuando yo lo hice era la 0.5. La descomprimimos y hacemos lo siguiente.
cd bdremote-ng-0.5/build
./gen.sh
cd linux
sudo make
sudo cp bdremoteng /usr/local/bin
Cosas importantes de esto. A mi me petaba el compilador CMake. No estaba usando la 0.5 sino la RC. Al cambiar de versión todo chutó bien. Lo importante es el ejecutable
bdremoteng que nos crea y que hemos copiado a /usr/local/bin
Siguiente paso es poner
sudo gedit /etc/rc.local
para que nos haga unas movidas al arrancar el equipo. Pegamos dentro del archivo (CAMBIA LA MAC POR LA TUYA DE ANTES), antes del exit 0:
/etc/init.d/bluetooth stop
sleep 1
/usr/local/bin/bdremoteng -a 00:1E:3D:1A:E0:21 -p 8888 -t 20 &
sleep 1
# only required on Ubuntu 9.10, no /var/run/lirc directory on reboot
mkdir /var/run/lirc
/usr/sbin/lircd -H null --connect 127.0.0.1:8888
sleep 1
/etc/init.d/bluetooth start
# only required on Ubuntu 9.10, no /dev/lircd device so XBMC could not connect
ln -s /var/run/lirc/lircd /dev/lircd
Reiniciamos el equipo. Para comprobar que vamos bien, después del reinicio ponemos en consola
irw /dev/lircd
. Si todo está correcto, podemos pulsar botones del mando a distancia (tarda unos segundos en recibir el primero) y veremos en pantalla que los está detectando.
A mi esto me dio unos cuantos problemas, tuve que desinstalar lirc por completo y volverlo a instalar pero luego funcionó.
Se puede decir que ya está todo lo dificil hecho, el ordenador recibe señal del mando sin tocar nada después de encenderlo. Ahora solo nos queda meter la configuración apropiada al XBMC para que interprete bien los botones. Para ello vamos a nuestro home, a la carpeta oculta
.xbmc/userdata
y creamos el archivo Lircmap.xml:
sudo gedit Lircmap.xml
No tengo ni puta idea de por que poner aquí este archivo, ni por que ese nombre ni la L en mayúscula. Dentro del archivo pegamos lo siguiente:
<lircmap>
<remote device="SonyBDRemote">
<obc101>1</obc101>
<obc102>2</obc102>
<obc103>3</obc103>
<obc104>4</obc104>
<obc105>5</obc105>
<obc106>6</obc106>
<obc107>7</obc107>
<obc108>8</obc108>
<obc109>9</obc109>
<obc110>0</obc110>
<obc111>enter</obc111>
<obc112>up</obc112>
<obc113>right</obc113>
<obc114>down</obc114>
<obc115>left</obc115>
<obc116>circle</obc116>
<obc117>stop</obc117>
<obc118>pause</obc118>
<obc119>ps</obc119>
<obc120>prev</obc120>
<obc121>next</obc121>
<obc122>play</obc122>
<obc123>scanrev</obc123>
<obc124>scanfwd</obc124>
<obc125>cross</obc125>
<obc126>eject</obc126>
<obc127>select</obc127>
<obc128>l3</obc128>
<obc129>r3</obc129>
<obc130>start</obc130>
<obc131>l2</obc131>
<obc132>r2</obc132>
<obc133>l1</obc133>
<obc134>r1</obc134>
<obc135>triangle</obc135>
<obc136>topmenu</obc136>
<obc137>time</obc137>
<obc138>square</obc138>
<obc139>return</obc139>
<obc140>clear</obc140>
<obc141>popup</obc141>
<obc142>steprev</obc142>
<obc143>stepfwd</obc143>
<obc144>subtitle</obc144>
<obc145>audio</obc145>
<obc146>angle</obc146>
<obc147>display</obc147>
<obc148>blue</obc148>
<obc149>red</obc149>
<obc150>green</obc150>
<obc151>yellow</obc151>
</remote>
</lircmap>
Y también en .xbmc/userdata/keymaps creamos otro archivo:
sudo gedit remote.xml
Lo mismo que antes, no entiendo el motivo, pero dentro pegamos:
<keymap>
<global>
<universalremote>
<obc1>Number1</obc1>
<obc2>Number2</obc2>
<obc3>Number3</obc3>
<obc4>Number4</obc4>
<obc5>Number5</obc5>
<obc6>Number6</obc6>
<obc7>Number7</obc7>
<obc8>Number8</obc8>
<obc9>Number9</obc9>
<obc10>Number0</obc10>
<obc11>Select</obc11>
<obc12>Up</obc12>
<obc13>Right</obc13>
<obc14>Down</obc14>
<obc15>Left</obc15>
<obc16>PreviousMenu</obc16>
<obc17>Stop</obc17>
<obc18>Pause</obc18>
<obc19>XBMC.ActivateWindow(ShutDownMenu)</obc19>
<obc20>SkipPrevious</obc20>
<obc21>SkipNext</obc21>
<obc22>Play</obc22>
<obc23>Rewind</obc23>
<obc24>FastForward</obc24>
<obc25>Info</obc25>
<obc26>XBMC.EjectTray()</obc26>
<obc27>Select</obc27>
<obc28>ShowSubtitles</obc28>
<obc29>NextSubtitle</obc29>
<obc30>Play</obc30>
<obc31>ZoomOut</obc31>
<obc32>ZoomIn</obc32>
<obc33>PageUp</obc33>
<obc34>PageDown</obc34>
<obc35>ContextMenu</obc35>
<obc36>ShowVideoMenu</obc36>
<obc37>ShowTime</obc37>
<obc38>AspectRatio</obc38>
<obc39>ParentDir</obc39>
<obc40>BackSpace</obc40>
<obc41>ContextMenu</obc41>
<obc42>StepBack</obc42>
<obc43>StepForward</obc43>
<obc44>ShowSubtitles</obc44>
<obc45></obc45>
<obc46></obc46>
<obc47>CodecInfo</obc47>
<obc48>ToggleWatched</obc48>
<obc49>ToggleWatched</obc49>
<obc50>ToggleWatched</obc50>
<obc51>ToggleWatched</obc51>
</universalremote>
</global>
<fullscreenvideo>
<universalremote>
<obc11>OSD</obc11>
<obc16>FullScreen</obc16>
<obc39>FullScreen</obc39>
<obc45>XBMC.ActivateWindow(124)</obc45>
<obc46>XBMC.ActivateWindow(123)</obc46>
</universalremote>
</fullscreenvideo>
<visualisation>
<universalremote>
<obc11>OSD</obc11>
<obc39>FullScreen</obc39>
<obc16>FullScreen</obc16>
</universalremote>
</visualisation>
<shutdownmenu>
<universalremote>
<obc19>PreviousMenu</obc19>
</universalremote>
</shutdownmenu>
<home>
<universalremote>
<obc16>FullScreen</obc16>
<obc39>FullScreen</obc39>
</universalremote>
</home>
</keymap>
Como no me quedaba muy claro esto, cree otro archivo identico llamado
Keymap.xml. Me funciona pero no se cual de los 2 archivos es el que se usa.
Y hasta aquí puedo leer. Si ahora abrimos el XBMC podremos manejarlo tranquilamente con el mando a distancia. La primera vez que pulsas un botón tarda un poco en recibirlo, pero luego funciona de perlas. Creo que el mando pasa a modo de espera al cabo de un tiempo y hasta el momento no se lo que sucede en ese caso.
Información sacada de
http://xbmc.org/forum/showthread.php?t=60713 y del wiki que indicaba antes.