如何调试来自输入设备的输入 (/dev/input/event*)

Las*_*sen 20 drivers kernel remote input

我有一个使用 imon-driver 的 IR 接收器,我想让它与内核一起工作。现在遥控器(image)上的一半键可以工作,但是像数字键这样的重要想法却不起作用!

奇怪的想法是内核键映射模块(rc-imon-pad)似乎是正确的,但它似乎并没有真正使用,因为没有该模块,完全相同的键也可以工作。

当我加载 imon 时,似乎 rc-imon-pad 模块总是被加载,然后我怀疑键码被缓存,所以如果我卸载 rc-imon-pad 并没有什么区别

现在我迷路了,如果我这样做了,cat /dev/input/event5或者ir-keytable -t无论我按什么键都有数据,所以驱动程序注册了按钮,但似乎它们被转换为错误的键码。

我的内核是 Natty 的 ubuntu 股票内核(Linux xbmc 2.6.37-11-generic #25-Ubuntu SMP Tue Dec 21 23:42:56 UTC 2010 x86_64 GNU/Linux)

uli*_*tko 19

您可能会发现有用的xinput listxinput test <device>

例如,

$ xinput 列表
? 虚拟核心指针id=2【主指针(3)】
? ? 虚拟核心XTEST指针id=4【从指针(2)】
? ? SynPS/2 Synaptics TouchPad id=11 [从指针 (2)]
? 虚拟核心键盘id=3【主键盘(2)】
    ? 虚拟核心XTEST键盘id=5【从键盘(3)】
    ? 电源按钮 id=6 [从属键盘 (3)]
    ? Video Bus id=7 [从键盘(3)]
    ? 睡眠按钮 id=8 [从属键盘 (3)]
    ? 华硕笔记本电脑额外按钮 id=9 [从属键盘 (3)]
    ? AT Translated Set 2 keyboard id=10 [从键盘(3)]

我可以监控我的键盘 ( xinput test 10) 或触摸板 ( xinput test 11, 甚至xinput test "SynPS/2 Synaptics TouchPad") 的各种输入事件,它们会被很好地打印到控制台,并且参数也被提取和打印。

这不会解决您的问题,但至少会通过破译例如cat /dev/input/event1产生的混乱来帮助一点。

  • 非常感谢!我根据这个答案构建了一个 [键盘检测器](https://gitlab.com/victor-engmark/which-keyboard)。 (2认同)

lkr*_*aav 3

我有相同的遥控器,并且它可以将正确的键码发送到我的 2.6.38-gentoo-r3 内核。我没有将键码编译为模块,因为它们可能还没有时间来选择单独的键映射。要么全有要么全无,我不喜欢无数无用的模块让我混乱。相反,我让 v4l-utils 使用 udev 来处理它。

我学到了一些东西:

  • 检查 ir-keytable -r 的输出,它应该列出适用于您的遥控器的所有键码
  • 手动加载密钥表: ir-keytable -c -w bleh/keymaps/imon_pad,之后 ir-keytable -r 应该会返回该表
  • 你实际上可能有一个有故障的接收器,你没有提到历史。我记得在lirc-list上至少看到一条消息,其中有人说将箱子寄回并换一个新箱子解决了他的问题。

让我们知道进展如何。