openwrt在MT7620a中实现了自动挂载U盘或硬盘,
但是不能自动卸载,还得手动umount,
请问各大神如何实现一键umonut弹出u盘?
离线
这个脚本是什么情况下卸载呢?是拔掉U盘就自动卸载么?
离线
我现在想添加一个按键,当自动挂载上以后按下按键就umount,但是我现在不明白的是当按键按下触发异常以后是调用哪些路径下的脚本
离线
嗯嗯!对!我参考了一键复位来做的,一键复位中修改了DTS中MT7620a.dts文件来修改GPIO口:(下面的S2用来复位,准备用S3来做一键U盘弹出)
gpio-keys-polled {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <20>;
s2 {
label = "reset";
gpios = <&gpio0 1 1>;
linux,code = <0x198>;
};
s3 {
label = "S3";
gpios = <&gpio0 2 1>;
linux,code = <0x101>;
};
};
然后cd /etc/rc.button
vi reset 如下:
#!/bin/sh
[ "${ACTION}" = "released" ] || exit 0
. /lib/functions.sh
logger "$BUTTON pressed for $SEEN seconds"
if [ "$SEEN" -lt 1 ]
then
echo "REBOOT" > /dev/console
sync
reboot
elif [ "$SEEN" -gt 5 ]
then
echo "FACTORY RESET" > /dev/console
jffs2reset -y && reboot &
fi
return 0
这样就可以实现一键复位了,可是一键弹出U盘就不知该如何下手了
离线
在/etc/rc.button目录下有如下文件:
failsafe power reset rfkill
我是要在/etc/rc.button目录下建一个文件调用umount.sh 呢?还是在上面的哪一个文件里调用umount.sh 按键按下系统是怎么找到这个脚本文件的呢?这点我一直没想明白
离线
大哥你在贴子上的回复我看到了,我非常感谢你的热心帮助,,不过有点没太明白,具体疑问如下:我在DTS中定义了
就相当于给
BUTTON赋值为“reset”所以就去执行/etc/rc.button/下的reset里的脚本文件?如果在DTS里改成
是不是就去执行/etc/rc.button/下的hello(当然前提得有这个文件),你看我的理解对么?
离线
我在DTS中定义了:
label = "reset";
gpio-keys-polled {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <20>;
s2 {
label = "reset";
gpios = <&gpio0 1 1>;
linux,code = <0x198>;
};
s3 {
label = "S3";
gpios = <&gpio0 2 1>;
linux,code = <0x101>;
};
};
就相当于给
hotplug.json中有描述, 如果 uevent 中含有BUTTON 字符串, 而且SUBSYSTEM 为 "button", 则执行/etc/rc.button/下的 %BUTTON%脚本来处理。
BUTTON赋值为“reset”所以就去执行/etc/rc.button/下的reset里的脚本文件?如果在DTS里改成
label = "hello";
是不是就去执行/etc/rc.button/下的hello(当然前提得有这个文件),你看我的理解对么?
离线
不对!好像不是这样的,我在DTS中改了 label = "hello";
gpio-keys-polled {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <20>;
s2 {
label = "hello";
gpios = <&gpio0 1 1>;
linux,code = <0x198>;
};
s3 {
label = "S3";
gpios = <&gpio0 2 1>;
linux,code = <0x101>;
};
};
编译后固件里/etc/rc.button/ 没有hello这个脚本文件还是reset ,an按下按键依然可以复位,所以好像不是上面描述那样的
failsafe power reset rfkill
离线
我的意思是说经过我刚刚的改动 ,按之前的理解
hotplug.json中有描述, 如果 uevent 中含有BUTTON 字符串, 而且SUBSYSTEM 为 "button", 则执行/etc/rc.button/下的 %BUTTON%脚本来处理。
BUTTON赋值为“hello”了所以就去执行/etc/rc.button/下的hello脚本文件,但是/etc/rc.button/下没有hello这个文件,所以应该没有任何反应才对,但实际上板子却复位了
离线