Jump to content
  • Announcements

    • spinynorman

      Mandriva Official Documentation

      Official documentation for extant versions of Mandriva can be found at doc.mandriva.com.   Documentation for the latest release may take some time to appear there. You can install all the manuals from the main repository if you have Mandriva installed - files are prefixed mandriva-doc.
    • paul

      Forum software upgrade   10/29/17

      So you may have noticed the forum software has upgraded !!!
      A few things that have changed. We no longer have community blogs (was never really used) We no longer have a portal page.
      We can discuss this, and decide whether it is needed (It costs money) See this thread: Here
Sign in to follow this  
David Batson

Get Cyberlink Remote working w/ Mandriva & Fedora

Recommended Posts

I have spent some hours working to get my Cyberlink Remote Control functional in Mandriva 2009.1. I have Googled half the internet in the process. I now have a measure of success with VLC. Still a couple of issues and unanswered questions, but I hope to get them sorted. I decided to document my progress to date before I forgot what I did.

 

Here is what my remote looks like: http://www.altechco.com/images/cyber.jpg

 

In the beginning, I was trying to install a tarball someone wrote at http://linux.thaj.net63.net/cyberlinkusb/ [cyberlinkusb-20081207.tar.bz2] to get this Cyberlink Remote to work. After a couple of hiccups I got the tarball installed successfully only to discover later it was superfluous since the driver has been incorporated into the kernel. http://www.xbmc.org/forum/showpost.php?p=302112&postcount=28

 

Regarding this remote control: some buttons are seen as regular keypresses (such as the Number buttons and Enter). Other buttons are special (such as Play and FastForward), and these are the problem ones.

 

I am sure there are a couple of superfluous files and steps that got entered here. Eventually I should be able ferret them out.

-------------------

 

First, install LIRC. Here is a list of my installed LIRC related rpms.

python-lirc-0.0.5-2mdv2009.1
vlc-plugin-lirc-1.0.1-1mdv2009.1
liblirc0-0.8.5-0.20090320.1mdv2009.1
lirc-remotes-0.8.3-0.20080704.3mdv2009.0
pulseaudio-module-lirc-0.9.15-2.0.6mdv2009.1
lirc-kernel-desktop586-latest-0.8.5-1.20090817.0.20090320.1mdv2009.1
xmms-lirc-1.4-7mdv2009.0
lirc-0.8.5-0.20090320.1mdv2009.1
lirc-kernel-2.6.29.6-desktop586-2mnb-0.8.5-0.20090320.1mdv2009.1
dkms-minimal-2.0.19-15mdv2009.1
setserial-2.17-14mdv2009.1
kernel-desktop586-2.6.29.6-2mnb-1-1mnb2
x11-proto-devel-7.4-16mdv2009.1

 

I created the file /etc/udev/rules.d/10-lirc.rules with the following content.

KERNEL=="lirc[0-9]*",	NAME="lirc/%n", GROUP=="disk", MODE=="0666"
KERNEL=="lirc0", SYMLINK=="lirc"

 

Next, for a Cyberlink Remote Control enter the following content in: /etc/lircd.conf

I also entered it in the following file because it was there: /etc/lirc/lircd.conf

begin remote
 name  CYBERLINK
 bits          32
 eps           30
 aeps          100
 one           0     0
 zero          0     0
 gap           135995
 toggle_bit_mask 0x0
     begin codes
         Back                  0x8001009E
         Pause                 0x80010077
         VolumeDown            0x80010072
         VolumeUp              0x80010073
         Record                0x800100a7
         Guide                 0x80010082
         Mute                  0x80010071
         ChannelUp             0x80010192
         ChannelDown           0x80010193
         Play                  0x800100CF
         SkipFoward            0x800100A3
         SkipBack              0x800100A5
         Stop                  0x800100A6
         Menu                  0x8001008B
         Fwdwind               0x800100D0
         Rewind                0x800100A8
     end codes
end remote

For a different brand of remote, you may be able to find the appropriate information to copy to these files from a subdirectory of /usr/share/lirc-remotes

Or else look here: http://lirc.sourceforge.net/remotes/'>http://lirc.sourceforge.net/remotes/

 

To find the appropriate scan codes, enter the following in terminal and look at what is displayed with each keypress.

Note that your event# could be different.

# hexdump /dev/input/event8

Here is an example. For keypress Play, I get the following output...

[root@localhost dkb]# hexdump /dev/input/event8

0000000 7d1e 4ada 5887 000e 0004 0004 00b0 000c

0000010 7d1e 4ada 58a1 000e 0001 00cf 0001 0000

0000020 7d1e 4ada 58a8 000e 0001 00cf 0000 0000

0000030 7d1e 4ada 58b1 000e 0000 0000 0000 0000

I highlighted the relevant section in red. This button press would go in the files below (i.e.:Play 0x800100CF)

