认识linux input子系统 (一)
-0-.序
本来只是想写个内核态的键盘记录的,但是发现现在的linux驱动模型已经和以前版本不同,增加了input层,几乎所有的底层驱动都把数据封装在event里上报给input子系统,这样一来,kernel看起来更加模块化,但是没有原来键盘驱动那种一站通的感觉了。
于是研究起input层比起键盘记录更有意思了:)这里只是记录下自己学习后理清的思路,其实自己学习过程挺乱的,最近才有所感悟input层,毕竟硬件的底子我是没有的。
-1-.从用户层看input(event事件)
经常捣鼓linux一定会对/dev,/sys,/proc这几个目录有所印象,这是从内核导出到用户层的接口(从这里几乎可以观览内核)。这下就方便了,kernel为我们导出了input在用户态的接口,就是/dev/input/下的接口,这里我们只关注此目录下的eventX字符设备。
那么这些eventX是干什么用的?简单来说就是我们对计算机的输入(包括敲击键盘,移动鼠标等等操作)经过内核(底层驱动,input)处理最后就上报到这些eventX里面了。
而这里event0,event1,..就是用来区分各个外设的,可以通过命令来查看外设具体和哪个event相关联:
cat /proc/bus/input/devices这里结果比较多,应为现在PC外设也蛮多的,我们可以看下键盘对应的条目,这里我截取2段:
I: Bus=0011 Vendor=0001 Product=0001 Version=ab54
N: Name="AT Translated Set 2 ke
如果觉得《linux的input命令 认识linux input子系统(一)》对你有帮助,请点赞、收藏,并留下你的观点哦!