您现在的位置是:首页 >技术教程 >20250207在飞凌的OK3588-C开发板的Linux R4系统下配置开机自启动脚本网站首页技术教程

20250207在飞凌的OK3588-C开发板的Linux R4系统下配置开机自启动脚本

南棱笑笑生 2025-03-05 12:01:01
简介20250207在飞凌的OK3588-C开发板的Linux R4系统下配置开机自启动脚本

20250207在飞凌的OK3588-C开发板的Linux R4系统下配置开机自启动脚本
2025/2/7 13:57


缘起,突然接到紧急任务,需要在飞凌的OK3588-C开发板上测试50片底板,接SONY索尼的HDMI接口的8530机芯测试。
自己测试7片,配置成为了开机自启动模式,剩下的43片移交给硬件测试了。


飞凌的OK3588-C开发板上面的脚本可以参考/etc/init.d目录下的文件写即可。
有Rockchip指定的格式。


S88start8530.sh

#!/bin/sh


export XDG_RUNTIME_DIR=/var/run/
export LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/app/bin
DESC="viewlink app"

# 要检查的目录
check_dir="/app"
# 需要重命名的目录
bak_dir="/app_bak"
save_bak_dir="/app_save_bak"
new_name="/app"

exclude_dir="/app/boa/log"

check_file_empty(){
    empty_files=$(find /app -type f ! -path "/app/boa/log/*" ! -path "/app/osd_bmp/*" -size 0)

    if [ -n "$empty_files" ]; then
        echo "Found empty files:"
        echo "$empty_files"
        rm $check_dir -rf
        # 检查bak目录是否存在
        if [ -d $bak_dir ]; then
            # 重命名bak目录为app
            mv $bak_dir $new_name
            echo "Directory $bak_dir has been renamed to $new_name."
        else
            echo "Directory $bak_dir does not exist."
            cp $save_bak_dir $new_name -rf
        fi
    else
        echo "No empty files found."
    fi
}

check_update() {
    if [ -d /app_bak ]; then
        rm -rf /app_bak
    fi
    if [ -d /update/app ]; then
        mv /app /app_bak
        mv /update/app /app
        chmod -R 777 /app
    else
        echo "do not update"
    fi
}

start() {
        #check_update
        #check_file_empty
        # sleep 5
        gst-launch-1.0 v4l2src device=/dev/video8 ! videoconvert !  video/x-raw, format=NV16 ! waylandsink
        #cp /app/lib/* /usr/lib -rf
        #/app/bin/viewlink_app > /app/bug.log 2>1 &
        echo "viewlink_app start"
}

stop() {
        # kill -9 $(pidof rtsp_server)
        # echo "rtsp_server stop"
        kill -9 $(pidof viewlink_app)
        echo "viewlink_app stop"
}

restart() {
        stop
        start
}


case "$1" in
    start)

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

exit $?


通过adb将S88start8530.sh推送到/etc/init.d之后,发现没有可执行权限,给加上。


