[LINUX] Sony PlayStation 3 Blu-ray Disc Remote (PS3 BD) + LIRC + XBMC = SUCCESS

  Thread Rating:
  • 6 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
atleberg Offline
Junior Member
Posts: 4
Joined: Sep 2008
Reputation: 0
Thumbs Up    Post: #21
If you like me have problems with the lirc daemon not getting exclusive access (under buntu 8.10 in my case) edit lirc.fdi under /usr/share/hal/fdi/preprobe/20thirdparty.

To be on the safe side I kept what was there and just added a new device at the beginning.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
  <device>
     <match key="info.product" contains_ncase="PS3 Remote Controller">
        <merge key="info.ignore" type="bool">true</merge>
     </match>
  </device>
  <device>
     <match key="info.product" contains_ncase="IR-Receiver">
        <merge key="info.ignore" type="bool">true</merge>
     </match>
  </device>
</deviceinfo>

After editing the file you need to reboot to have it take effect.
find quote
mln_ Offline
Junior Member
Posts: 6
Joined: Aug 2008
Reputation: 0
Post: #22
I've followed the instructions in the first post but the command "Connect Input Service" fails. Therefore "PS3 Remote Controller" isn't listed when i run "cat /proc/bus/input/devices". Any ideas?
find quote
Exposure Offline
Junior Member
Posts: 11
Joined: Aug 2009
Reputation: 0
Post: #23
I can't get it to work Sad

The remote seems to be connected and everything appears fine, the /dev/input/eventX device is created. But there is no irw output and irrecord fails (gap not found). I changed HAL config to ignore the BD remote to no avail. Do we even need LIRC? Maybe it's easier to register the remote with Xorg as a evdev keyboard (or am I misunderstanding something?).

Tonight I'll borrow a different USB bluetooth stick, as I've seen posts about some sticks not working. Any help is appreciated!
find quote
nepoc Offline
Junior Member
Posts: 1
Joined: Aug 2009
Reputation: 0
Post: #24
Hey Guys, Nerd

Thanks to all of this I've been able to get nearly a perfect setup for my Mythtv box. I ended up installing Ubuntu 9.10 as it made the bluetooth setup a lot easier.

Below is a very simple script I made so that when you first boot the machine you run this in a root terminal (I'm sure you could do it any other number of ways too.). Before I get ahead of myself let me just say at what state you should be at before using it.

After your remote is paired and is functioning just how you like it. When you remove the battery it will remote it from /proc/bus/input/devices, then you put the battery in it returns with the same event number.

Now all this script does is check for it being present in that devices list and perform an action and wait for it to go away and perform another action.

Edit: What I should have said is that you could easily adapt this for xbmc as well. Replacing the mythfrontend with the command to run xbmc.
Also I've updated the script to be smarter. It automatically updates the hardware.conf for lirc with the lastest event handler given to the remote. (Assuming it's the last thing to reconnect)

Out of my own preference this is what happens:
Starting with a remote with the battery out:
1. Detect remote is connected
2. Update hardware.conf with new event handler
3. restart lirc to start using the remote
4. start mythfrontend --service
5. forcefully turn on the display (LCD Monitor)
6. Start detecting if remote has been disconnected
7. Dectect the remote is disconnected
8. Stop lirc
9. kill mythfrontend.real
10. forcefully turn off the display
11. start detecting if the remote is connected


Code:
#!/bin/bash

# get first discovery

tail /proc/bus/input/devices | grep -i ps3 > /dev/null
discovery=$?

# if the discovery = 1 the remote is not attached
# if the discovery = 0 the remote is attached

remote_discovery()
{
        if [ "$discovery" -eq 1 ]
        then
                while [ "$discovery" -eq 1 ]
                        do tail /proc/bus/input/devices | grep -i ps3 > /dev/null
                        discovery=$?
                        xset dpms force off
                        sleep 1
                done
                enabled=1
                take_action
        else if [ "$discovery" -eq 0 ]
        then
                while [ "$discovery" -eq 0 ]
                        do tail /proc/bus/input/devices | grep -i ps3 > /dev/null
                        discovery=$?
                        sleep 1
                done
                enabled=0
                take_action
        fi
        fi
}