/etc/lircd.conf

/etc/lirc/lircd.conf

 

If you have trouble getting the hexdump, try the following in terminal as root...

# /etc/init.d/lircd stop

# lircd -d /dev/input/event8 {lircd -d device [read from given device]}

Now press the special keys such as Volume Up, Volume Down, Mute, etc.

When done pressing each of the special keys, then enter the following in terminal as root...

# /etc/init.d/lircd start

Now the hexdump will hopefully work. Fixed it for me.

I now have an on screen display of the volume level. The volume control and mute buttons of the remote seems to work with most apps.

 

 

You can run $ irw in terminal to see your keypresses after they are configured.

 

Next edit /etc/sysconf/lircd as appropriate.

The important lines for the Cyberlink Remote seem to be...

DRIVER="devinput"
DEVICE=/dev/input/event8

Reference: http://cjo20.net/remote.htm'>http://cjo20.net/remote.htm

 

To find the appropriate /dev/input/event#, enter the following in terminal:

grep -l 'TopSeed' /sys/class/input/input*/name | tail -n1

Take the number from the output after input: /sys/class/input/input8/name

In my case it was 8, so the DEVICE=/dev/input/event8

Note that your event# could be different.

 

Alternatively to get the event# you can try $ cat /proc/bus/input/devices in a terminal.

TopSeed Tech Corp. USB IR Combo Device is my Cyberlink Remote Control

Notice the event8 entry below. I don't know if this entry was after I created /etc/sysconf/lircd or not.

Here is the relevant part my output from $ cat /proc/bus/input/devices

I: Bus=0003 Vendor=0766 Product=0204 Version=0100
N: Name="TopSeed Tech Corp. USB IR Combo Device "
P: Phys=usb-0000:00:1d.1-1/input1
S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb2/2-1/2-1:1.1/input/input14
U: Uniq=
H: Handlers=kbd mouse2 event8
B: EV=17
B: KEY=fc112 20d0c00 0 0 70000 0 18000 21f8 d001d804 9e0040 0 0 0
B: REL=103
B: MSC=10

 

Here is my /etc/sysconf/lircd file. This is the critical file to get irw and lirc to work.

When this file is set up properly, you will get output from all of the keypresses on your remote.

# Customized settings for lirc daemon

# The hardware driver to use, run: # lircd --driver=? for a list

DRIVER="devinput"

# Hardware driver module to load [found Module name in MCC > Hardware > Browse and configure hardware > Keyboard > USB IR Combo Device]
#HWMOD=usbhid

# The device node that communicates with the IR device.
# if you are using lirc_serial, set DEVICE to /dev/ttyS[0-9]
# where 0-9 is the serial port your IR receiver is plugged

# with devfs enabled
DEVICE=/dev/input/event8
#DEVICE=/dev/lirc/serial

# without devfs 
#DEVICE=/dev/lirc

# Serial port for the receiver (for serial driver)
# COM1 (/dev/ttyS0)
#COM_PORT=/dev/ttyS0
#DRIVER_OPTS="irq=4 io=0x3f8"

# COM2 (/dev/ttyS1)
#COM_PORT=/dev/ttyS1
#DRIVER_OPTS="irq=3 io=0x2f8"

# COM3 (/dev/ttyS2)
#COM_PORT=/dev/ttyS2
#DRIVER_OPTS="irq=4 io=0x3e8

# COM4 (/dev/ttyS3)
#COM_PORT=/dev/ttyS3
#DRIVER_OPTS="irq=3 io=0x2e8"

You may need to reboot for changes to take effect.

Alternatively you can try # /etc/init.d/lircd restart in terminal.

 

Finally, I had to create the files /etc/lircrc and /home/~/.lircrc with the following content (relevant for VLC).

There is a file: /usr/share/doc/vlc/lirc/example.lircrc that is helpful.

Enter vlc --help in a terminal window to find the appropriate hotkeys for vlc.

begin
   remote = CYBERLINK
   prog = vlc
   button = Mute
   config = key-vol-mute
end

begin
   remote = CYBERLINK
   prog = vlc
   button = SkipBack
   config = key-prev
end

begin 
   remote = CYBERLINK
   prog = vlc
   button = SkipForward
   config = key-next
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Pause
   config = key-play-pause
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Menu
   config = key-nav-activate
end

begin
   prog = vlc
   button = Back
   config = Escape
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Rewind
   config = key-slower
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Fwdwind
   config = key-faster
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Play
   config = key-play
end

begin
   remote = CYBERLINK
   prog = vlc
   button = VolumeDown
   config = key-vol-down
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Stop
   config = key-stop
end

begin
   remote = CYBERLINK
   prog = vlc
   button = VolumeUp
   config = key-vol-up
end

begin
 prog = vlc
 button = ChannelUp
 config = key-toggle-fullscreen
