解决 N1 刷 CoreELEC 后遥控器确认键不能用的问题

准备工作 1:确认不是遥控器故障

首先确定遥控器是好的,测试方法是:连接到几个非 CoreELEC 设备上,试一下确认键是否好用
确定好用后,可以按照下面的步骤修改 CoreELEC 的键位映射

准备工作 2:安装 System Tools 插件

安装方式:设置 -> 插件 -> 从库安装 -> CoreELEC Addons -> 程序插件 -> System Tools,这一步是为后文使用 evtest 做准备

001.jpg

准备工作 3:开启 SSH 登录

开启位置:设置 -> CoreELEC -> 服务 -> SSH,如果不知道密码也可以在此处重新设置

002.jpg

查找自己的遥控器

使用 SSH 登录 N1 后,执行下面的命令

cat /proc/bus/input/devices

在输出中找到自己的遥控器设备

比如我的是 2.4G 飞鼠,在列表中有两个设备,选择 Handlers = kbd event3 的那个(按字面意思猜的,kbd 是 Keyboard 的缩写,另一个应该是鼠标模式)

记录下

Bus=0003
Vendors=4842
Product=0001

2.png

找到 “确定键” 对应的键码

SSH 中执行如下的命令

systemctl stop kodi
systemctl stop eventlircd
evtest /dev/input/event3

注意

  • 第三条命令中的 /dev/input/event3 不要完全照抄,要替换成你自己的 event 数值
  • 遇到提示 -sh: evtest: not found,请检查第一步的 System Tools 是否安装好,如果还不行,重启一下 CoreELEC

如果一切顺利,会输出全部键位的键码,并进入侦听模式,如下图

3.png

这个时候,按下遥控器的确认键,在类似下图的输出中,记录下红圈中的数值

4.png

创建配置文件

/etc/udev/hwdb.d/ 文件夹内新建配置文件,例如 haobo.hwdb

在配置文件中写入如下内容

evdev:input:b0003v4842p0001*
 KEYBOARD_KEY_c0041=enter

注意不要直接照抄

  • 这里面的 0002、4842、0001 分别代表上文记录下的 Bus、Vendors、Product
  • c0041 对应上文侦听到按下确认键时候的键码,enter 对应确认键
  • KEYBOARD_KEY 前面的空格不可以省略

5.png

要修改其他功能的映射,也可以按照这个逻辑

保存配置并生效

使用如下命令

systemd-hwdb update
udevadm trigger
systemctl start eventlircd
systemctl start kodi

试试看,是不是已经生效了