remote_found()
{
echo "Remote Found - Restarting lirc and running mythfrontend"
eventnum=`tail /proc/bus/input/devices | grep Handlers | awk '{print $3}'`
sed -i "s/^REMOTE_DEVICE.*$/REMOTE_DEVICE=\"\/dev\/input\/$eventnum\"/" /etc/lirc/hardware.conf
/etc/init.d/lirc restart
xset dpms force on
sleep 1
(gksudo -u akiko '/usr/bin/mythfrontend --service') &
remote_discovery
}

remote_lost()
{
echo "Remote Lost - Stopping lirc"
/etc/init.d/lirc stop
killall -9 mythfrontend.real
xset dpms force off
remote_discovery
}
take_action()
{
        case $enabled in
                1       ) remote_found;;
                0       ) remote_lost;;
        esac
}

remote_discovery

exit 0


To use it just copy the above into a file called something like ps3_remote_finder.sh
Run: chmod +x ps3_remote_finder.sh
Then in a root terminal: /<path to the file/ps3_remote_finder.sh

You will need to leave the window open, I like to so that I can check if it has been working as expected.

Hopefully someone finds this useful.

Cheers,

Cory
(This post was last modified: 2009-08-14 15:56 by nepoc.)
find quote
Exposure Offline
Junior Member
Posts: 11
Joined: Aug 2009
Reputation: 0
Post: #25
Ok I've gotten it to work using the old bdremoted method. Works pretty good, much easier than getting the latest kernel/dbus/bluez stuff to play nice together.

Sometimes the remote doesn't respond anymore after some time. I think this is related to some sort of idle timeout on the remote, haven't really figured it out yet. I can get it to work by restarting lirc and bdremoted, but then I need to restart XBMC to have it reconnect with Lirc. It would be helpful if there was some other way to have XBMC reinitialise with Lirc.
find quote
pbjr Offline
Junior Member
Posts: 48
Joined: Dec 2008
Reputation: 0
Post: #26
Exposure Wrote:Ok I've gotten it to work using the old bdremoted method. Works pretty good, much easier than getting the latest kernel/dbus/bluez stuff to play nice together.

Sometimes the remote doesn't respond anymore after some time. I think this is related to some sort of idle timeout on the remote, haven't really figured it out yet. I can get it to work by restarting lirc and bdremoted, but then I need to restart XBMC to have it reconnect with Lirc. It would be helpful if there was some other way to have XBMC reinitialise with Lirc.

How long is some time? What distro?

Thanks
find quote
pikohn Offline
Junior Member
Posts: 15
Joined: Jan 2009
Reputation: 0
Post: #27
I have followed the directions of this thread and have my remote registered and trusted through the blueman applet. However, when i run cat /proc/bus/input/devices, i cant find an entry for my remote. Any help would be great

mike
find quote
Asure Offline
Junior Member
Posts: 30
Joined: Aug 2009
Reputation: 0
Post: #28
Exposure Wrote:Ok I've gotten it to work using the old bdremoted method. Works pretty good, much easier than getting the latest kernel/dbus/bluez stuff to play nice together.

Can you tell us, please:

a) Your distro
b) What steps you took to get it to react to bdremoted ?

I have a remote here but it only works with ps3_remote.py (modded to work correctly w/ eventserver and no icons.) .. Other programs/tools combination fail. (Ubuntu 9.04 default install from cd,fully updated, and bluez+bluez-compat from apt)
find quote
erhnam Offline
Team-XBMC Live Developer
Posts: 655
Joined: May 2009
Reputation: 2
Location: The Netherlands
Post: #29
I wrote a howto. It's only in Dutch but most of the commands are there. Here's the link:

http://www.strengholt-online.nl/playstat...-xbmc/221/
find quote
Asure Offline
Junior Member
Posts: 30
Joined: Aug 2009
Reputation: 0
Post: #30
I started out from your blog post (i'm dutch) before i came to the XBMC forums Smile

Can you tell me your distro ? It's not mentioned in the posting.
Also, why use cakemote in the end of the blog post ?

The 'old bdremote' part is to run only bdremote with a paired remote, and lirc to connect to it. For me, paired or not, bdremote will never pick up the remote, and send nothing to lirc.. (ubuntu 9.04) so that's why it's important to know your distro Smile
find quote
Post Reply