zoukankan      html  css  js  c++  java
  • Openwrt Support RESET Button (5)

    1 Scope of Document
    This document describes how to support reset button under openwrt system
    2 Requiremen
    2.1 Function Requirement
    NA
    2.2 Performance Requirement
    NA
    3 Hardware Overview
    NA

    4 Functional Description
    4.1 Functional Block Diagram
    NA

    5 Porting
    5.1 Kernel porting
    Change dts for support reset button

    gpio-keys-polled {
    compatible = "gpio-keys-polled";
    #address-cells = <1>;
    #size-cells = <0>;
    poll-interval = <20>;
    reset {
    label = "reset";
    gpios = <&gpio0 1 1>;
    linux,code = <0x198>;
    };
    };
    corresponding to platfrom resoure struct

    struct gpio_keys_button {
    /* Configuration parameters */
    unsigned int code; /* input event code (KEY_*, SW_*) *///上报事件的code
    int gpio;//所用的gpio引脚
    int active_low;//是否低电平有效
    const char *desc; //该按键的描述符
    unsigned int type; /* input event type (EV_KEY, EV_SW, EV_ABS) */
    int wakeup; /* configure the button as a wake-up source */
    int debounce_interval; /* debounce ticks interval in msecs */
    bool can_disable;
    int value; /* axis value for EV_ABS */
    };

    5.2 System configure
    Reference: https://openwrt.org/docs/techref/sysupgrade
    Openwrt official innet use /bin/sysupgreade to do system upgrade
    We can extrace the simplest implementation method:

    #!/bin/sh

    add_conffiles() {
    rm $1 2>/dev/null
    local file="$1"
    ( find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p'
    /lib/upgrade/keep.d/* 2>/dev/null)
    -type f 2>/dev/null;
    opkg list-changed-conffiles) | sort -u > "$file"
    return 0
    }

    do_save_conffiles() {
    local conf_tar="$1"
    local conf_files="$2"
    tar zcf "$conf_tar" -T "$conf_files" 2>/dev/null
    # rm -f "$2"
    }

    do_restore_conffiles() {

    [ -e "$1" ] && tar -C /tmp/tmptest -xzf "$1"

    }


    if [ "$1" == "backup" ]
    then
    add_conffiles /mnt/backfile
    do_save_conffiles /mnt/backfile.tar.gz /mnt/backfile
    else
    mkdir /tmp/tmptest > 2>/dev/null
    do_restore_conffiles /mnt/backfile.tar.gz
    # need add do restart relate system service
    fi

  • 相关阅读:
    20165223 week6测试错题总结
    20165223《Java程序设计》第七周Java学习总结
    20165207 第八周学习总结
    2017-2018-2 20165207实验二《Java面向对象程序设计》实验报告
    20165207 第七周学习总结
    20165207 第六周学习总结
    20165207 实验一 Java开发环境的熟悉
    20165207 第五周学习总结
    20165207 第四周学习总结
    20165207 第三周学习总结
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/10244659.html
Copyright © 2011-2022 走看看