end

 

Currently I have the following buttons working in VLC

Volume Up

Volume Down

Mute

Play

Pause

Speed Up

Slow Down

Stop

Previous

Full Screen (toggle)

 

This button doesn't work in VLC for some reason that I haven't figured out yet.

Next

 

Useful links:

http://www.g-loaded.eu/2006/01/10/how-to-configure-and-use-lirc/

https://mandrivausers.org/index.php?/topic/28910-howto-mandriva-linux-2006-lirc/

http://cjo20.net/remote.htm

http://www.minimyth.org/document-howto-lirc_devinput.html

http://www.xbmc.org/forum/showthread.php?t=39433

http://wiki.videolan.org/How_to_Use_Lirc

http://lirc.sourceforge.net/remotes/

http://blog.mricon.com/2008/04/setting-up-apple-remote-control-with-f9.html

http://pulseaudio.org/wiki/Modules#module-lirc

 

EDIT: I forgot. To get VLC to use the remote, start VLC with the following command: vlc --extraintf lirc

EDIT2: I am making edits to this post as I discover new things.

Edited by David Batson

Share this post


Link to post
Share on other sites

I have the Cyberlink Remote Control working in Fedora 12.

 

I have the following lirc related rpm's installed.

totem-lirc-2.28.4-1.fc12.i686
python-lirc-0.0.5-10.i686
pulseaudio-module-lirc-0.9.21-1.fc12.i686
xmms-lirc-1.4-14.i686
lirc-remotes-0.8.6-1.fc12.i686
lirc-libs-0.8.6-1.fc12.i686
lirc-0.8.6-1.fc12.i686
lirc-doc-0.8.6-1.fc12.i686
rhythmbox-lirc-0.12.6-2.fc12.i686

 

I created the file /etc/udev/rules.d/lirc.rules with the following content.

KERNEL=="lirc[0-9]*",	NAME="lirc/%n"

 

I added the following content to the file /etc/lirc/lircd.conf

begin remote
 name  CYBERLINK
 bits          32
 eps           30
 aeps          100
 one           0     0
 zero          0     0
 gap           135995
 toggle_bit_mask 0x0
     begin codes
         KEY_EXIT                  0x80010066
         KEY_DVD                   0x8001018E
         KEY_FULLSCREEN            0x80010191
         KEY_RECORD                0x800100A7
         KEY_SHUFFLE               0x80010188
         KEY_MEDIA_REPEAT          0x8001016B
         KEY_EJECTCD               0x80010173
         KEY_BACK                  0x8001009E
         KEY_FULLSCREEN            0x80010082
         KEY_MENU                  0x8001008B
         KEY_VOLUMEUP              0x80010073
         KEY_VOLUMEDOWN            0x80010072
         KEY_MUTE                  0x80010071
         KEY_ZOOMIN                0x80010192
         KEY_ZOOMOUT               0x80010193
         KEY_PLAY                  0x800100CF
         KEY_REWIND                0x800100A8
         KEY_PAUSE                 0x80010077
         KEY_FASTFORWARD           0x800100D0
         KEY_PREVIOUS              0x800100A5
         KEY_STOP                  0x800100A6
         KEY_NEXT                  0x800100A3
     end codes
end remote

 

Here is the content of /etc/sysconfig/lirc (it is different than the Mandriva version).

# Note: in addition to these parameters, you need to have working    -*- sh -*-
# configuration file for lircd (and lircmd if enabled).

# Options to lircd(8).  Typically, this will be empty, as which driver to use
# should be specified using the LIRC_DRIVER variable below.
LIRCD_OPTIONS=""

# The infrared receiver (and/or transmitter) driver to be used by lircd(8),
# similar to passing "-H driver" to lircd(8).
# Run "/usr/sbin/lircd -H help" to get a listing of supported drivers.
LIRC_DRIVER="devinput"

# Which lirc device will be used by lircd(8).
# This is the same as passing "-d device" to lircd.
# An empty value will use the default /dev/lirc0 device.
LIRC_DEVICE="/dev/input/event8"

# If "yes", the init script will try to start lircmd(8) too.
ENABLE_LIRCMD="no"

# Options to lircmd(8).
LIRCMD_OPTIONS=""

 

For the files /etc/lircrc and /home/~/.lircrc I have the following content for Totem Movie Player, Rhythmbox Music Player, and VLC Media Player.

See /usr/lib/totem/plugins/lirc/totem_lirc_default for lirc settings to use with Totem Movie Player.

See /usr/lib/rhythmbox/plugins/rblirc/rhythmbox_lirc_default for lirc settings to use with Rhythmbox Music Player.

Run vlc --help in terminal as regular user to see "Hot keys" that can be used with lirc.

# edit the "button =" part for each entry according to your remote, and stick
# this stuff in ~/.lircrc

