lircd 从命令行运行时有效,从 init.d/service 运行时无效

lircd 从命令行运行时有效,从 init.d/service 运行时无效

我正在配置一个系统以用作媒体中心,运行 Mythbuntu 12.04。除了遥控器之外,一切都正常。我已经配置了遥控器,如果我从命令行启动 lirc,它工作正常。如果我从 init 脚本运行它,它service lirc start不起作用。(为此,工作意味着让 irw 显示输出)。在这两种情况下,我都使用完全相同的命令(事实上,对于从命令行运行它,我只是复制了 中存在的命令)。两种情况下,ps -eflirc 都以 root 身份运行(至少这是ps -ef我所看到的)。两种情况在 syslog 中产生完全相同的信息。

启动lirc的命令:

sudo /usr/sbin/lircd --output=/var/run/lirc/lircd --driver=devinput --device=/dev/input/irremote

系统日志输出(启动 lirc、启动 irw、停止 irw、终止 lirc):

Aug 13 22:06:05 Myth-FJ lircd-0.9.0[4917]: lircd(devinput) ready, using /var/run/lirc/lircd
Aug 13 22:06:05 Myth-FJ lircd-0.9.0[4917]: accepted new client on /var/run/lirc/lircd
Aug 13 22:06:05 Myth-FJ lircd-0.9.0[4917]: initializing '/dev/input/irremote'
Aug 13 22:06:28 Myth-FJ lircd-0.9.0[4917]: accepted new client on /var/run/lirc/lircd
Aug 13 22:06:35 Myth-FJ lircd-0.9.0[4917]: removed client
Aug 13 22:06:42 Myth-FJ lircd-0.9.0[4917]: caught signal
Aug 13 22:06:42 Myth-FJ lircd-0.9.0[4917]: closing '/dev/input/irremote'

我完全不知所措。

答案1

我也有同样的症状,利克作为服务运行时不起作用,但作为命令可以工作。请注意,在我的情况下,某些键起作用,但只有当 lirc 未运行时(既不是作为服务也不是作为命令)才起作用。

问题是埃夫德夫(输入驱动器韓國)将遥控器当作键盘输入设备。埃夫德夫忽略遥控器解决了我的问题。我猜利克服务启动脚本被挂断了埃夫德夫不知怎么的,有一个遥控器的手柄。

该问题在此线程中有详细说明:http://www.tbsdtv.com/forum/viewtopic.php?f=22&t=2896&sid=f8d407bf0e7a02db70439a41ea2adc3c

以下内容来自该主题的最后一篇帖子。注意:TBS6981 是我用作远程接收器的卫星调谐器。

问题是由埃夫德夫(Xorg 的输入驱动程序)将遥控器作为键盘输入设备。这可以从我的 Xorg 日志(/var/log/Xorg...)中看到,见下文。大多数按钮默认不起作用,因为它们不会自然映射到键盘按钮,例如,您的键盘没有电子节目指南键,但它有数字和方向键。

基本上有两种解决方案

  1. 配置 evdev 忽略 IR 输入并使用 lirc 或
  2. 将遥控器按钮重新映射到键盘按键,如这个帖子,并且不要使用 lirc

埃夫德夫可以通过将以下内容添加到末尾来配置为忽略TBS6981作为键盘/usr/share/X11/xorg.conf.d/10-evdev.conf-

Section "InputClass"
        Identifier "cx23885 IR (TurboSight TBS 6981)"
        MatchProduct "cx23885 IR (TurboSight TBS 6981)"
        MatchIsKeyboard "on"
        Option "Ignore"
EndSection

注意匹配产品以上匹配在以下位置找到的标识符Xorg.0.log

这是从 Xorg.0.log 中摘录的,显示 evdev 选择远程输入,如果 evdev 正确配置为忽略遥控器作为键盘,则不会出现以下行:

[    21.486] (II) config/udev: Adding input device cx23885 IR (TurboSight TBS 6981) (/dev/input/event3)
[    21.486] (**) cx23885 IR (TurboSight TBS 6981): Applying InputClass "evdev keyboard catchall"
[    21.486] (II) Using input driver 'evdev' for 'cx23885 IR (TurboSight TBS 6981)'
[    21.486] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[    21.486] (**) cx23885 IR (TurboSight TBS 6981): always reports core events
[    21.486] (**) evdev: cx23885 IR (TurboSight TBS 6981): Device: "/dev/input/event3"
[    21.486] (--) evdev: cx23885 IR (TurboSight TBS 6981): Vendor 0x6981 Product 0x8888
[    21.486] (--) evdev: cx23885 IR (TurboSight TBS 6981): Found keys
[    21.486] (II) evdev: cx23885 IR (TurboSight TBS 6981): Configuring as keyboard
[    21.486] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:04.0/0000:02:00.0/rc/rc0/input3/event3"
[    21.486] (II) XINPUT: Adding extended input device "cx23885 IR (TurboSight TBS 6981)" (type: KEYBOARD, id 8)

因此,第一步是寻找你的/var/log/Xorg.0.log显示埃夫德夫拿起遥控接收器,然后配置 /usr/share/X11/xorg.conf.d/10-evdev.conf使用接收器的 ID 来忽略接收器,如Xorg.0.log

相关内容