root@ok3588:/# cd /etc/init.d
root@ok3588:/etc/init.d# ll
sh: ll: command not found
root@ok3588:/etc/init.d# 
root@ok3588:/etc/init.d# 
root@ok3588:/etc/init.d# ls -l
total 132
-rwxr-xr-x 1 root root  1012 Mar  9  2023 S01syslogd
-rwxr-xr-x 1 root root  1004 Mar  9  2023 S02klogd
-rwxr-xr-x 1 root root  2804 Mar  9  2023 S02sysctl
-rwxr-xr-x 1 root root   428 Mar  9  2023 S10async_commit.sh
-rwxr-xr-x 1 root root  1594 Mar  9  2023 S10udev
-rwxr-xr-x 1 root root  1684 Mar  9  2023 S20urandom
-rwxr-xr-x 1 root root 12121 Mar  9  2023 S21mountall.sh
-rwxr-xr-x 1 root root  1619 Mar  9  2023 S30dbus
-rwxr-xr-x 1 root root   820 Mar  9  2023 S35iptables
-rwxr-xr-x 1 root root  1001 Mar  9  2023 S40bluetooth
-rwxr-xr-x 1 root root   438 Mar  9  2023 S40network
-rwxr-xr-x 1 root root   457 Mar  9  2023 S40rkaiq_3A
-rwxr-xr-x 1 root root   901 Mar  9  2023 S49weston
-rwxr-xr-x 1 root root  1354 Mar  9  2023 S50dropbear
-rwxr-xr-x 1 root root   576 Mar  9  2023 S50lighttpd
-rwxr-xr-x 1 root root   724 Mar  9  2023 S50matrix-browser
-rwxr-xr-x 1 root root   871 Mar  9  2023 S50pulseaudio
-rwxr-xr-x 1 root root   532 Mar  9  2023 S50sshd
-rwxr-xr-x 1 root root 10619 Mar  9  2023 S50usbdevice
-rwxr-xr-x 1 root root   431 Mar  9  2023 S70vsftpd
-rwxr-xr-x 1 root root   427 Mar  9  2023 S80dnsmasq
-rwxr-xr-x 1 root root   905 Mar  9  2023 S98Bluez_init
-rwxr-xr-x 1 root root   293 Mar  9  2023 S99chromium-wayland.sh
-rwxr-xr-x 1 root root   468 Mar  9  2023 S99input-event-daemon
-rwxr-xr-x 1 root root   296 Mar  9  2023 S99qtwebengine.sh
-rw-rw-rw- 1 root root  1633 Feb  7  2025 S88start8530.sh
-rw-r--r-- 1 root root   471 Mar  9  2023 ninfod.sh
-rwxr-xr-x 1 root root   423 Mar  9  2023 rcK
-rwxr-xr-x 1 root root   408 Mar  9  2023 rcS
root@ok3588:/etc/init.d# sync
root@ok3588:/etc/init.d# 
root@ok3588:/etc/init.d# chmod 777 S88start8530.sh 
root@ok3588:/etc/init.d# 
root@ok3588:/etc/init.d# ls -l
total 132
-rwxr-xr-x 1 root root  1012 Mar  9  2023 S01syslogd
-rwxr-xr-x 1 root root  1004 Mar  9  2023 S02klogd
-rwxr-xr-x 1 root root  2804 Mar  9  2023 S02sysctl
-rwxr-xr-x 1 root root   428 Mar  9  2023 S10async_commit.sh
-rwxr-xr-x 1 root root  1594 Mar  9  2023 S10udev
-rwxr-xr-x 1 root root  1684 Mar  9  2023 S20urandom
-rwxr-xr-x 1 root root 12121 Mar  9  2023 S21mountall.sh
-rwxr-xr-x 1 root root  1619 Mar  9  2023 S30dbus
-rwxr-xr-x 1 root root   820 Mar  9  2023 S35iptables
-rwxr-xr-x 1 root root  1001 Mar  9  2023 S40bluetooth
-rwxr-xr-x 1 root root   438 Mar  9  2023 S40network
-rwxr-xr-x 1 root root   457 Mar  9  2023 S40rkaiq_3A
-rwxr-xr-x 1 root root   901 Mar  9  2023 S49weston
-rwxr-xr-x 1 root root  1354 Mar  9  2023 S50dropbear
-rwxr-xr-x 1 root root   576 Mar  9  2023 S50lighttpd
-rwxr-xr-x 1 root root   724 Mar  9  2023 S50matrix-browser
-rwxr-xr-x 1 root root   871 Mar  9  2023 S50pulseaudio
-rwxr-xr-x 1 root root   532 Mar  9  2023 S50sshd
-rwxr-xr-x 1 root root 10619 Mar  9  2023 S50usbdevice
-rwxr-xr-x 1 root root   431 Mar  9  2023 S70vsftpd
-rwxr-xr-x 1 root root   427 Mar  9  2023 S80dnsmasq
-rwxr-xr-x 1 root root   905 Mar  9  2023 S98Bluez_init
-rwxr-xr-x 1 root root   293 Mar  9  2023 S99chromium-wayland.sh
-rwxr-xr-x 1 root root   468 Mar  9  2023 S99input-event-daemon
-rwxr-xr-x 1 root root   296 Mar  9  2023 S99qtwebengine.sh
-rwxrwxrwx 1 root root  1633 Feb  7  2025 S88start8530.sh
-rw-r--r-- 1 root root   471 Mar  9  2023 ninfod.sh
-rwxr-xr-x 1 root root   423 Mar  9  2023 rcK
-rwxr-xr-x 1 root root   408 Mar  9  2023 rcS
root@ok3588:/etc/init.d# 


简单起见,可以参考S50sshd写了:
#!/bin/sh
#
# sshd        Starts sshd.
#

# Make sure the ssh-keygen progam exists
[ -f /usr/bin/ssh-keygen ] || exit 0

umask 077

start() {
    # Create any missing keys
    /usr/bin/ssh-keygen -A

    printf "Starting sshd: "
    /usr/sbin/sshd
    touch /var/lock/sshd
    echo "OK"
}
stop() {
    printf "Stopping sshd: "
    killall sshd
    rm -f /var/lock/sshd
    echo "OK"
}
restart() {
    stop
    start
}

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

exit $?

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。