RT5350 openwrt新增Reset按鍵,實現短按重啟系統,長按復位系統
阿新 • • 發佈:2019-02-09
新增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 重啟命令
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編譯系統