配置远程控制 Zydacron

配置远程控制 Zydacron

我找到了一个旧的红外遥控器,其接收器连接为 USB。我将其连接到我的 Linux 机器(Mint LMDE 内核 3.2.0-4-amd64)。它被识别lsusb为“Zydacron HID 远程控制”。

它有效......几乎......我可以改变音量,启动/停止媒体播放器,选择播放列表中的曲目。

但有些按键似乎没有反应(未配置)。

  • 如何配置所有按键?
  • 我应该安装“lirc”吗?

答案1

所以我必须回到这个问题上,因为我找到了一个没有 LIRC 的“更好”的解决方案(恕我直言)!

正如我所说,我第一次连接 USB 接收器时,遥控器上的几乎所有按钮都可以工作,无需任何其他软件或任何配置。

根据不同的建议(不仅在这里),我安装了 LIRC 和为我最常使用的软件找到的插件。

经过一些困难后,我配置了 LIRC,因为计算机正在接收扫描代码并且它们已被翻译。在此之后,我启动了“Totem”并激活了 LIRC 插件......但没有任何作用了! :-( 甚至不是之前可以用的钥匙

Banshee 或 VLC 也是如此!

但是,当我关闭应用程序或禁用 LIRC 插件时,我的密钥会再次起作用,我可以设置音量、开始、停止和暂停任何 mp3 或视频...等。

据我了解,让 LIRC 识别遥控器是不够的,我必须为每个我想使用的程序编写一个配置文件......即使是在没有 LIRC 的情况下工作的按键。听起来很疯狂……不谈这样一个事实:找到每个插件都接受的 LIRC 操作似乎相当困难,而且某些软件(例如 Banshee)并没有提供比我在没有 LIRC 的情况下已经拥有的更多可能性(甚至更少)。


所以我搜索...

首先发现,从2.6.36内核开始,集成了LIRC的驱动。这就是为什么当我配置 LIRC 时,我必须使用“devinput”驱动程序。

从这个版本开始,所有遥控器都被识别为外接键盘!这也解释了为什么大多数按键开箱即用。因此,由于它是键盘,我们要做的就是将非工作键“重新映射”到另一个代码/操作上。方法如下:

首先执行“lsusb”并识别您的遥控器:

Bus 006 Device 002: ID 13ec:0006 Zydacron HID Remote Control 

您必须写下ID13ec:0006,这会有用的。

现在以长格式显示 /dev/input/by-id 的内容。

ls -l /dev/input/by-id/
lrwxrwxrwx 1 root root 10 Apr 15 19:27 usb-13ec_0006-event-kbd -> ../event10 

通过 ID 以及与其关联的事件,您可以找到正确的行!现在,有了这些信息,我们将尝试从远程读取

sudo /lib/udev/keymap -i input/event10

当您按下遥控器上的按键时,您应该会看到扫描码和当前关联的键码:

scan code: 0xC00CD   key code: playpause
scan code: 0x70028   key code: enter
scan code: 0x7002A   key code: backspace
scan code: 0x7001E   key code: 1
scan code: 0x70022   key code: 5

请注意,某些键可能会返回键码,但您的窗口管理器(在我的例子中为 Gnome3)可能无法识别该键码。或者键码不正确。就我而言,我必须将键号重新映射到键盘(比利时键盘),并将特殊键(音频、视频、DVD...)重新映射到一些未使用的功能键。

现在我们将编写我们的键盘映射文件。您可以使用任何名称,就我而言,我将其命名为“zydacron”

sudo vi /lib/udev/keymaps/zydacron

该文件夹中已经有多个文件。格式非常简单:

<scan code> <keycode> <# comment eventually>

例子 :

0x70027 kp0
0x7001E kp1
0x7001F kp2
0xC0047 f13 # music
0xC0049 f14 # photo
0xC004A f15 # video
0xC00CD playpause # Play/Pause

您只能放置需要重新映射的密钥!你会在这个页面找到官方所有关键代码列表。再次强调,这并不意味着您的窗口管理器支持此列表中的每个关键代码,您必须进行测试才能确定。

文件完成后,我们可以使用以下命令对其进行测试:

sudo /lib/udev/keymap input/event10 /lib/udev/keymaps/zydacron

如果某些功能不起作用,您将必须尝试另一个键码。然后重做映射。

当一切如您所愿时,我们会将其永久化。编辑文件 /lib/udev/rules.d/95-keymap.rules

sudo vi /lib/udev/rules.d/95-keymap.rules

在文件中之后标签=“keyboard_usbcheck”但之前GOTO=“键盘结束”添加以下行:

ENV{ID_VENDOR_ID}=="13ec", ENV{ID_MODEL_ID}=="0006", RUN+="keymap $name zydacron" 

您可以将供应商 id 和型号 id 识别为通过以下命令找到的 ID 的两个部分LSSB,以及我的文件的名称。将其调整为您自己的值。

重新启动udev进程:

sudo service udev restart

(或重新启动计算机),就完成了。

现在每次插入接收器时,无论在哪个 USB 端口上,也无论系统给出的事件编号,映射都会自动完成

小提示:我将一个键映射为“tab”,另一个键映射为“F10”,这在 Banshee 中非常有用,可以“跳转”子窗口并打开主菜单。

答案2

我肯定会安装利克。您可以浏览支持的遥控器列表这里。如果您的遥控器不受直接支持,一切都不会丢失。

如果您在这里找不到您的遥控器,这并不意味着您的遥控器不受支持,而是还没有其配置文件。学习型遥控器支持的所有遥控器(即几乎所有遥控器)也应与 LIRC 配合使用。如果您添加新的遥控器,请将您的配置文件发送给我。

我以前也这样做过,大多数遥控器都可以与 lirc 配合使用。您只需调整配置文件,以便所有按键都能正常工作。很简单,看一下获取更多信息

相关内容