bootrom
September 26th, 2008, 12:06 AM
g'day everyone, i've played around with many different media-players including freevo, mythtv, elisa, entertainer, xbmc and boxee is by far my favourite so far and have been recommending it to my friends.
anyway, i have purchased a sunwave smr-140 remote which is basically a ripoff mce remote. it turns out that this remote is basically a keyboard/mouse pretending to be a remote as it maps as "cypress cypress usb keyboard" and requires re-mapping to get lirc to recognize it.
these are the steps i've taken so far to get it working with boxee SVN:2909:2911M under ubuntu 8.0.4.1:
1. first work out where the device is mapped
#cat /proc/bus/input/devices
I: Bus=0003 Vendor=04b4 Product=0100 Version=0110
N: Name="Cypress Cypress USB Keyboard"
P: Phys=usb-0000:00:03.0-2/input0
S: Sysfs=/devices/pci0000:00/0000:00:03.0/usb1/1-2/1-2:1.0/input/input3
U: Uniq=
H: Handlers=kbd mouse1 event2
B: EV=100017
B: KEY=70000 0 2000000 3878 d801c001 e08effdf 1cfffff ffffffff fffffffe
B: REL=103
B: MSC=10
2. record what i assume is the device id..
#udevinfo -a -p /class/input/input3 | grep modalias
ATTR{modalias}=="input:b0003v04B4p0100e0110-e0,1,2,4,14,k71,72,73,77,7D,7E,7F,80,8E,8F,90,9B,9 C,9E,9F,A3,A4,A5,A6,AB,AC,AD,D9,110,111,112,r0,1,8 ,am4,lsfw"
ATTRS{modalias}=="usb:v04B4p0100d0100dc00dsc00dp00ic03isc01ip01"
ATTRS{modalias}=="pci:v00001039d00007001sv00001458sd00005004bc0Csc03 i10"
3. create a new udev rule so that whenever the ir receiver is plugged in it will be mapped as an event device to /dev/input/irremote
#pico /etc/udev/rules.d/10-local.rules
insert the following line with the appropriate changes:
KERNEL=="event*",ATTRS{modalias}=="usb:v04B4p0100d0100dc00dsc00dp00ic03isc01ip01",SYMLINK="input/irremote"
4. create the lirc.conf file
#pico /etc/lirc/lircd.conf
begin remote
name Sunwave
bits 32
begin codes
0 0x1000b
1 0x10002
2 0x10003
3 0x10004
4 0x10005
5 0x10006
6 0x10007
7 0x10008
8 0x10009
9 0x1000a
ChanDown 0x1006d
ChanUp 0x10068
Down 0x1006c
Up 0x10067
Left 0x10069
Right 0x1006a
OK 0x1001c
Volume- 0x10043
Volume+ 0x10044
Mute 0x10042
LEFTMOUSE 0x10110
RIGHTMOUSE 0x10111
CAPSLOCK 0x1003a
Back 0x1000e
end codes
end remote
5. edit lirc's hardware.conf
#pico /etc/lirc/hardware.conf
REMOTE="Custom"
REMOTE_MODULES=""
REMOTE_DRIVER="dev/input"
REMOTE_DEVICE="/dev/input/irremote"
REMOTE_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"
#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD="false"
#Try to load appropriate kernel modules
LOAD_MODULES="true"
# Default configuration files for your hardware if any
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=""
6. edit Lircmap.xml
#pico ~/.boxee/UserData/Lircmap.xml
<remote device="Sunwave">
<pause>Pause</pause>
<stop>Stop</stop>
<forward>Forward</forward>
<reverse>Rewind</reverse>
<left>Left</left>
<right>Right</right>
<up>Up</up>
<down>Down</down>
<select>OK</select>
<pageplus>ChanUp</pageplus>
<pageminus>ChanDown</pageminus>
<back>Back</back>
<menu>PreviousMenu</menu>
<title>Play</title>
<info>More</info>
<skipplus>Skip</skipplus>
<skipminus>Replay</skipminus>
<display>Teletext</display>
<start>Home</start>
<record>Record</record>
<volumeplus>Volume+</volumeplus>
<volumeminus>Volume-</volumeminus>
<mute>Mute</mute>
<power>Power</power>
<myvideo>Videos</myvideo>
<mymusic>Music</mymusic>
<mypictures>Pictures</mypictures>
<mytv>TV</mytv>
<one>One</one>
<two>Two</two>
<three>Three</three>
<four>Four</four>
<five>Five</five>
<six>Six</six>
<seven>Seven</seven>
<eight>Eight</eight>
<nine>Nine</nine>
<zero>Zero</zero>
<mytv>Red</mytv>
<mymusic>Green</mymusic>
<mypictures>Yellow</mypictures>
<myvideo>Blue</myvideo>
</remote>
so far that's where i am at, the remote works great in boxee with the basic keys. i am yet to configure all of them but the main ones seem to be working fine.
the only problem i'm having is trying to workout how to tell boxee about handling key repeats.. for example, if i want to scroll down the list of movies i have to push the the down button on the remote over and over and gets very tiring obviously, instead i want to be able to hold the button down and for boxee to scroll down through the list without the constant tapping. i'm not too sure if there is something i can do with the Lircmap.xml file or it's solely an lirc only issue, just wondering if anyone has experience with this and can help.
i will post the complete sunwave config when i've worked out all the keys so it can possibly be added to boxee's Lircmap.xml in future updates.
thanks for taking the time to read through this long post, i've done my best to explain clearly the steps i've taken and what i want to acheive (and to cohere with the lowercase rule) ;)
cheers, bootrom.
anyway, i have purchased a sunwave smr-140 remote which is basically a ripoff mce remote. it turns out that this remote is basically a keyboard/mouse pretending to be a remote as it maps as "cypress cypress usb keyboard" and requires re-mapping to get lirc to recognize it.
these are the steps i've taken so far to get it working with boxee SVN:2909:2911M under ubuntu 8.0.4.1:
1. first work out where the device is mapped
#cat /proc/bus/input/devices
I: Bus=0003 Vendor=04b4 Product=0100 Version=0110
N: Name="Cypress Cypress USB Keyboard"
P: Phys=usb-0000:00:03.0-2/input0
S: Sysfs=/devices/pci0000:00/0000:00:03.0/usb1/1-2/1-2:1.0/input/input3
U: Uniq=
H: Handlers=kbd mouse1 event2
B: EV=100017
B: KEY=70000 0 2000000 3878 d801c001 e08effdf 1cfffff ffffffff fffffffe
B: REL=103
B: MSC=10
2. record what i assume is the device id..
#udevinfo -a -p /class/input/input3 | grep modalias
ATTR{modalias}=="input:b0003v04B4p0100e0110-e0,1,2,4,14,k71,72,73,77,7D,7E,7F,80,8E,8F,90,9B,9 C,9E,9F,A3,A4,A5,A6,AB,AC,AD,D9,110,111,112,r0,1,8 ,am4,lsfw"
ATTRS{modalias}=="usb:v04B4p0100d0100dc00dsc00dp00ic03isc01ip01"
ATTRS{modalias}=="pci:v00001039d00007001sv00001458sd00005004bc0Csc03 i10"
3. create a new udev rule so that whenever the ir receiver is plugged in it will be mapped as an event device to /dev/input/irremote
#pico /etc/udev/rules.d/10-local.rules
insert the following line with the appropriate changes:
KERNEL=="event*",ATTRS{modalias}=="usb:v04B4p0100d0100dc00dsc00dp00ic03isc01ip01",SYMLINK="input/irremote"
4. create the lirc.conf file
#pico /etc/lirc/lircd.conf
begin remote
name Sunwave
bits 32
begin codes
0 0x1000b
1 0x10002
2 0x10003
3 0x10004
4 0x10005
5 0x10006
6 0x10007
7 0x10008
8 0x10009
9 0x1000a
ChanDown 0x1006d
ChanUp 0x10068
Down 0x1006c
Up 0x10067
Left 0x10069
Right 0x1006a
OK 0x1001c
Volume- 0x10043
Volume+ 0x10044
Mute 0x10042
LEFTMOUSE 0x10110
RIGHTMOUSE 0x10111
CAPSLOCK 0x1003a
Back 0x1000e
end codes
end remote
5. edit lirc's hardware.conf
#pico /etc/lirc/hardware.conf
REMOTE="Custom"
REMOTE_MODULES=""
REMOTE_DRIVER="dev/input"
REMOTE_DEVICE="/dev/input/irremote"
REMOTE_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"
#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD="false"
#Try to load appropriate kernel modules
LOAD_MODULES="true"
# Default configuration files for your hardware if any
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=""
6. edit Lircmap.xml
#pico ~/.boxee/UserData/Lircmap.xml
<remote device="Sunwave">
<pause>Pause</pause>
<stop>Stop</stop>
<forward>Forward</forward>
<reverse>Rewind</reverse>
<left>Left</left>
<right>Right</right>
<up>Up</up>
<down>Down</down>
<select>OK</select>
<pageplus>ChanUp</pageplus>
<pageminus>ChanDown</pageminus>
<back>Back</back>
<menu>PreviousMenu</menu>
<title>Play</title>
<info>More</info>
<skipplus>Skip</skipplus>
<skipminus>Replay</skipminus>
<display>Teletext</display>
<start>Home</start>
<record>Record</record>
<volumeplus>Volume+</volumeplus>
<volumeminus>Volume-</volumeminus>
<mute>Mute</mute>
<power>Power</power>
<myvideo>Videos</myvideo>
<mymusic>Music</mymusic>
<mypictures>Pictures</mypictures>
<mytv>TV</mytv>
<one>One</one>
<two>Two</two>
<three>Three</three>
<four>Four</four>
<five>Five</five>
<six>Six</six>
<seven>Seven</seven>
<eight>Eight</eight>
<nine>Nine</nine>
<zero>Zero</zero>
<mytv>Red</mytv>
<mymusic>Green</mymusic>
<mypictures>Yellow</mypictures>
<myvideo>Blue</myvideo>
</remote>
so far that's where i am at, the remote works great in boxee with the basic keys. i am yet to configure all of them but the main ones seem to be working fine.
the only problem i'm having is trying to workout how to tell boxee about handling key repeats.. for example, if i want to scroll down the list of movies i have to push the the down button on the remote over and over and gets very tiring obviously, instead i want to be able to hold the button down and for boxee to scroll down through the list without the constant tapping. i'm not too sure if there is something i can do with the Lircmap.xml file or it's solely an lirc only issue, just wondering if anyone has experience with this and can help.
i will post the complete sunwave config when i've worked out all the keys so it can possibly be added to boxee's Lircmap.xml in future updates.
thanks for taking the time to read through this long post, i've done my best to explain clearly the steps i've taken and what i want to acheive (and to cohere with the lowercase rule) ;)
cheers, bootrom.