WARNING WORK IN PROGRESS

Emit-Tainment Center When Michael was about 4 he couldn’t say entertainment center. It came out as Emit-Tainment and that was in its self was entertaining. So this tutorial is a tribute to the entertainment of children.

Check List
Xbox DVD Remote
FreeVO (tuner card and lirc config)
Youtube (how to search with remote and no keyboard?)
xbmc
hulu desktop app
Games djl, local installs (with djl launch)
launch bar for all above with easy access by remote

Step 1 – Remote

The Xbox DVD Remote & Dongle

Basically, if I couldn’t sit on the couch and do all the things that I need to do, This project was going to be a failure. I needed a remote controller for my computer. I have an old black xbox (running xbmc) that had a bad DVD-ROM, but a good remote. A little googling showed, why yes, this can be used as a PC remote.
Some Good reading on the project
http://forum.xbmc.org/showthread.php?t=54393
http://www.xbox-linux.org/wiki/LIRC
http://forum.xbmc.org/showpost.php?p=257590&postcount=28

The first hurdle is to get it physically connected. The black xbox devices are basically USB devices. So with a little googling and some soldering, one can create some USB adapters. Or ebay sells them pre-made. I bought mine for about 7 bucks shipping included. Just be certain you get the correct male to female ends.

The second hurdle is the hardest; that is the software.

sudo apt-get install gnome-lirc-properties lirc
sudo modprobe lirc_atiusb
sudo services lirc restart
sudo nano /etc/modprobe.d/blacklist.conf

add blacklist xpad

I then had to restart the computer with the remote eye in the USB socket so that the /dev was populated with the lirc devices.

sudo cp -R /etc/lirc /etc/lirc.original
sudo rm /etc/lirc/*.conf
sudo nano /etc/lirc/lircd.conf

paste following

begin remote

name XboxDVDDongle
bits 8

begin codes

SELECT 0x0b
UP 0xa6
DOWN 0xa7
RIGHT 0xa8
LEFT 0xa9
INFO 0xc3

9 0xc6
8 0xc7
7 0xc8
6 0xc9
5 0xca
4 0xcb
3 0xcc
2 0xcd
1 0xce
0 0xcf

DISPLAY 0xd5
BACK 0xd8
SKIP+ 0xdd
SKIP- 0xdf
STOP 0xe0
REVERSE 0xe2
FORWARD 0xe3
TITLE 0xe5
PAUSE 0xe6
PLAY 0xea
MENU 0xf7

end codes

end remote

(Do I need these links?)


sudo nano /etc/lircmd.conf

past in the following

PROTOCOL IntelliMouse
# ACCELERATOR start max multiplier
ACCELERATOR 2 30 5
ACTIVATE * MENU
MOVE_N XboxDVDDongle UP
MOVE_S XboxDVDDongle DOWN
MOVE_E XboxDVDDongle RIGHT
MOVE_W XboxDVDDongle LEFT
BUTTON1_CLICK XboxDVDDongle REVERSE
BUTTON2_CLICK XboxDVDDongle FORWARD


sudo nano /etc/lirc/hardware.conf

paste in the following

REMOTE="XBOX DVD PLayback Kit"
REMOTE_MODULES="lirc_dev lirc_atiusb"
REMOTE_DRIVER=""
REMOTE_DEVICE="/dev/lirc1"
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""

#Chosen IR Transmitter
TRANSMITTER="None"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""

#Enable lircd
START_LIRCD="true"

#Enable irexec
START_IREXEC="true"

#Don't start lircmd even if there seems to be a good config file
START_LIRCMD="true"

#Try to load appropriate kernel modules
LOAD_MODULES="true"

# Default configuration files for your hardware if any
LIRCMD_CONF="/etc/lirc/lircmd.conf"

#Forcing noninteractive reconfiguration
#If lirc is to be reconfigured by an external application
#that doesn't have a debconf frontend available, the noninteractive
#frontend can be invoked and set to parse REMOTE and TRANSMITTER
#It will then populate all other variables without any user input
#If you would like to configure lirc via standard methods, be sure
#to leave this set to "false"
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""
REMOTE_SOCKET=""
TRANSMITTER_SOCKET=""

I read some place that the distro supplied lirc program looks for the conf files in the wrong location. Just to cover the bases, I aded these links. The hardware.conf file includes the line REMOTE_LIRCD_CONF=”/etc/lirc/lircd.conf” which should be enough. But just to cover all bases I did a…

sudo ln -s /etc/lirc/lircmd.conf /etc/lircmd.conf
sudo ln -s /etc/lirc/lircd.conf /etc/lircd.conf


sudo update-rc.d -f lirc remove
sudo update-rc.d lirc start 50 S .

Dont forget that period after the S.

ls -l /etc/rcS.d | grep lirc

should so something like

S50lirc -> ../init.d/lirc

The xorg.conf
Here is where you can hose your gui. First make a backup of the xorg.conf file.

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.prelircd

So if something goes wrong you can jump to a virtual terminal (by pressing Alt+F1 and restore the xorg.conf. If this is beyond your skills, I’m sorry, but I warned you.

in “Section ServerLayout”
I ended up adding the following line

InputDevice "Remote"

and possibly the following 2 lines (see below)

Option "AllowEmptyInput" "False"
Option "AutoAddDevices" "False"

Then somewhere near your other InputDevice mouse section, add

Section "InputDevice"
Identifier "Remote"
Driver "mouse"
Option "Device" "/dev/lircm"
Option "Protocol" "IntelliMouse"
Option "SendCoreEvents"
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"
EndSection

Before I added the AllowEmptyInput and AllowAddDevices I as getting errors in my xorg log files.

cat /var/log/Xorg.0.log | grep Remote

displayed

(WW) AllowEmptyInput is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
(WW) Disabling Remote

The fix was to add these 2 lines (also shown above) to Section “ServerLayout” in /etc/X11/xorg.conf

Option "AllowEmptyInput" "False"
Option "AutoAddDevices" "False"

Then

cat /var/log/Xorg.0.log | grep Remote

showed

(**) |-->Input Device "Remote"
(**) Remote: Device: "/dev/lircm"
(**) Remote: Protocol: "IntelliMouse"
(**) Remote: always reports core events
(==) Remote: Emulate3Buttons, Emulate3Timeout: 50
(**) Remote: ZAxisMapping: buttons 4 and 5
(**) Remote: Buttons: 9
(**) Remote: Sensitivity: 1
(**) Remote: BaudRate: 1200
(II) XINPUT: Adding extended input device "Remote" (type: MOUSE)
(**) Remote: (accel) keeping acceleration scheme 1
(**) Remote: (accel) filter chain progression: 2.00
(**) Remote: (accel) filter stage 0: 20.00 ms
(**) Remote: (accel) set acceleration profile 0

Which looked a lot more promising!

restart the computer and…