您的位置:首页 > 运维架构

openwrt 按键处理

2015-09-19 23:57 204 查看

写给自己的话:

浑浑噩噩过了三年,折腾来折腾去,自己都忘了自己到底要做什么,很多东西做了又忘了,也从来没做过什么总结,就算有吧也不知道放哪里去了,最近发现自己做过的东西过段时间就忘了,也许是记忆力下降?好记性不如烂笔头吧,遂决定把自己知道的东西,不论大小,能记下来的就记下来,已备参考。

openwrt下button用法

关于openwrt下button的用法在wiki上有详细的说明,以下是其链接:http://wiki.openwrt.org/doc/howto/hardware.button

内核实现原理:

openwrt本身提供了两个内核模块,一个是已包给出的,叫gpio-button-hotplug,这个模块无需依赖input子系统就可以独立工作,它利用工作队列,本质上是内核线程,去轮询GPIO的状态,一旦注册的GPIO状态改变,就会发送一个netlink广播消息到用户空间,hotplug2会捕捉到消息,然后调用/etc/hotpulg.d/button/目录下脚本。

第二种方式跟前一种原理上是差不多的,openwrt以内核补丁的形式给出了一个叫gpio-button-keys-polled的内核模块,此模块会依赖input子系统,当有EV_KEY事件发生事调用注册的handler,也就是广播netlink事件到用户空间,进而捕捉按键事件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: