Linux系统上evtest命令用法详解
evtest命令使用手册
本手册详细介绍了evtest命令的使用方法。evtest 是银河麒麟桌面操作系统中的输入事件测试工具,它直接读取 /dev/input/event* 设备节点,实时打印内核上报的按键、坐标与绝对轴事件,用于验证输入硬件与驱动的事件上报链路是否正常。
主要功能:
- 列出系统全部输入设备及其对应的事件节点编号。
- 实时显示事件时间戳、事件类型、代码与取值。
- 支持查询指定按键的当前状态,便于脚本判断。
- 支持独占设备,排除其他程序的干扰分析事件。
核心特点:
本手册面向以下用户:
系统管理员:验证键盘、触摸屏等外设在系统层面是否正常上报事件。
技术支持工程师:定位“设备可识别但无响应”的驱动或映射问题。
开发人员:校准触摸屏绝对坐标范围,确认按键码与驱动上报是否一致。
evtest 工具默认未集成于银河麒麟桌面操作系统,需通过软件源手动安装。
安装并验证版本信息:
sudo apt install -y evtest && evtest --version
evtest [选项] [设备节点]
选项:指定操作模式;省略选项与设备时进入交互选择界面。
| 选项 | 描述 | 示例 |
| --list-devices | 列出全部输入设备及事件节点 | evtest --list-devices |
| <设备节点> | 实时监控指定设备的事件流 | evtest /dev/input/event3 |
| --query <设备> <类型> <代码> | 查询事件状态,成功返回 0 | evtest --query /dev/input/event3 EV_KEY KEY_A |
| --grab | 独占设备,阻止事件传递给其他程序 | evtest --grab /dev/input/event3 |
| --version | 显示版本信息 | evtest --version |
示例 1:列出输入设备
场景:确认目标设备对应的事件节点编号,为后续监控命令提供参数。
命令:
evtest --list-devices
输出示例:
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: Power Button
/dev/input/event3: AT Translated Set 2 keyboard
/dev/input/event5: Logitech USB Optical Mouse
说明:
(1)event 后的编号即设备节点编号,不同内核版本下编号可能变化;
(2)键盘、鼠标、触摸屏各自对应独立节点,需按设备名称对应。
扩展用法:直接指定节点进入交互选择界面:
evtest /dev/input/event3
示例 2:实时监控按键事件
场景:验证按键是否能正常上报事件,判断故障位于硬件还是应用层。
命令:
evtest /dev/input/event3
输出示例:
Input driver version is 1.0.1
Input device name: "AT Translated Set 2 keyboard"
Event: time 1699432801.123456, type 1 (EV_KEY), code 30 (KEY_A), value 1
Event: time 1699432801.183021, type 1 (EV_KEY), code 30 (KEY_A), value 0
说明:
(1)value 为 1 表示按下、0 表示松开、2 表示长按重复;
(2)若按键无任何输出,说明事件未上报至该节点,需检查设备映射与驱动加载。
示例 3:查询按键当前状态
场景:在脚本中判断物理按键(如复位键、电源键)是否处于按下状态。
命令:
evtest --query /dev/input/event3 EV_KEY KEY_A; echo $?
输出示例:
0
说明:
(1)返回 0 表示按键当前处于按下状态,返回 1 表示未按下,其他值表示执行出错;
(2)--query 不持续占用设备,适合在定时任务中周期性检测。
无。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)