- udev: 70-canable.rules — gs_usb VID/PID 1d50:606f, names iface can0 and brings it up at 500 kbps on plug-in - systemd: can-bringup.service — oneshot service bound to sys-subsystem-net-devices-can0.device - scripts: can_setup.sh — manual up/down/verify helper; candump verify for VESC IDs 61 (0x3D) and 79 (0x4F) - install_systemd.sh updated to install can-bringup.service and all udev rules Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
56 lines
1.8 KiB
Bash
56 lines
1.8 KiB
Bash
#!/usr/bin/env bash
|
|
# install_systemd.sh — Install saltybot systemd services on Orin
|
|
# Run as root: sudo ./systemd/install_systemd.sh
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_DIR="$(dirname "${SCRIPT_DIR}")"
|
|
SYSTEMD_DIR="/etc/systemd/system"
|
|
DEPLOY_DIR="/opt/saltybot/jetson"
|
|
UDEV_DIR="/etc/udev/rules.d"
|
|
BRINGUP_SYSTEMD="${REPO_DIR}/ros2_ws/src/saltybot_bringup/systemd"
|
|
BRINGUP_UDEV="${REPO_DIR}/ros2_ws/src/saltybot_bringup/udev"
|
|
|
|
log() { echo "[install_systemd] $*"; }
|
|
|
|
[[ "$(id -u)" == "0" ]] || { echo "Run as root"; exit 1; }
|
|
|
|
# Deploy repo to /opt/saltybot/jetson
|
|
log "Deploying to ${DEPLOY_DIR}..."
|
|
mkdir -p "${DEPLOY_DIR}"
|
|
rsync -a --exclude='.git' --exclude='__pycache__' \
|
|
"${REPO_DIR}/" "${DEPLOY_DIR}/"
|
|
|
|
# Install service files
|
|
log "Installing systemd units..."
|
|
cp "${SCRIPT_DIR}/saltybot.target" "${SYSTEMD_DIR}/"
|
|
cp "${SCRIPT_DIR}/saltybot-social.service" "${SYSTEMD_DIR}/"
|
|
cp "${SCRIPT_DIR}/tailscale-vpn.service" "${SYSTEMD_DIR}/"
|
|
cp "${BRINGUP_SYSTEMD}/can-bringup.service" "${SYSTEMD_DIR}/"
|
|
|
|
# Install udev rules
|
|
log "Installing udev rules..."
|
|
mkdir -p "${UDEV_DIR}"
|
|
cp "${BRINGUP_UDEV}/70-canable.rules" "${UDEV_DIR}/"
|
|
cp "${BRINGUP_UDEV}/90-magedok-touch.rules" "${UDEV_DIR}/"
|
|
udevadm control --reload
|
|
udevadm trigger --subsystem-match=net --action=add
|
|
|
|
# Reload and enable
|
|
systemctl daemon-reload
|
|
systemctl enable saltybot.target
|
|
systemctl enable saltybot-social.service
|
|
systemctl enable tailscale-vpn.service
|
|
systemctl enable can-bringup.service
|
|
|
|
log "Services installed. Start with:"
|
|
log " systemctl start saltybot-social"
|
|
log " systemctl start tailscale-vpn"
|
|
log " systemctl start can-bringup"
|
|
log " journalctl -fu saltybot-social"
|
|
log " journalctl -fu tailscale-vpn"
|
|
log " journalctl -fu can-bringup"
|
|
log ""
|
|
log "Verify CAN bus: candump can0"
|
|
log " VESC CAN IDs: 61 (0x3D) and 79 (0x4F)"
|