Luckfox Pico如何设置自启动?程序脚本开机自启动

2023-12-11 15:32:50 提问

Luckfox Pico如何设置自启动?

我来答
浏览 1473 次
已有1个回答
斑梨用户8
回答时间:
2023-12-11 15:40:46

【自启动设置​】

在 /etc/init.d/ 中有相关的系统脚本。系统开机后,会先执行 rcS,在这个脚本里面,会循环去执行S开头脚本的start分支。系统关机时,会先执行 rcK,在这个脚本里面,也是循环去执行S开头的脚本的stop分支。所以如果我们需要添加一个脚本在开机时执行,可以按以下步骤操作:

步骤1】需要在 /etc/init.d/ 目录里新建一个 S??* 的脚本。

S:表示以S开头

??:表示中间是两个字符串,建议加两个数字表示优先级,数字越小开机时越先执行,关机时越后执行

*:表示加任意字符串,用来描述脚本的功能

步骤2】并且在脚本里实现 start 和 stop 分支。

步骤3】给脚本添加权限,可以执行:

chmod 775 脚本名


#!/bin/sh

case $1 in
start)
echo "start"
;;
stop)
echo "stop"
;;
*)
exit 1
;;
esac

步骤4】提高系统自带的脚本优先级。

mv S99usb0config S90usb0config 
mv S99_auto_reboot S90_auto_reboot

步骤5】例如设置一个 LED 开机常亮。

 #!/bin/sh

GPIO_PIN=55 # 设置GPIO引脚号

case $1 in
start)
echo "Starting..."
if [ ! -e /sys/class/gpio/gpio$GPIO_PIN ]; then
echo $GPIO_PIN > /sys/class/gpio/export
fi
echo out > /sys/class/gpio/gpio$GPIO_PIN/direction
echo 0 > /sys/class/gpio/gpio$GPIO_PIN/value
echo "Started."
;;

stop)
echo "Stopping..."
if [ -e /sys/class/gpio/gpio$GPIO_PIN ]; then
echo $GPIO_PIN > /sys/class/gpio/unexport
fi
echo "Stopped."
;;

*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

备注:  

使用变量 GPIO_PIN 来指定GPIO引脚号

在 start 操作中,使用条件语句检查 GPIO 引脚是否已经导出,避免重复导出

在 stop 操作中,使用条件语句检查 GPIO 引脚是否已经导出,避免重复卸载

对脚本参数的检查,以确保用户只能使用 start 或 stop 作为参数。如果用户提供其他参数,脚本将显示用法信息并退出


点赞0

举报