begin
prog = Totem
remote = CYBERLINK
button = KEY_PLAY
repeat = 1
config = play
end

begin
prog = Totem
remote = CYBERLINK
button = KEY_PAUSE
repeat = 0
config = pause
end

begin
prog = Totem
remote = CYBERLINK
button = KEY_STOP
repeat = 0
config = stop
end

# For seek_forward and seek_backward you can
# append ":20" to seek 20 seconds in the
# aforementioned direction
#
# Eg. seek_forward:60 -> seek forward 60 seconds
# seek_backward:5 -> seek backwards 5 seconds
begin
prog = Totem
remote = CYBERLINK
button = KEY_FASTFORWARD
repeat = 1
config = seek_forward
end

#FIXME (duplicate function)
#begin
# 	prog = Totem
# 	remote = CYBERLINK
# 	button = KEY_FORWARD
# 	repeat = 1
# 	config = seek_forward
#end

begin
prog = Totem
remote = CYBERLINK
button = KEY_REWIND
repeat = 1
config = seek_backward
end

# Info/EPG Key
begin
prog = Totem
remote = CYBERLINK
button = KEY_FULLSCREEN
repeat = 1
config = fullscreen
end

begin
prog = Totem
remote = CYBERLINK
button = KEY_VOLUMEUP
repeat = 1
config = volume_up
end


begin
prog = Totem
remote = CYBERLINK
button = KEY_VOLUMEDOWN
repeat = 1
config = volume_down
end


begin
prog = Totem
remote = CYBERLINK
button = KEY_NEXT
repeat = 1
config = next
end

begin
prog = Totem
remote = CYBERLINK
button = KEY_PREVIOUS
repeat = 1
config = previous
end

# Top Left *HOME* Key
begin
prog = Totem
remote = CYBERLINK
button = KEY_EXIT
repeat = 1
config = quit
end

#FIXME
#begin
#	prog = Totem
#	remote = CYBERLINK
#	button = UP
#	repeat = 1
#	config = up
#end

#FIXME
#begin
#	prog = Totem
#	remote = CYBERLINK
#	button = DOWN
#	repeat = 1
#	config = down
#end

#FIXME
#begin
#	prog = Totem
#	remote = CYBERLINK
#	button = LEFT
#	repeat = 1
#	config = left
#end

#FIXME
#begin
#	prog = Totem
#	remote = CYBERLINK
#	button = RIGHT
#	repeat = 1
#	config = right
#end

#FIXME
#begin
#	prog = Totem
#	remote = CYBERLINK
#	button = KEY_SELECT
#	repeat = 1
#	config = select
#end

#FIXME
#begin
#	prog = Totem
#	remote = CYBERLINK
#	button = KEY_OK
#	repeat = 1
#	config = select
#end

begin
prog = Totem
remote = CYBERLINK
button = KEY_MENU
repeat = 1
config = menu
end

#FIXME (non-existent key on remote)
#begin
#	prog = Totem
#	remote = CYBERLINK
#	button = KEY_PLAYPAUSE
#	repeat = 1
#	config = play_pause
#end

#FIXME
#begin
#	prog = Totem
#	remote = CYBERLINK
#	button = KEY_SELECT
#	repeat = 1
#	config = select
#end

# Angle Key
begin
prog = Totem
remote = CYBERLINK
button = KEY_EJECTCD
repeat = 1
config = eject
end

# DVD/VCD Key
begin
prog = Totem
remote = CYBERLINK
button = KEY_DVD
repeat = 1
config = play_dvd
end

begin
prog = Totem
remote = CYBERLINK
button = KEY_MUTE
repeat = 1
config = mute
end

# SAP Key
begin
prog = Totem
remote = CYBERLINK
button = KEY_SHUFFLE
repeat = 1
config = setting_shuffle
end

# Last CH Key
begin
prog = Totem
remote = CYBERLINK
button = KEY_MEDIA_REPEAT
repeat = 1
config = setting_repeat
end

# Channel Up Key
begin
prog = Totem
remote = CYBERLINK
button = KEY_ZOOMIN
repeat = 1
config = zoom_up
end

# Channel Down Key
begin
prog = Totem
remote = CYBERLINK
button = KEY_ZOOMOUT
repeat = 1
config = zoom_down
end

# edit the "button =" part for each entry according to your remote, and stick
# this stuff in ~/.lircrc

begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_PLAY
repeat = 1
config = play
end

begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_PAUSE
repeat = 0
config = pause
end

#FIXME (non-existent key on remote)
#begin
#	prog = Rhythmbox
#	remote = CYBERLINK
#	button = KEY_PLAYPAUSE
#	repeat = 1
#	config = playpause
#end

begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_STOP
repeat = 1
config = stop
end

# SAP Key
begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_SHUFFLE
repeat = 1
config = shuffle
end

