evtest命令使用手册

  • 引言
    1. 文档概述

本手册详细介绍了evtest命令的使用方法。evtest 是银河麒麟桌面操作系统中的输入事件测试工具,它直接读取 /dev/input/event* 设备节点,实时打印内核上报的按键、坐标与绝对轴事件,用于验证输入硬件与驱动的事件上报链路是否正常。

主要功能:

  1. 列出系统全部输入设备及其对应的事件节点编号。
  2. 实时显示事件时间戳、事件类型、代码与取值。
  3. 支持查询指定按键的当前状态,便于脚本判断。
  4. 支持独占设备,排除其他程序的干扰分析事件。

核心特点:

  1. 直接对接内核 evdev 接口,不依赖 X11 或 Wayland。
  2. 需要 root 权限或 input 组成员身份方可读取。
  3. 事件输出精确到微秒,可辅助分析事件时序。
    1. 适用范围

本手册面向以下用户:

系统管理员:验证键盘、触摸屏等外设在系统层面是否正常上报事件。

技术支持工程师:定位“设备可识别但无响应”的驱动或映射问题。

开发人员:校准触摸屏绝对坐标范围,确认按键码与驱动上报是否一致。

  • 安装说明

evtest 工具默认未集成于银河麒麟桌面操作系统,需通过软件源手动安装。

安装并验证版本信息:

sudo apt install -y evtest && evtest --version

  • 使用说明
    1. 基本语法结构

evtest [选项] [设备节点]

选项:指定操作模式;省略选项与设备时进入交互选择界面。

    1. 选项与参数说明

选项

描述

示例

--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. 使用示例

示例 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 不持续占用设备,适合在定时任务中周期性检测。

  • 附录

无。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