Bug 7395 - Module ir_common interfeers with lirc
Summary: Module ir_common interfeers with lirc
Status: REJECTED INSUFFICIENT_DATA
Alias: None
Product: Drivers
Classification: Unclassified
Component: Input Devices (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: drivers_input-devices
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-10-21 07:25 UTC by hexion
Modified: 2008-09-22 17:12 UTC (History)
3 users (show)

See Also:
Kernel Version: 2.6.17 and above
Subsystem:
Regression: ---
Bisected commit-id:


Attachments

Description hexion 2006-10-21 07:25:38 UTC
--------------------
Most recent kernel where this bug did not occur:
--------------------
2.6.15 (ubuntu's image in Ubuntu Dapper 2.6.15-27)

--------------------
Distribution:
--------------------
Ubuntu Edgy

--------------------
Hardware Environment:
--------------------
AMD64 (I use 386 kernel), ULI chipset 1685, (...), Avermedia Capture 98 TV Card.


--------------------
Software Environment:
--------------------
Ubuntu's default installation (Edgy RC1)


--------------------
Problem Description:
--------------------
Since 2.6.17 kernel (edgy's images and vanilla self-compiled kernels), theres a
module called ir_common that provides a new "feature" to manage remote control's
keys.

This makes, by default (live cd included), an echo of numbers keys on my remote
control to the active window, and also opens "shutdown menu" when pressing to
the shutdown button.

Ok, cool new feature, BUT the problem comes when trying to use lirc, as that
module CANNOT be unloaded and interfeers with normal behaviour of lirc.

In example, if I configure button 1 to launch firefox, with kernel 2.6.15 and
lirc running it will launch firefox, BUT with kernel 2.6.17 and lirc running it
will launch firefox AND outputs the character 1 to the active window.

That module cannot be unloaded because it depends on bttv, and it's neccesary to
make TV card work.

My TV card is an avermedia capture 98.

This bug is confirmed in dapper with 2.6.17 kernel compiled from kernel.org, and
with edgy (default kernels in knot, knot2, knot3, beta, and RC1)

ir_common module is not a bug itself, it can be considered as a new feature, but
it becomes an annoying bug when someone want to use lirc, so it should be
unloaded when lircd process is running (or at least there should be a way to
unload it manually)


--------------------
Steps to reproduce:
--------------------

1)Run Ubuntu edgy RC1 live CD (which brings 2.6.17 kernel version) on a system
with an Avermedia Capture 98 TV card (I suspect it affects at least all tv cards
which use bttv module).

2) Open a terminal (or gedit... or whatever app that accept input keys)

3) Press a number button of the remote control. It will output a character to
the active window

4) Same will occur when lirc installed, so it will output that character and
make at the same time the action you configure in lirc for that remote's button.
Comment 1 Natalie Protasevich 2007-06-23 01:19:42 UTC
Does the problem still exist with new kernels?
Thanks.
Comment 2 hexion 2007-07-03 13:16:20 UTC
(In reply to comment #1)
> Does the problem still exist with new kernels?
> Thanks.
> 

Yes, 2.6.15 was the last kernel that didn't set mandatory (that's the problem) actions to the TV remote controls.

I think that managing that remote controls in the kernel is a great feature, BUT, there should neccesary be a file to configure such actions. Not in compilation time, but in the time when ir_common is loaded.

I hacked some files to avoid this management, here you can see the procedure (the thread is unmantained but there's some useful info there): http://ubuntuforums.org/showthread.php?t=288229
Comment 3 Dmitry Torokhov 2007-07-03 13:37:16 UTC
If lirc wishes to be the sole recepient of input events from a device then it needs to grab it via EVIOCGRAB ioctl.
Comment 4 hexion 2007-07-05 10:48:42 UTC
Should I contact with Lirc developers to tell them that?

Anyway, I state again... a correct design of this feature in the linux kernel should provide a way to configure the buttons and the actions asociated with each button. And that configuration should be in module loading time with a file (like Lirc does with $HOME/.lircrc), not in compilation time.
Comment 5 Dmitry Torokhov 2007-07-05 11:08:20 UTC
(In reply to comment #4)
> Should I contact with Lirc developers to tell them that?

Yes, please.

> Anyway, I state again... a correct design of this feature in the linux kernel
> should provide a way to configure the buttons and the actions asociated with
> each button.

There is such a way. You can issue EVIOCSKEYCODE ioctl on corresponding event device to reprogram keymap for the device. Any remote control based on ir_common supports this mechanism. 

> And that configuration should be in module loading time with a
> file (like Lirc does with $HOME/.lircrc), not in compilation time.

You could call a program that would reprogram the remote from your init scripts or hotplug scripts. Still, it woudl not reslve your issue - you do not want events from remote device to be delivered to console but rather to lirc only. Therefore lirc must declare itself an exclusive user.
Comment 6 hexion 2007-07-06 00:41:14 UTC
Thanks for the info, I'll contact with Lirc developers and tell them to read this thread. I hope they find it usefull.

But I think we are missing the main statement I made.. Don't you think it's better to have a file (or whatever method) to configure keys/actions rather than have a 3rd party tool programmed to nullify the effects of the kernel management and set its own?

Note I don't want to trash any tool like Lirc (which I use, I love, and I'll keep on using), of course the mechanism to let 3rd party tools to take the control must be there, I just mention this as a [neccesary] enhacement for this feature in the kernel. The user should have the choice to select which buttons launch which actions to enhace their experience, IMHO.
Comment 7 Natalie Protasevich 2008-04-01 20:22:09 UTC
Any updates on this bug? hexion, were you an Lirc able to follow #5 and resolve your problem?

Note You need to log in before you can comment on or make changes to this bug.