#!/usr/bin/env bash set -euo pipefail PKG_NAME="controller" PKG_VERSION="$(date +%Y%m%d%H%M)" ARCH="arm64" MAINTAINER="LYQ" DESCRIPTION="Binary package of remote controller nodes for robot (ROS2 foxy)." INSTALL_DIR="/opt/${PKG_NAME}" WORKDIR="$(pwd)/deb_build" INSTALL_SRC="$(pwd)/install" # 清理工作目录 rm -rf "${WORKDIR}" mkdir -p "${WORKDIR}/${INSTALL_DIR}" mkdir -p "${WORKDIR}/DEBIAN" # 复制 ROS2 install 文件 cp -a "${INSTALL_SRC}/." "${WORKDIR}/${INSTALL_DIR}/" # control 文件 cat > "${WORKDIR}/DEBIAN/control" < "${WORKDIR}/${INSTALL_DIR}/can.sh" <<'EOF' #!/bin/bash # Script: can.sh # Description: Configures CAN interface can0 on startup if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" exit 1 fi if ip link show can0 &> /dev/null; then ip link set can0 down fi modprobe can modprobe can_raw modprobe mttcan ip link set can0 type can bitrate 500000 ip link set up can0 if [[ $? -ne 0 ]]; then echo "Error configuring CAN interface can0" exit 1 fi echo "CAN interface can0 configured successfully" exit 0 EOF chmod +x "${WORKDIR}/${INSTALL_DIR}/can.sh" # ============================ # 创建 start_all.sh (aiec 用户执行) # ============================ cat > "${WORKDIR}/${INSTALL_DIR}/start_all.sh" < "${WORKDIR}/etc/systemd/system/${PKG_NAME}-can.service" < "${WORKDIR}/etc/systemd/system/${PKG_NAME}.service" < "${WORKDIR}/etc/logrotate.d/${PKG_NAME}" < "${WORKDIR}/DEBIAN/postinst" < "${WORKDIR}/DEBIAN/postrm" <