概述
关于DFB键盘还有鼠标输入怎么能够做到即插即用呢?这个问题困扰了我很长时间,我的想法是
1.对于设备节点如果打不开就用轮询的方式只要设备FD不成功就不断的轮询打开,然后再打开后读写过程中,一旦有读写失败超时一段时间(可能是因为鼠标或者键盘拔出导致的读写失败)后就继续会到轮询打开的地方不断地打开(重新打开键盘或者鼠标)。
2.有一个固定的设备节点即使鼠标或者键盘不插入也存在的节点。如果鼠标或者键盘不存在我们仍然可以打开它,但是读取操作会阻塞。知道有了键盘或者鼠标的时候我们才能从该FD里面读取数据。
因为开发板是我们自己一直在裁剪的内核所以裁剪下来的东西比较多。很可能对于一些东西都不支持,观察/dev/input下面没有标准PC上面的mice(13,63),节点,而我从标准PC上cat /dev/input/mice 的时候是有乱码数据读取到终端上显示的。于是可以确定我们的开发板内核没有一个模块,在网上搜索了一下 大概是mousedev这个模块,插入后 mice节点出现,和PC达到了一样的效果,DFB编译ps2mouse驱动后鼠标变得正常。
linux读取键盘和虚拟终端有关系,而主设备号为4 ,次设备号为0的就是当前的虚拟终端,如果你现在在tty1上,那么tty0就等于tty1,如果你现在在tty2上那么tty0就等于tty2,于是使用DFB 的keyboard驱动读取/dev/tty0,一切正常。
而且键盘和鼠标都能做到即插即用,设备节点一直存在,而且能不能读到数据就是下层驱动可以做到,不用我们关心。使用了第2种方式,没有对DFB代码进行更改。
最后
以上就是忐忑巨人为你收集整理的 DirectFB输入的问题的全部内容,希望文章能够帮你解决 DirectFB输入的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复