RK3566 开机自动运行脚本
使用 /etc/init.d/ 脚本方式(更规范)
这是 Buildroot 推荐的方式,不会干扰 inittab 的 shell 启动流程。 原理就是在 /etc/init.d/ 目录下创建一个脚本,脚本名可以自定义,但是必须以 S99 开头,表示优先级。脚本内容如下:
bash
#!/bin/sh
case "$1" in
start)
echo "Starting myapp..."
# 后台启动,重定向 I/O
/usr/bin/myapp </dev/null >/dev/null 2>&1 &
;;
stop)
killall myapp 2>/dev/null
;;
esac注意:
这个脚本中: </dev/null >/dev/null 2>&1 & 这段代码的意思是: 将标准输入重定向到 /dev/null,标准输出和标准错误输出重定向到 /dev/null,并以后台进程的方式运行。 如果不加这一行,那么执行后,串口的终端就没法输入了,它占用了串口终端.
那么这个脚本如何添加至开发板的系统目录中呢? 那就需要用到 Buildroot 的 rootfs_overlay 配置了.
- 创建一个目录,例如
sdk/buildroot/board/rockchip/tspi/fs-overlay/etc/init.d/S99qt55,用于存放自定义的文件。这里的 S表示Start,99表示优先级,数字越小优先级越高。后面是程序的名称,可以随便定义. - 将脚本的内容复制至
S99qt55文件中。 - 需要在
make menuconfig中选择System configuration -> Root filesystem overlay directories选项,并添加board/rockchip/tspi/fs-overlay目录。重点
