关闭

OpenWrt自定义按键功能

410人阅读 评论(0) 收藏 举报
分类:

procd buttons

通过procd处理的button,可以通过 /etc/rc.button/*  的脚本实现自定义功能

Hotplug Buttons

注意:在r37132中引入procd后,hotplug2已经从默认包中移除了,但是在r37336:procd:使hotplug button 有效。

Preliminary steps

第一步:获取当前按钮的名字,运行下面的命令

#mkdir -p /etc/hotplug.d/button
创建/etc/hotplug.d/button/buttons文件,并输入一下内容
#vim buttons

#!/bin/sh
logger the button was $BUTTON and the action was $ACTION

现在按动按钮,然后在终端输入logread:
Jan 1 00:01:15 OpenWrt user.notice root: BTN_1   
Jan 1 00:01:15 OpenWrt user.notice root: pressed   
Jan 1 00:01:16 OpenWrt user.notice root: BTN_1    
Jan 1 00:01:16 OpenWrt user.notice root: released 
则刚才所按动的按钮为BTN_1

第二步:编写00-button

在/etc/hotplug.d/button/下面创建00-button文件,并输入下面的内容:
#!/bin/sh
. /lib/functions.sh
do_button () {
        local button
        local action
        local handler
        local min
        local max
 
        config_get button $1 button
        config_get action $1 action
        config_get handler $1 handler
        config_get min $1 min
        config_get max $1 max
 
        [ "$ACTION" = "$action" -a "$BUTTON" = "$button" -a -n "$handler" ] && {
                [ -z "$min" -o -z "$max" ] && eval $handler
                [ -n "$min" -a -n "$max" ] && {
                        [ $min -le $SEEN -a $max -ge $SEEN ] && eval $handler
                }
        }
}
 
config_load button
config_foreach do_button button
注意两点:1、查看functions.sh做在的目录,不是在lib下面就是在etc下面;2、config_load button ,其中的button是/etc/config/下的button配置的文件名;

第三步:添加uci配置文件button:


在/etc/config/下创建button文件,添加一下内容:
config button reboot
        option button 'BTN_1'
        option action 'released'
        option handler 'echo "reboot" > /dev/console;sync;reboot'
        option min '0'
        option max '4'

config button factory_reset
        option button 'BTN_1'
        option action 'released'
        option handler 'echo "factory reset" > /dev/console;jffs2reset -y && reboot &'
        option min '5'
        option max '10'

option button :button的名字
option action :button事件触发的动作
option handler:触发后执行动作
option min ,option max :触发时间段

上面的配置文件将BTN_1 定义成了两种功能按钮:
1、0-4秒内重启;
2、5-10秒内恢复出厂设置


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6749次
    • 积分:573
    • 等级:
    • 排名:千里之外
    • 原创:47篇
    • 转载:22篇
    • 译文:3篇
    • 评论:0条