我发现了一个旧的红外线遥控器,它的感受器连接成USB。我把它连接到我的Linux盒(薄荷LMDE内核3.2.04-AMD 64)。它被lsusb认可为"Zydacron遥控器“。
起作用了..。几乎..。我可以改变音量,启动/停止媒体播放器,选择播放列表中的轨道。
但是一些键似乎没有反应(没有配置)。
发布于 2013-04-16 18:00:28
所以我必须回到这个问题上,因为我找到了一个没有LIRC的“更好”的解决方案(IMHO)!
正如我说的,当我第一次连接USB接收器时,遥控器上的几乎所有按钮都在工作,没有任何其他软件或任何配置。
根据不同的建议(不仅仅是这里),我安装了LIRC和我为我最常使用的软件找到的插件。
在经历了一些困难之后,我对LIRC进行了配置,即计算机正在接收扫描代码并对其进行翻译。之后,我启动了“图腾”并激活了LIRC插件..。
女妖或者VLC也是一样!
但是,当我关闭应用程序或禁用LIRC插件时,我的键再次工作,我可以设置音量、启动、停止和暂停任何mp3或视频...etc。
正如我所理解的,让远程被LIRC识别是不够的,我必须为我想要使用的每一个程序编写一个配置文件。即使是没有LIRC的钥匙也是如此。听起来很疯狂..。如果不讨论这样一个事实,即通过每个插件找到被接受的LIRC操作似乎相当困难,而且一些软件(比如Banshee )并没有提供比那些没有LIRC的软件更多的可能性(甚至更少)。
所以我搜索了..。
首先,从内核2.6.36开始,LIRC的驱动程序是集成的。这就是为什么当我配置LIRC时,我不得不使用"devinput“驱动程序。
由于这个版本,所有的遥控器都被识别为外部键盘!这也解释了为什么大多数的钥匙都是开箱即用的。因此,由于它是一个键盘,我们必须做的是“重新映射”另一个代码/操作上的非工作键。如下所示:
首先做一个"lsusb“并识别您的遥控器:
Bus 006 Device 002: ID 13ec:0006 Zydacron HID Remote Control 您必须写下ID 13ec:0006,它将是有用的。
现在以长格式显示/dev/ Now /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/ file es.d/95-keymap.Rule
sudo vi /lib/udev/rules.d/95-keymap.rules在LABEL="keyboard_usbcheck“之后的文件中,在GOTO="keyboard_end”之前添加以下行:
ENV{ID_VENDOR_ID}=="13ec", ENV{ID_MODEL_ID}=="0006", RUN+="keymap $name zydacron" 您可以将供应商id和模型id识别为在lsusb中找到的ID的两个部分,还可以将我的file.Adapt它的名称命名为您自己的值。
重新启动udev进程:
sudo service udev restart(或重新启动计算机),您就完成了。
现在,每次插入接收器,无论是在哪个USB端口上,还是在系统给出的事件号上,映射都将自动完成。
小贴士:我把一个键映射为"tab“,另一个映射为"F10",在Banshee中非常有用,可以跳过子窗口并打开主菜单。
发布于 2013-04-09 19:23:36
我肯定会安装李尔克。您可以查看支持的远程这里列表。如果您的遥控器没有直接支持,那么所有的都不会丢失。
如果您在这里找不到您的遥控器,这并不意味着您的遥控器不受支持,但还没有配置文件。学习远程控制所支持的所有远程控件,即几乎任何远程控件,都应该与LIRC一起工作。如果您添加了一个新的遥控器,请发送您的配置文件。
我以前也这样做过,大多数遥控器都会使用lirc。您只需调整一个配置文件,以便所有的键都能正常工作。这是非常简单的,看看了解更多信息。
https://unix.stackexchange.com/questions/71850
复制相似问题