# Last CH Key
begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_MEDIA_REPEAT
repeat = 1
config = repeat
end

begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_NEXT
repeat = 1
config = next
end

begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_PREVIOUS
repeat = 1
config = previous
end

begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_FASTFORWARD
repeat = 1
config = seek_forward
end

begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_REWIND
repeat = 1
config = seek_backward
end

begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_VOLUMEUP
repeat = 1
config = volume_up
end

begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_VOLUMEDOWN
repeat = 1
config = volume_down
end

begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_MUTE
repeat = 1
config = mute
end

# Top Left HOME Key
begin
prog = Rhythmbox
remote = CYBERLINK
button = KEY_EXIT
repeat = 1
config = quit
end

begin
   remote = CYBERLINK
   prog = vlc
   button = KEY_EXIT
   config = key-quit
end

begin
   remote = CYBERLINK
   prog = vlc
   button = KEY_MUTE
   config = key-vol-mute
end

begin
   remote = CYBERLINK
   prog = vlc
   button = KEY_PREVIOUS
   config = key-jump-medium
end

begin 
   remote = CYBERLINK
   prog = vlc
   button = KEY_NEXT
   config = key-jump+medium
end

begin
   remote = CYBERLINK
   prog = vlc
   button = KEY_PAUSE
   config = key-play-pause
end

begin
   remote = CYBERLINK
   prog = vlc
   button = KEY_REWIND
   config = key-slower
end

begin
   remote = CYBERLINK
   prog = vlc
   button = KEY_FASTFORWARD
   config = key-faster
end

begin
   remote = CYBERLINK
   prog = vlc
   button = KEY_PLAY
   config = key-play
end

begin
   remote = CYBERLINK
   prog = vlc
   button = KEY_VOLUMEDOWN
   config = key-vol-down
end

begin
   remote = CYBERLINK
   prog = vlc
   button = KEY_STOP
   config = key-stop
end

begin
   remote = CYBERLINK
   prog = vlc
   button = KEY_VOLUMEUP
   config = key-vol-up
end

begin
   remote = CYBERLINK
   prog = vlc
   button = KEY_FULLSCREEN
   config = key-toggle-fullscreen
end

 

To restart lirc in Fedora 12 use the following command in terminal as root (which is different than the one for Mandriva).

/etc/init.d/lirc restart

 

When Totem Movie Player is running, the following buttons work.

Play

Pause

Stop

Seek Forward

Seek Backward

Fullscreen (Info EPG key)

Volume Up

Volume Down

Mute

Next

Previous

Quit (Home key)

Menu (DVD Menu key)

Shuffle (SAP key)

Repeat (Last CH key)

Zoom In (Channel Up key)

Zoom Out (Channel Down key)

 

When Rhythmbox Music Player is running, the following buttons work.

Quit (Home key)

Shuffle (SAP key)

Repeat (Last CH key)

Volume Up

Volume Down

Mute

Play

Pause

Stop

Previous

Next

 

When VLC Media Player is running, the following buttons work.

To get VLC to use the remote, start VLC with the following command: vlc --extraintf lirc

Quit (Home key)

Fullscreen (Info EPG key)

Volume Up

Volume Down

Mute

Play

Pause

Stop

Slower

Faster

Step Backwards 1 minute

Step Forwards 1 minute

 

In Totem Movie Player the arrow buttons and OK button perform some actions. Left arrow is seek backwards, right arrow is seek forwards, up arrow is volume up, down arrow is volume down, and OK is select. In Totem Movie Player the arrow keys should work when at the DVD menu to navigate and select the menu choices, but I only get this to work occasionally. I have a bug report filed on this: https://bugzilla.redhat.com/show_bug.cgi?id=550427'>https://bugzilla.redhat.com/show_bug.cgi?id=550427

 

Note that using the Gnome Infrared Remote Control applet (System > Preferences > Infrared Remote Control) will stop the Cyberlink Remote Control from working and overwrite the following files. This is because the Cyberlink Remote is not in it's database. Probably works great if your remote is listed.

/etc/sysconfig/lirc

/etc/lircd.conf.gnome

/etc/lircrc

 

FYI, there is a lirc startup script file at /etc/init.d/lirc

 

For Totem Movie Player to use lirc, in Totem you need to go to Edit > Plugins and activate the ‘Infrared Remote Control’ plugin. Likewise for Rhythmbox music player.

 

If you open Totem Movie Player or Rhythmbox Music Player and lirc is not running, the box to use the lirc plugin (Infrared Remote Control or LIRC) will automatically become unchecked. If irw works in terminal, but lirc is not working in Totem Movie Player or Rhythmbox Music Player, verify that the box for Infrared Remote Control or LIRC is checked for that applications plugins (Edit > Plugins).

 

