输入子系统是Linux专门为输入类设备编写的一个子系统(框架)。从而规范驱动开发,降低开发难度。并且驱动的通用性兼容会更好。
如何判断节点对应的设备
1设备名
input子系统的设备节点是有规律的。可以分为通用设备名和专用设备名。
专用设备名:从名字上可以看出设备是什么。比如是鼠标还是键盘
通用设备名:从名字上看不出设备是什么。
可以通过一下命令查看,本机有哪些输入设备
ls /dev/input/
2判断哪个节点对应哪个设备呢:
试探性方法:使用cat命令打开文件,然后操作物理设备。观察终端是否有输出。
cat /dev/input/event0
对于上传的乱码信息,可以通过hexdump来查看,默认采用十六进制显示
hexdump /dev/input/event6
查看输入设备信息方法: cat /proc/bus/input/devices该 文件记录了当前系统的所有输入
设备的信息。
例如罗技鼠标设备
鼠标属性含义:
I: Bus=0003 Vendor=046d Product=c52f Version=0111:总线类型为0003,供应商ID为046d ,产品ID为c52f,版本号为0111。.
N: Name=“Logitech USB Receiver”:设备名称为"Logitech USB Receiver"
P: Phys=usb-fc880000.usb-1.1/input0:物理路径为usb-0000:02:00.0-1/input0.
S: Sysfs=/devices/platform/fc880000.usb/usb2/2-1/2-1.1/2-1.1:1.0/0003:046D:C52F.0001/input/input6:设备在sysfs文件系统中的路径。
U: Uniq=:唯一标识符为空。
H: Handlers=event6 dmcfreq 设备处理程序(event6和dmcfreq )用于处理鼠标事件。
B: PROP=0:属性值为0。
B: EV=17:支持的事件类型为17。
B: KEY=ffff0000 0 0 0 0:支持的按键类型为ffff0000 ,其他都为0.
B: REL=1943:支持的相对位置信息。
B: MSC=10:支持的杂项事件类型为10。