首页 > 其他 > 详细

udev更改按键映射

时间:2020-02-05 11:25:01      阅读:75      评论:0      收藏:0      [点我收藏+]

通过更改udev的规则实现敲击a键获得s的输出

安装evtest


??首先安装evtest检测键盘的扫描码

1
2
3
4
5
6
7
8
9
# apt install evtest
# sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: Power Button
/dev/input/event1: Lid Switch
/dev/input/event2: Power Button
/dev/input/event3: AT Translated Set 2 keyboard
Select the device event number [0-3]:

选择device的数字后,敲击a键可以得到一下信息:

1
2
3
4
5
6
Event: time 1521361797.053598, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1e
Event: time 1521361797.053598, type 1 (EV_KEY), code 30 (KEY_A), value 1
Event: time 1521361797.053598, SYN_REPORT
aEvent: time 1521361797.148844, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1e
Event: time 1521361797.148844, type 1 (EV_KEY), code 30 (KEY_A), value 0
Event 大专栏  udev更改按键映射: time 1521361797.148844, SYN_REPORT

??结果进行了简化,第一个SYN_REPORT代表a键按下,第二个SYN_REPORT代表a键松开,其中可以得到a的扫描码为1e

修改udev


??使用编辑器编辑udev规则

1
# sudo vim /lib/udev/hwdb.d/60-keyboard.hwdb

在文件最后添加以下几行

1
2
evdev:input:b0011v0001p0001*
KEYBOARD_KEY_1e=a

??第一行为一系列规则代表匹配的设备,其中evdev:input:代表输入设备,后面为一些ID,在evtest中输入device的数字之后会有一行输出为

1
Input device ID: bus 0x11 vendor 0x1 product 0x1 version 0xab41

其中’b0011’,’v000v’,’p0001’分别与bus,vendor,product对应,’*’代表了之后的通配符号

??第二行为对设备的映射,行首需要空格否则无效,KEYBOARD_KEY_后跟扫描码,=号右为键值

更新udev


??使用以下命令更新,需要将event3换为自己输入的数字

1
sudo udevadm hwdb --update && sudo udevadm trigger /dev/input/event3

udev更改按键映射

原文:https://www.cnblogs.com/lijianming180/p/12262569.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!