EDIT: If you have a problem with making selections in DVD menus, update gstreamer-plugins-good to gstreamer-plugins-good-0.10.17-4.fc12

https://bugzilla.redhat.com/show_bug.cgi?id=550427

 

EDIT 2: Added info to enable VLC to use lirc. Changed files /etc/lircrc and /home/~/.lircrc above.

Edited by David Batson

Share this post


Link to post
Share on other sites

Here is what I did to get lirc working in Mandriva 2010.

 

I installed the following lirc rpms (not all are necessary)...

lirc-remotes-0.8.3-0.20080704.4mdv2010.0
liblirc0-0.8.6-2mdv2010.0
pulseaudio-module-lirc-0.9.19-7mdv2010.0
python-lirc-0.0.5-3mdv2010.0
lirc-0.8.6-2mdv2010.0
xmms-lirc-1.4-7mdv2009.0
vlc-plugin-lirc-1.0.2-1mdv2010.0

 

I installed the following vlc rpms (not all are necessary)...

vlc-plugin-flac-1.0.2-1mdv2010.0
vlc-plugin-twolame-1.0.2-1mdv2010.0
vlc-1.0.2-1mdv2010.0
vlc-plugin-ggi-1.0.2-1mdv2010.0
vlc-plugin-xosd-1.0.2-1mdv2010.0
vlc-plugin-ogg-1.0.2-1mdv2010.0
vlc-plugin-dv-1.0.2-1mdv2010.0
mozilla-plugin-vlc-1.0.2-1mdv2010.0
vlc-plugin-pulse-1.0.2-1mdv2010.0
vlc-plugin-mpc-1.0.2-1mdv2010.0
vlc-plugin-schroedinger-1.0.2-1mdv2010.0
vlc-plugin-mod-1.0.2-1mdv2010.0
vlc-plugin-a52-1.0.2-1mdv2010.0
vlc-plugin-theora-1.0.2-1mdv2010.0
vlc-plugin-libnotify-1.0.2-1mdv2010.0
libvlc2-1.0.2-1mdv2010.0
vlc-plugin-opengl-1.0.2-1mdv2010.0
vlc-plugin-fluidsynth-1.0.2-1mdv2010.0
vlc-plugin-lirc-1.0.2-1mdv2010.0
vlc-plugin-dvdnav-1.0.2-1mdv2010.0

 

The file /etc/udev/rules.d/lirc.rules already existed, and did not need to be modified.

KERNEL=="lirc[0-9]*",	NAME="lirc/%n"

 

The relevant part of cat /proc/bus/input/devices from terminal yielded the following output (notice the event9 entry)...

I: Bus=0003 Vendor=0766 Product=0204 Version=0100
N: Name="TopSeed Tech Corp. USB IR Combo Device "
P: Phys=usb-0000:00:1d.1-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb2/2-1/2-1:1.0/input/input8
U: Uniq=
H: Handlers=kbd event8
B: EV=120013
B: KEY=10000 7 ff9f207a c14057ff febeffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=1f

I: Bus=0003 Vendor=0766 Product=0204 Version=0100
N: Name="TopSeed Tech Corp. USB IR Combo Device "
P: Phys=usb-0000:00:1d.1-1/input1
S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb2/2-1/2-1:1.1/input/input9
U: Uniq=
H: Handlers=kbd mouse1 event9
B: EV=17
B: KEY=fc112 20d0c00 0 0 70000 0 18000 21f8 d001d804 9e0040 0 0 0
B: REL=103
B: MSC=10

 

I edited /etc/sysconf/lircd as follows...

# Customized settings for lirc daemon

# The hardware driver to use, run lircd --driver=? for a list

DRIVER="devinput"

# Hardware driver module to load
HWMOD=""

# The device node that communicates with the IR device.
# if you are using lirc_serial, set DEVICE to /dev/ttyS[0-9]
# where 0-9 is the serial port your IR receiver is plugged

# with devfs enabled
DEVICE=/dev/input/event9
#DEVICE=/dev/lirc/serial

# without devfs 
#DEVICE=/dev/lirc

# Serial port for the receiver (for serial driver)
# COM1 (/dev/ttyS0)
#COM_PORT=/dev/ttyS0
#DRIVER_OPTS="irq=4 io=0x3f8"

# COM2 (/dev/ttyS1)
#COM_PORT=/dev/ttyS1
#DRIVER_OPTS="irq=3 io=0x2f8"

# COM3 (/dev/ttyS2)
#COM_PORT=/dev/ttyS2
#DRIVER_OPTS="irq=4 io=0x3e8

# COM4 (/dev/ttyS3)
#COM_PORT=/dev/ttyS3
#DRIVER_OPTS="irq=3 io=0x2e8"

 

I edited the existing file /etc/lirc/lircd as follows...

