Luckfox Pico如何设置自启动?
Luckfox Pico如何设置自启动?
【自启动设置】
在 /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 作为参数。如果用户提供其他参数,脚本将显示用法信息并退出
举报