今天在致友发了个请教帖:http://weibo.kedacom.com/feed/35510
得到公司众多内核大神的解答,在此感谢。
看来要对Linux内核摸一把了,其实今天的折腾来自NVR的一个问题,鼠标在静置一段时间后会没有反应,貌似是autosuspend了。
情况未明,从测试角度而言,我们可以做的是:
1.反复插拔鼠标。
可以通过echo 相关参数到 power管理来进行控制。
2.自动化鼠标移动,统计suspend的点。
今天折腾的就是第二个。
在网上学习了input.h,底层是可以直接模拟鼠标,键盘控制的,随即折腾了一把,亲测已经成功:
首先,我们需要准备一个ARM-Linux-GCC的交叉编译环境,此处省略教程。
接着看一下插拔设备时的信息:
这里可以看到鼠标插上时的Handle为event0,原理很简单,我们只要对这个fd发送模拟请求就可以了。
我们的NVR设备ARM板的event0位置需要重新find一下:
find / -name event0
找到位置后,就可以折腾代码了。
代码目前成功编译通过,且亲测可用。
但是,目前来讲。
1. 不能实现平滑移动鼠标来自动化。
2. 需要整合截取autosuspend的状态。
附件为我已经编译好的mouseslim,这个只能在ARM板上运行。
直接chmod 777 mouseslim
完了之后./运行即可。
你将看到鼠标指针自动在屏幕上移动。