#
# This is a placeholder for your configuration file.
# See /usr/share/lirc-remotes for some examples.
# You might need to install lirc-remotes package.
#
begin remote
 name  CYBERLINK
 bits          32
 eps           30
 aeps          100
 one           0     0
 zero          0     0
 gap           135995
 toggle_bit_mask 0x0
     begin codes
         Quit                  0x80010066
         Back                  0x8001009E
         Pause                 0x80010077
         VolumeDown            0x80010072
         VolumeUp              0x80010073
         Record                0x800100a7
         Fullscreen            0x80010082
         Mute                  0x80010071
         ChannelUp             0x80010192
         ChannelDown           0x80010193
         Play                  0x800100CF
         SkipForward           0x800100A3
         SkipBack              0x800100A5
         Stop                  0x800100A6
         Menu                  0x8001008B
         Fwdwind               0x800100D0
         Rewind                0x800100A8
     end codes
end remote

Note: I changed to using the InfoEPG button to toggle fullscreen to be consistant with my Fedora install.

 

I used the following content in the file /etc/lircrc as root...

And the same content in the file /home/~/.lircrc as a regular user...

begin
   remote = CYBERLINK
   prog = vlc
   button = Quit
   config = key-quit
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Mute
   config = key-vol-mute
end

begin
   remote = CYBERLINK
   prog = vlc
   button = SkipBack
   config = key-prev
end

begin 
   remote = CYBERLINK
   prog = vlc
   button = SkipForward
   config = key-next
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Pause
   config = key-play-pause
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Rewind
   config = key-slower
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Fwdwind
   config = key-faster
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Play
   config = key-play
end

begin
   remote = CYBERLINK
   prog = vlc
   button = VolumeDown
   config = key-vol-down
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Stop
   config = key-stop
end

begin
   remote = CYBERLINK
   prog = vlc
   button = VolumeUp
   config = key-vol-up
end

begin
   remote = CYBERLINK
   prog = vlc
   button = Fullscreen
   config = key-toggle-fullscreen
end

 

I ran the following command from terminal as root...

/etc/init.d/lircd restart

 

Now test that lirc is working properly by running irw in terminal and checking the output of all the Cyberlink remote keys. If keys such as Channel Up and Channel Down do not produce output, you likely need to change the event# DEVICE=/dev/input/event9 line in /etc/sysconf/lircd. Run /etc/init.d/lircd restart after each change to make sure the changes are registered.

 

