解决 N1 刷 CoreELEC 后遥控器确认键不能用的问题
准备工作 1:确认不是遥控器故障
首先确定遥控器是好的,测试方法是:连接到几个非 CoreELEC 设备上,试一下确认键是否好用
确定好用后,可以按照下面的步骤修改 CoreELEC 的键位映射
准备工作 2:安装 System Tools 插件
安装方式:设置 -> 插件 -> 从库安装 -> CoreELEC Addons -> 程序插件 -> System Tools,这一步是为后文使用 evtest
做准备
准备工作 3:开启 SSH 登录
开启位置:设置 -> CoreELEC -> 服务 -> SSH,如果不知道密码也可以在此处重新设置
查找自己的遥控器
使用 SSH 登录 N1 后,执行下面的命令
cat /proc/bus/input/devices
在输出中找到自己的遥控器设备
比如我的是 2.4G 飞鼠,在列表中有两个设备,选择 Handlers = kbd event3
的那个(按字面意思猜的,kbd 是 Keyboard 的缩写,另一个应该是鼠标模式)
记录下
Bus=0003
Vendors=4842
Product=0001
找到 “确定键” 对应的键码
SSH 中执行如下的命令
systemctl stop kodi
systemctl stop eventlircd
evtest /dev/input/event3
注意
- 第三条命令中的
/dev/input/event3
不要完全照抄,要替换成你自己的 event 数值 - 遇到提示
-sh: evtest: not found
,请检查第一步的 System Tools 是否安装好,如果还不行,重启一下 CoreELEC
如果一切顺利,会输出全部键位的键码,并进入侦听模式,如下图
这个时候,按下遥控器的确认键,在类似下图的输出中,记录下红圈中的数值
创建配置文件
在 /etc/udev/hwdb.d/
文件夹内新建配置文件,例如 haobo.hwdb
在配置文件中写入如下内容
evdev:input:b0003v4842p0001*
KEYBOARD_KEY_c0041=enter
注意不要直接照抄
- 这里面的 0002、4842、0001 分别代表上文记录下的 Bus、Vendors、Product
- c0041 对应上文侦听到按下确认键时候的键码,enter 对应确认键
- KEYBOARD_KEY 前面的空格不可以省略
要修改其他功能的映射,也可以按照这个逻辑
保存配置并生效
使用如下命令
systemd-hwdb update
udevadm trigger
systemctl start eventlircd
systemctl start kodi
试试看,是不是已经生效了