ZHCAG72 September 2026
Linux启动后第一个启动的是/sbin/init程序,可以使用自定义的启动脚本替换该程序。替换时需要先创建脚本,接着将/sbin/init删除,最后使用ln -sf <your script> /sbin/init命令将自定义脚本软连接为启动程序。
以下是一个CMS 快速启动的参考脚本。该脚本最终启动edgeai-tiovx-apps-main应用程序。该脚本首先执行一些mount命令以挂载必要的分区;接着使用modprobe命令加载一些必要的模组,包括相机驱动,csi-rx,v4l2等用于摄像头数据的接入,rpmsg等用于与AI DSP和执行ISP的R核通信,tidss以及display_connecter用于显示;然后export一些环境变量为最后的运行服务做准备;最终运行edgeai-tiovx-apps-main可执行程序。
#!/bin/sh
set -x
export PATH=/usr/bin:/sbin:/bin
export LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
mount -t proc proc /proc
mount -n -t sysfs sysfs /sys
mount -t debugfs debugfs /sys/kernel/debug
mount -t configfs configfs /sys/kernel/config
mount -t efivarfs efivarfs /sys/firmware/efi/efivars
mount -n -t tmpfs none /run
mount -n -t devtmpfs devtmpfs /dev
mkdir -p /dev/shm
chmod 1777 /dev/shm
mount -t tmpfs /dev/shm
export SOC=am62a
export DEVICE_NAME=AM62A
# Load essential kernel modules
insmod /lib/modules/6.6.58-ti-01497-ga7758da17c28-dirty/kernel/drivers/rpmsg/rpmsg_char.ko
insmod /lib/modules/6.6.58-ti-01497-ga7758da17c28-dirty/kernel/drivers/rpmsg/rpmsg_ctrl.ko
modprobe sii902x
modprobe tidss
modprobe display_connector
modprobe ti_k3_r5_remoteproc
modprobe ti_k3_dsp_remoteproc
modprobe omap_mailbox
modprobe cdns_csi2rx
modprobe j721e_csi2rx
modprobe v4l2_cci
modprobe videobuf2_dma_contig
modprobe v4l2_fwnode
modprobe videobuf2_memops
modprobe videobuf2_v4l2
modprobe videobuf2_common
modprobe v4l2_async
modprobe videodev
modprobe cdns_dphy_rx
modprobe mc
modprobe imx219
ulimit -c unlimited
echo "/tmp/core.%e.%p" > /proc/sys/kernel/core_pattern
export EDGEAI_GST_APPS_PATH=/opt/edgeai-gst-apps
export EDGEAI_DATA_PATH=/opt/edgeai-test-data
export OOB_DEMO_ASSETS_PATH=/opt/oob-demo-assets
export MODEL_ZOO_PATH=/opt/model_zoo
export EDGEAI_VERSION=10.1
export EDGEAI_SDK_VERSION=10_01_00
bash /opt/edgeai-gst-apps/scripts/setup_cameras.sh
./opt/edgeai-tiovx-apps/bin/Release/edgeai-tiovx-apps-main ./opt/edgeai-tiovx-apps/configs/linux/imx219_cam_example.yaml &
echo "System initialized: Hello world!!!!!!"
/bin/sh