添加Reset按键,实现短按重启系统,长按复位系统

1、查看目前的gpio
cat /sys/kernel/debug/gpio
GPIOs 0-21, platform/10000600.gpio, 10000600.gpio:
 gpio-0   (S1               ) in  hi

显示系统已经添加S1按键

2、将S1改为reset按键,其中S1按键使用的是GPIO0管脚,高电平有效:
修改openwrt/trunk/target/linux/ramips/dts/MPRA2.dts这个配置文件:
    gpio-keys-polled {
        compatible = "gpio-keys-polled";
        #address-cells = <1>;
        #size-cells = <0>;
        poll-interval = <20>;
        wps {
            label = "reset"; //由S1改为reset
            gpios = <&gpio0 0 1>;
            linux,code = <0x198>;
        };
    };
按键名称为 reset 按键值为 0x198。为什么是0x198呢?
查看按键驱动的源码 gpio-button-hotplug.c
可以看到一个结构体数组 button_map[] 。该数组对键值做了映射

3、当用户按下按钮时,驱动会向应用层发送事件,最终执行 /etc/rc.button/reset 这个脚本,对

应的内容如下:
#!/bin/sh

[ "${ACTION}" = "released" ] || exit 0

. /lib/functions.sh

logger "$BUTTON pressed for $SEEN seconds"

if [ "$SEEN" -lt 2 ]
then
    echo "REBOOT" > /dev/console
    sync
    reboot
elif [ "$SEEN" -gt 5 ]
then
    echo "zllgateway file data FACTORY RESET" > /dev/console
    rm /zllgateway/*.dat
    killall zllgateway
fi

当按下reset按键不超过 2s 时,会执行 reboot 重启命令

当按下reset按键超过 5s 时,则清除文件,并停止程序,重启程序

4、在/openwrt/trunk/files/etc/rc.button目录下添加上面的reset脚本,重新make编译系统

RT5350 openwrt添加Reset按键,实现短按重启系统,长按复位系统相关推荐

  1. 为mt7620 RT5350添加reset按键

    openwrt 默认的 mt7620 rt5350 固件是不带 reset 引脚功能.需要我们自己去修改 dts 文件,增加 reset 引脚. 第一步先添加按键驱动: Symbol: PACKAGE ...

  2. [OpenWrt] reset按键处理流程(hotplug)

    OpenWrt reset按键处理流程(hotplug) 介绍 本文介绍OpenWrt的reset按键的处理过程.一般的路由器都存在一个reset按键,用来进行重启或者恢复出厂操作. 通常的操作对应为 ...

  3. 38 --> 详解 OpenWRT RESET按键、键盘响应逻辑

    OpenWrt 按键处理逻辑采用 hotplug 事件方式进行管理,reset按键,用来进行重启或者恢复出厂操作.热插拔事件流程:内核具有检测 键盘守护程序,gpio_button_hotplug 模 ...

  4. 如何实现按键的短按、长按检测?

    在电子产品中经常用到按键,尤其是经常需要MCU判断短按和长按这两种动作,本篇我们来专门聊下这个话题. 只谈理论太无聊,我们还是结合着实际应用来说明.之前写过一篇关于<CH573第一篇:实现自拍杆 ...

  5. 虚拟机给openwrt添加硬盘并且配置smb

    虚拟机给openwrt添加硬盘并且配置smb openwrt配置 添加硬盘 挂载硬盘1 挂载硬盘二 配置smb共享 参考文章 openwrt配置 https://blog.csdn.net/qq_43 ...

  6. Flask项目实战——6—(前台用户模型、前台登录注册、图形验证码、手机短信验证码、添加表单验证短信验证码请求)

    1.前台用户模型 前台用户模型定义 创建前台模型文件 apps/front/models.py # -*- encoding: utf-8 -*- """ @File : ...

  7. 乐鑫Esp32学习之旅⑦ esp32上利用GPIO中断做一个按键的短按和长按的回调事件,再也无须担心触发源。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  8. 华为交换机重制_FAQ:5700能否通过reset按键清空配置

    5700系列交换机目前暂无reset按键,清空配置的方法如下: 方法一:通过命令行恢复 1.系统视图下输入 [S5348TP-SI]undo startup saved-configuration 取 ...

  9. OpenWRT添加RTC时钟模块(DS1307)

    目的:自动运行有保障,不受断电困扰. 机器:GL-INET v1 有关该路由器的详细参数:https://revspace.nl/GL-iNet OpenWRT版本:Barrier Breaker T ...

最新文章

  1. 十个行为把你变成糟糕的程序员
  2. win10下装win7双系统_3步安装电脑双系统,win7+win10自由选择进入,你学会了吗?...
  3. (转)计算几何模板 - kuangbin
  4. gulp.js 自动化构建工具学习入门
  5. python装饰器记录每一个函数的执行时间
  6. 智能一代云平台(三十四):后端架构一些总结
  7. SysML建模工具学习笔记总结一
  8. 给大家分享一个QQ资料查询接口(等级,活跃,年龄,性别,身份卡)
  9. 随手写的绿色征途手游的脚本辅助代码
  10. Juc_无juc情况
  11. 项目管理成熟度模型及项目量化管理
  12. 安卓设备逐步升级Android 9,游戏产品该如何做适配?
  13. 什么是系统建模语言(SysML)?
  14. 【2017.11.30】3. Longest Substring Without Repeating Characters-最长字串不重复字符
  15. db block gets、consistent gets和physical reads
  16. PBOC2.0-PBOC3.0主要差异
  17. STM32浮点运算单元(FPU)和DSP库使用
  18. 生鲜配送系统开发解决方案
  19. ubuntu安装keepass2 中文乱码
  20. [微信小程序]文字溢出部分用三个点显示

热门文章

  1. DataGrid自动调整行高
  2. Solidity的函数类型以及可见性分析(类比Java)
  3. python调用mysql数据_python使用mysql数据库(虫师)
  4. java获取文件电脑路径
  5. 旅行的青蛙ios正版无限四叶草教程,正版!正版!App Store下载的那种
  6. ubuntu Times-Roman 字体安装
  7. 京东css3动画全屏海报_京东店铺装修安装全屏CSS3动态缩放效果海报,活动海报上添加透明素材自动缩放 ......
  8. midi是音乐与计算机相结合的产物,2008年江苏省“专转本”计算机应用基础真题与解答.doc...
  9. 掌握这些技术,你也能将婚礼拍得很精彩!
  10. 现代控制理论(3)——线性控制系统的能控性和能观性