如何确认Linux嵌入式系统的触摸屏对应的是哪个设备文件(/dev/input/event1)?如何查看系统中所有的输入设备?输入设备的设备文件有什么特点?
Linux嵌入式系统的输入设备的设备文件有什么特点?
在 Linux 中,所有的输入设备(如键盘、鼠标、触摸屏等)都会被内核识别为 输入事件设备,并在 /dev/input/
目录下创建相应的 设备文件,通常是:
/dev/input/event0
(可能是按键设备)/dev/input/event1
(在我的开发板中,是触摸屏)/dev/input/mouse0
(如果有鼠标设备)/dev/input/js0
(如果有游戏手柄)
如何查看系统中所有的输入设备的详细情况
运行下面的命令即可查看:
cat /proc/bus/input/devices
运行结果如下:
I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="20cc000.snvs:snvs-powerkey"
P: Phys=snvs-pwrkey/input0
S: Sysfs=/devices/soc0/soc/2000000.aips-bus/20cc000.snvs/20cc000.snvs:snvs-powerkey/input/input0
U: Uniq=
H: Handlers=kbd event0 evbug
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0
I: Bus=0018 Vendor=dead Product=beef Version=28bb
N: Name="goodix-ts"
P: Phys=input/ts
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=event1 evbug
B: PROP=2
B: EV=b
B: KEY=1c00 0 0 0 0 0 0 0 0 0 0
B: ABS=6e18000 0
如何确认Linux嵌入式系统的触摸屏对应的是哪个设备文件?
运行下面的命令然后分析运行结果:
cat /proc/bus/input/devices
运行结果如下:
I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="20cc000.snvs:snvs-powerkey"
P: Phys=snvs-pwrkey/input0
S: Sysfs=/devices/soc0/soc/2000000.aips-bus/20cc000.snvs/20cc000.snvs:snvs-powerkey/input/input0
U: Uniq=
H: Handlers=kbd event0 evbug
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0
I: Bus=0018 Vendor=dead Product=beef Version=28bb
N: Name="goodix-ts"
P: Phys=input/ts
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=event1 evbug
B: PROP=2
B: EV=b
B: KEY=1c00 0 0 0 0 0 0 0 0 0 0
B: ABS=6e18000 0
分析如下:
从 cat /proc/bus/input/devices
的输出中,你可以根据以下几个关键点来识别触摸屏输入设备:
1. 设备名称 (N: Name=...
)
-
你有两个输入设备:
- “20cc000.snvs:snvs-powerkey”(电源按键)
- “goodix-ts”(可能是触摸屏)
-
goodix-ts
这个名称通常对应 Goodix 公司的触摸屏控制器,所以这个很可能是触摸屏设备。
2. 设备支持的事件类型 (B: EV=...
)
- 电源按键 (
snvs-powerkey
) 的EV=3
EV=3
仅表示键盘事件(EV_KEY
),说明它只是一个普通的按键设备。
goodix-ts
设备的EV=b
EV=b
表示EV_KEY
(0x01) 和EV_ABS
(0x03),说明它支持 绝对坐标输入,符合触摸屏的特征。
3. 绝对坐标 (B: ABS=...
)
- 触摸屏通常会包含 绝对坐标 (
EV_ABS
),用于检测手指的触摸位置:B: ABS=6e18000 0
ABS
代表 Absolute axes(绝对坐标),典型的触摸屏会报告 X/Y 轴坐标,而普通按键设备不会有这个字段。6e18000
这一串值对应 X/Y 轴数据,符合触摸屏的特征。
最终结论
从这些特征可以判断:
- 设备
"goodix-ts"
是触摸屏输入设备。 - 它的 事件设备节点是
/dev/input/event1
。
进一步验证分析结果是否正确
可以运行下面的命令将触摸屏的数值打印出来:
hexdump /dev/input/event1
上面这条命令运行完成后,用手点击触摸屏,能得到很多数值,如下图所示: