PS3 BD Remote Controller under raspbmc (or XBMC)
Here are some notes about how to use the PS3 BD Remote Controller with raspbmc (raspbmc is an XBMC distribution optimized for the Raspberry Pi).
This is the software setup used in June 2014:
- Debian Wheezy (actually raspbian)
- linux 3.12
- Bluez 4.99
I use one of those tiny USB Bluetooth adapters, a Mediacom M-UDBT15M.
-
Install Bluez:
$ sudo apt-get update $ sudo apt-get install bluez python-gobject-2
-
Associate the PS3 BD Remote Controller (only needed once):
$ hcitool scan
then keep pressed Enter+Start on the remote for at least 7 seconds, until the BT device shows up: 00:06:F5:XX:XX:XX BD Remote Control
Then execute these commands immediately:
$ bluez-test-device create 00:06:F5:XX:XX:XX $ bluez-test-device trusted 00:06:F5:XX:XX:XX yes $ bluez-test-input connect 00:06:F5:XX:XX:XX
Now the controller shows up as an input event device (
/dev/input/ps3
linked to something like/dev/input/event0
). The keymap can be seen by installing and runningevtest
. Configure lirc. This is needed because XBMC input handling is kind of weird (maybe for historical reasons), it tries too hard to differentiate between keyboards and remotes instead of just using the linux evdev API in a generic way.
Put this in
/etc/lirc/lircd.conf
:include "/usr/share/lirc/remotes/devinput/lircd.conf.devinput"
And this in
/etc/lirc/hardware.conf
# /etc/lirc/hardware.conf # # Arguments which will be used when launching lircd LIRCD_ARGS="" #Don't start lircmd even if there seems to be a good config file #START_LIRCMD=false #Don't start irexec, even if a good config file seems to exist. #START_IREXEC=false #Try to load appropriate kernel modules LOAD_MODULES=true # Run "lircd --driver=help" for a list of supported drivers. DRIVER="devinput" # usually /dev/lirc0 is the correct setting for systems using udev. DEVICE="/dev/input/ps3" MODULES="" # Default configuration files for your hardware if any LIRCD_CONF="" LIRCMD_CONF=""
Reboot and that's it; the default mappings in /opt/xbmc-bcm/xbmc-bin/share/xbmc/system/Lircmap.xml
and /opt/xbmc-bcm/xbmc-bin/share/xbmc/system/keymaps/remote.xml
are already good enough.
Remarks
Raspbmc puts its custom built version of XBMC under /opt
, with custom scripts to manage updates and other tasks, why not just create Debian packages of the latest XBMC (with patches for Raspberry Pi) and set up a dedicated apt repository?
XBMC could modernize its input handling making a better use of the linux evdev API: with modern kernels more remote controls show up as input event devices, and lirc should not be needed to handle them.
Comments
Hi, Great post ! Short and
Hi,
Great post ! Short and stratight !
Thank you.
Hi, I used a CSR8510 chipset
Hi,
I used a CSR8510 chipset USB bluetooth adaptor. I needed to modify the boot mode of the device, but this was a 5 minute job after some googling.
I then followed these instructions but had an older version of Raspbian. For me, to make it work, I needed to run the upgrade command after the update.
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install bluez python-gobject-2
After this, everything worked perfectly, thank you.
Andy
Post new comment