Linux 初始化脚本

Systemd 单元文件示例

根据需要进行调整,并放到 /etc/defaults/ardupilot 中

# ArduPilot 配置选项

# 串行端口配置
# 取消注释并根据需要更新
# 更多信息,请参阅 dev wiki 中 "ArduPilot on Linux" 下的 "Startup Options"。
#SERIAL0=--serial0 tcp:192.168.1.26:12345:nowait
#SERIAL1=--serial1 /dev/ttyS0
#SERIAL2=
#SERIAL3=
#SERIAL4=
#SERIAL5=
#SERIAL6=
#SERIAL7=
#SERIAL8=
#SERIAL9=

# 更改日志目录(可选)
#LOG_DIRECTORY=--log-directory /var/APM/logs

# 更改地形目录(可选)
#TERRAIN_DIRECTORY=--terrain-directory /var/APM/terrain

# 更改存储路径(可选)
#STORAGE_DIRECTORY=--storage-directory /var/APM/storage

# 配置 CPU 耦合性(可选)
#CPU_AFFINITY=--cpu-affinity 1 #单个 CPU,或范围(1-3)

这个针对特定板卡的一次性脚本应包含运行 ardupilot 所需的任何系统级配置。根据需要进行调整,并放入 /etc/systemd/system/ardupilot-sysconfig.service 中。

[单位]
说明=配置 系统 对于 实时 操作

[服务]
类型=连发

# 将 CPU 调速器锁定在最高速度,以减少时钟树变化引起的抖动
# 更多信息,https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt
执行启动=/箱柜/ -c "/bin/echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor";

这个针对特定构建类型的脚本包含启动选项。请根据需要(按构建类型)进行调整,并将其放入 /etc/systemd/system/arduplane.service 中。

[Unit] Description=ArduPlane Service After=ardupilot-sysconfig.service Requires=ardupilot-sysconfig.service # 不要尝试同时运行多个 ardupilot 服务,因为它们几乎肯定会发生冲突。Conflicts=arducopter.service ardupilot.service ardurover.service [Service] #使用 /etc/default/ardupilot 中配置的环境运行 arduplane EnvironmentFile=/etc/default/ardupilot # 有关详细信息,请参阅 dev wiki 中 "ArduPilot on Linux" 下的 "启动选项"。# 根据电路板配置串行端口。# 根据电路板配置或移除 cpu-affinity。ExecStart=/usr/local/bin/arduplane \ $SERIAL0 \ $SERIAL1 \ $SERIAL2 \ $SERIAL3 \ $SERIAL4 \ $SERIAL5 \ $SERIAL6 \ $SERIAL7 \ $SERIAL8 \ $SERIAL9 \ $LOG_DIRECTORY \ $TERRAIN_DIRECTORY \ $STORAGE_DIRECTORY \ $CPU_AFFINITY Restart=on-失败失败 [Install] WantedBy=multi-user.目标

开始 苏都 systemctl 启动 arduplane.检查一下、 苏都 systemctl 地位 arduplane.重新启动 苏都 systemctl 重新启动 arduplane.停止、 苏都 systemctl 停止 arduplane.要启用开机启动服务、 苏都 systemctl 以便 arduplane 请注意,一次只能运行一个构建程序。