不同芯片对底层驱动的实现可能不同,但适配遥控器的时候,必定有一个步骤就是通过找到kl文件来匹配键值,如果kl文件有多个,如何找到自己所对应的那个呢,我的方法主要是以下两个步骤就可以确定:
1.使用cat/proc/bus/input/devices命令查看所有的设备信息(
root@test:/ # cat proc/bus/input/devices
I: Bus=0010 Vendor=0001 Product=0001 Version=0100
N: Name="ce_keypad"
//省略余下无关内容
这里罗列了各个输入设备信息,但现在并不知道我们的遥控器匹配的是哪一个设备,但这里可以确定各个设备的Vendor, Product,Version信息,需要知道的是,我们的kl文件命名就是根据这三个的值确定的,下一步就是确定具体哪个设备。
- 使用getevent -l 命令确定具体kl信息
root@test:/ # getevent -l
could not get driver version for /dev/input/mouse0, Not a typewriter
add device 1: /dev/input/event0
name: "ce_keypad"
//省略中间无关内容
/dev/input/event0: EV_KEY KEY_RIGHTCTRL DOWN
/dev/input/event0: EV_SYN SYN_REPORT 00000000
我们在输入getevent -l 命令的时候再按遥控器键值的时候,就可以看到新增了以/dev/input/event0开头的两列数据,而event0对应的是以ce_keypad名字的设备,然后我们再去第一步中找,就可以确定遥控器的kl文件的Vendor=0001 Product=0001 Version=0100了,最终可以确定匹配的kl文件为:Vendor_0001_Product_0001(_Version_0100).kl。