You can also run hexdump /dev/input/event9 (or whichever event# is relevant to your system) to test that you are using the correct /dev/input/event#. Each keypress of the remote when hexdump is running should give an output.

 

For vlc to use lirc by default, right-click on the Mandriva Star in the bottom left corner and choose Menu Editor. Navigate to Sound & Video > VLC media player, and edit the Command box to read as follows: vlc --extraintf lirc %U

 

Finally, watch out for *typos*. They got me a couple of times. :wall:

 

EDIT: Added a Quit VLC keypress by adding a Quit key definition in file /etc/lirc/lircd (edited above)

And by adding a quit section (edited above) at the beginning of...

The file /etc/lircrc as root...

And the same content in the file /home/~/.lircrc as a regular user...

Edited by David Batson

Share this post


Link to post
Share on other sites

I made a number of edits to post #2 for getting LIRC working in Fedora 12. LIRC has somewhat more functionality now with Totem Movie Player and Rhythmbox Music Player. The following two files were the source for much of the updated information.

 

See /usr/lib/totem/plugins/lirc/totem_lirc_default for lirc settings to use with Totem Movie Player.

See /usr/lib/rhythmbox/plugins/rblirc/rhythmbox_lirc_default for lirc settings to use with Rhythmbox Music Player.

Share this post


Link to post
Share on other sites

Through searches, trial and error I discovered how to make lirc discover the current event# for the Cyberlink Remote Control. This event# can change if you plug in the USB dongle after boot up or if you change which USB devices are plugged in when you boot.

 

I edited the /etc/sysconf/lirc file (FEDORA) with the following changes.

Namely...

I added the line: EV="/dev/input/event"$( grep -l 'TopSeed' /sys/class/input/input*/name | tail -n1 | cut -c 23 )

I changed the line: LIRCD_OPTIONS="" to LIRCD_OPTIONS="-d $EV"

I commented out the line LIRC_DEVICE=name="/dev/input/event8" with the # as follows: # LIRC_DEVICE=name="/dev/input/event8"

 

Here is the complete file /etc/sysconf/lirc

# Note: in addition to these parameters, you need to have working    -*- sh -*-
# configuration file for lircd (and lircmd if enabled).

EV="/dev/input/event"$( grep -l 'TopSeed' /sys/class/input/input*/name | tail -n1 | cut -c 23 )

# Options to lircd(8).  Typically, this will be empty, as which driver to use
# should be specified using the LIRC_DRIVER variable below.
LIRCD_OPTIONS="-d $EV"

# The infrared receiver (and/or transmitter) driver to be used by lircd(8),
# similar to passing "-H driver" to lircd(8).
# Run "/usr/sbin/lircd -H help" to get a listing of supported drivers.
LIRC_DRIVER="devinput"


# Which lirc device will be used by lircd(8).
# This is the same as passing "-d device" to lircd.
# An empty value will use the default /dev/lirc0 device.
# LIRC_DEVICE=name="/dev/input/event8"


# If "yes", the init script will try to start lircmd(8) too.
ENABLE_LIRCMD="no"

# Options to lircmd(8).
LIRCMD_OPTIONS=""

 

EDIT: Turns out that Mandriva handles this a little differently.

 

I edited the /etc/sysconf/lircd file (MANDRIVA) with the following changes.

Namely...

I commented out the line DEVICE=/dev/input/event9 with the # as follows: #DEVICE=/dev/input/event9

I added the line: DEVICE="/dev/input/event"$( grep -l 'TopSeed' /sys/class/input/input*/name | tail -n1 | cut -c 23 )

 

Here is the complete file /etc/sysconf/lircd

# Customized settings for lirc daemon

# The hardware driver to use, run lircd --driver=? for a list

DRIVER="devinput"

# Hardware driver module to load
HWMOD=""

# The device node that communicates with the IR device.
# if you are using lirc_serial, set DEVICE to /dev/ttyS[0-9]
# where 0-9 is the serial port your IR receiver is plugged

# with devfs enabled
#DEVICE=/dev/input/event9
DEVICE="/dev/input/event"$( grep -l 'TopSeed' /sys/class/input/input*/name | tail -n1 | cut -c 23 )
#DEVICE=/dev/lirc/serial

# without devfs 
#DEVICE=/dev/lirc

# Serial port for the receiver (for serial driver)
# COM1 (/dev/ttyS0)
#COM_PORT=/dev/ttyS0
#DRIVER_OPTS="irq=4 io=0x3f8"

# COM2 (/dev/ttyS1)
#COM_PORT=/dev/ttyS1
#DRIVER_OPTS="irq=3 io=0x2f8"

# COM3 (/dev/ttyS2)
#COM_PORT=/dev/ttyS2
#DRIVER_OPTS="irq=4 io=0x3e8

# COM4 (/dev/ttyS3)
#COM_PORT=/dev/ttyS3
#DRIVER_OPTS="irq=3 io=0x2e8"

 

If plugging in the device after boot up, restart lirc.

Now in terminal as root run /etc/init.d/lirc restart for the device to be properly detected (FEDORA).

Now in terminal as root run /etc/init.d/lircd restart for the device to be properly detected (MANDRIVA)

 

The following two guides are what helped me accomplish this, but I still did have to work some things out on my own.

http://cjo20.net/remote.htm

http://en.gentoo-wiki.com/wiki/LIRC

 

FWIW, I found this file that supposedly has all the possible remote buttons listed.

http://lirc.sourceforge.net/remotes/devinput/lircd.conf.devinput

 

Here is a useful command to see if LIRC sees /dev/input/event# properly: ps -ef | grep -i lirc

[root@localhost ~]# ps -ef | grep -i lirc
root      8705     1  0 18:56 ?        00:00:00 lircd --driver=devinput --device=/dev/input/event9

Edited by David Batson

Share this post


Link to post
Share on other sites

Edited post #2 above to include what is necessary to get VLC media player to work with lirc in Fedora 12.

 

To get VLC to use the remote, start VLC with the following command: vlc --extraintf lirc

 

It is worth repeating what I wrote in post #1 (edited for Fedora below).

I had to do this in Fedora 12 after not using lirc for awhile. Likely an update caused the problem.

If you have trouble getting the hexdump, try the following in terminal as root...

# /etc/init.d/lirc stop

# lircd -d /dev/input/event8 {lircd -d device [read from given device]}

Now press the special keys such as Volume Up, Volume Down, Mute, etc.

When done pressing each of the special keys, then enter the following in terminal as root...

# /etc/init.d/lirc start

Now the hexdump will hopefully work. Fixed it for me.

 

EDIT: To edit the Fedora Gnome menu for VLC, install alacarte.

After installing alacarte, go to > System > Preferences > 'Main Menu' and edit the entry for VLC Media Player by double-clicking on it, then set VLC to start with the following command: vlc --extraintf lirc %U

Edited by David Batson

Share this post


Link to post
Share on other sites

For Fedora 13 I had to run the following command to get LIRC to start at boot up.

 

# chkconfig lirc on

 

See the following bug report for additional information. According to that, I could have used /usr/share/lirc-remotes/devinput/lircd.conf.devinput to configure my remote. I have not tried this yet.

 

https://bugzilla.redhat.com/show_bug.cgi?id=600725#c5

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×