[mythtv-users] lirc acting very bizarrely

Gabe Rubin gaberubin at gmail.com
Thu Dec 1 08:39:16 UTC 2011


On Wed, Nov 30, 2011 at 6:57 PM, Gabe Rubin <gaberubin at gmail.com> wrote:
> On Wed, Nov 30, 2011 at 2:50 AM, Roald <roalda at gmail.com> wrote:
>>> On Mon, Nov 28, 2011 at 9:57 PM, Nick Rout <nick.rout at gmail.com> wrote:
>>>>> How do I get gnome to not use the remote?  I don't even know how I set
>>>>> it up to use the remote in the first place.  Also, I can't use irw
>>>>> anymore.  When I run it, no output goes to the terminal when I hit
>>
>> I think that you might find some tips here:
>> http://www.lirc.org/html/devinput.html
>>
>> I used this to disable the inputs from a Speedlink SL 6399 remote so
>> that HAL wouldn't grab the devices. I also buttons on my remote
>> mapping to system volume controls and mute.
>
> This did not work for me.  I created the following rule and saved it
> at /usr/share/hal/fdi/preprobe/20thirdparty/10-ignore-i2c-ir.fdi
> <?xml version="1.0" encoding="UTF-8"?>
> <deviceinfo version="0.2">
> <device>
>  <match key="info.product" contains_ncase="i2c ir">
>    <merge key="info.ignore" type="bool">true</merge>
>  </match>
> </device>
> </deviceinfo>
>
>
> I used lshal and it gave me the expected output as detailed in that link:
> udi = '/org/freedesktop/Hal/devices/temp/135'
>  info.ignore = true  (bool)
>  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
>  info.product = 'Ignored Device'  (string)
>  info.subsystem = 'input'  (string)
>  info.udi = '/org/freedesktop/Hal/devices/ignored-device'  (string)
>  input.device = '/dev/input/event7'  (string)
>  input.product = 'i2c IR (Hauppauge WinTV PVR-350'  (string)
>  linux.device_file = '/dev/input/event7'  (string)
>  linux.hotplug_type = 2  (0x2)  (int)
>  linux.subsystem = 'input'  (string)
>  linux.sysfs_path = '/sys/devices/virtual/rc/rc0/input7/event7'  (string)
>
>
> Prior to doing that, this is the relevant output in lshal:
>
> udi = '/org/freedesktop/Hal/devices/computer_logicaldev_input_1'
>  info.addons.singleton = {'hald-addon-input'} (string list)
>  info.capabilities = {'input', 'input.keys', 'button'} (string list)
>  info.category = 'input'  (string)
>  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
>  info.product = 'i2c IR (Hauppauge WinTV PVR-350'  (string)
>  info.subsystem = 'input'  (string)
>  info.udi = '/org/freedesktop/Hal/devices/computer_logicaldev_input_1'
>  (string)
>  input.device = '/dev/input/event3'  (string)
>  input.product = 'i2c IR (Hauppauge WinTV PVR-350'  (string)
>  input.x11_driver = 'evdev'  (string)
>  input.xkb.layout = 'us'  (string)
>  input.xkb.model = 'evdev'  (string)
>  input.xkb.rules = 'base'  (string)
>  input.xkb.variant = ''  (string)
>  linux.device_file = '/dev/input/event3'  (string)
>  linux.hotplug_type = 2  (0x2)  (int)
>  linux.subsystem = 'input'  (string)
>  linux.sysfs_path = '/sys/devices/virtual/rc/rc0/input3/event3'  (string)
>
> I restarted the machine to make sure HAL and LIRC reloaded, and my
> remote is still behaves as it did before.  I also see this in my xorg
> log:
> [   884.390] (II) config/udev: Adding input device i2c IR (Hauppauge
> WinTV PVR-350 (/dev/input/event7)
> [   884.390] (**) i2c IR (Hauppauge WinTV PVR-350: Applying InputClass
> "evdev keyboard catchall"
> [   884.390] (**) i2c IR (Hauppauge WinTV PVR-350: Applying InputClass
> "system-setup-keyboard"
> [   884.390] (II) Using input driver 'evdev' for 'i2c IR (Hauppauge
> WinTV PVR-350'
> [   884.390] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
> [   884.390]    Option "XkbRules" "evdev"
> [   884.390]    Option "XkbModel" "pc105+inet"
> [   884.390]    Option "XkbLayout" "us"
> [   884.390]    Option "_source" "server/udev"
> [   884.390]    Option "name" "i2c IR (Hauppauge WinTV PVR-350"
> [   884.390]    Option "path" "/dev/input/event7"
> [   884.390]    Option "device" "/dev/input/event7"
> [   884.390]    Option "config_info"
> "udev:/sys/devices/virtual/rc/rc0/input7/event7"
> [   884.390]    Option "driver" "evdev"
> [   884.390]    Option "XkbOptions" "terminate:ctrl_alt_bksp,"
> [   884.390] (**) i2c IR (Hauppauge WinTV PVR-350: always reports core events
> [   884.390] (**) evdev: i2c IR (Hauppauge WinTV PVR-350: Device:
> "/dev/input/event7"
> [   884.390] (--) evdev: i2c IR (Hauppauge WinTV PVR-350: Vendor 0 Product 0
> [   884.390] (--) evdev: i2c IR (Hauppauge WinTV PVR-350: Found keys
> [   884.390] (II) evdev: i2c IR (Hauppauge WinTV PVR-350: Configuring
> as keyboard
> [   884.390] (**) Option "config_info"
> "udev:/sys/devices/virtual/rc/rc0/input7/event7"
> [   884.390] (II) XINPUT: Adding extended input device "i2c IR
> (Hauppauge WinTV PVR-350" (type: KEYBOARD, id 9)
> [   884.390] (**) Option "xkb_rules" "evdev"
> [   884.390] (**) Option "xkb_model" "pc105+inet"
> [   884.390] (**) Option "xkb_layout" "us"
> [   884.390] (**) Option "xkb_options" "terminate:ctrl_alt_bksp,"
> [   884.390] (II) XKB: Reusing cached keymap
>
>
> I have tried to modify the xorg.conf file to not have this happen by
> adding the following stanza:
> Section "InputClass"
>  Identifier "Ignore remote IR"
>  MatchProduct "i2c IR (Hauppauge WinTV PVR-350"
>  MatchIsKeyboard "true"
>  Option "Ignore" "true"
> EndSection
>
>
> When I do that, I get no functionality from the remote (i.e., the keys
> that did actually work for myth don't and the volume keys do nothing
> ... I get nothing from any key).  I see this in my xorg log file:
> [  1322.226] (II) config/udev: Adding input device i2c IR (Hauppauge
> WinTV PVR-350 (/dev/input/event7)
> [  1322.226] (**) i2c IR (Hauppauge WinTV PVR-350: Ignoring device
> from InputClass "Ignore remote IR"
>
> In each of these cases, I get nothing in my terminal when I run irw
> and hit keys.

I now know what the issue is.  When X starts up, no matter what I put
in the xorg.conf file, it treats my remote as if it is a keyboard and
the buttons have no relationship to any of my lirc config files.  I
believe xinput is just taking the raw ir code and converting it to a
keyboard keystroke.  However, once I have lirc properly configured,
lirc takes over the receiver and the buttons do not get interpreted as
a keyboard keystroke but get properly interpreted according the my
lirc config files.

However, here is why lirc is not properly starting up.  Every time I
reboot, the lirc device changes which /dev/input/eventXX 9where XX is
a number) it is on.  So each time I reboot, I have to edit the file
/etc/sysconfig/lirc to include the correct setting for
LIRC_DEVICE="/dev/input/event6" (where it happens to be event6 this
time) and then restart the lirc service.

Why is this happening?  I mean, I can get it to work on reboots, but
this should be static.  At least it always has been before.


More information about the mythtv-users mailing list