0c45e68045
Temperatures, CPU/GPU load, memory, module power, fan, WiFi/LTE/tablet links and the UPS battery (INA219, read-only) as envelopes on yukart/host/<signal>, once a second. Built natively on the development Orin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
43 lines
2.0 KiB
Bash
Executable File
43 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Build orin-status natively on the development Orin, check it against the car's
|
|
# glibc, and install it on the car Orin as the yukart-orin-status service.
|
|
#
|
|
# usage: scripts/deploy-orin-status.sh [host] (default: mikkeli-orin-nano)
|
|
# env: BUILD_HOST (default: mikkeli-orin-nano-2)
|
|
#
|
|
# Builds what is pushed, not the working tree: the build host pulls master of
|
|
# svc-core and contracts under ~/dev/yukart/. Native on purpose: orin-status runs
|
|
# mmcli, and std::process::Command cross-compiled against the workstation's newer
|
|
# glibc links GLIBC_2.39 symbols the car cannot load.
|
|
set -euo pipefail
|
|
|
|
HOST="${1:-mikkeli-orin-nano}"
|
|
BUILD_HOST="${BUILD_HOST:-mikkeli-orin-nano-2}"
|
|
cd "$(dirname "$0")/.."
|
|
BIN="$(mktemp -d)/orin-status"
|
|
|
|
ssh "$BUILD_HOST" 'set -e
|
|
mkdir -p ~/dev/yukart && cd ~/dev/yukart
|
|
for r in svc-core contracts; do
|
|
[ -d $r ] || git clone -q http://192.168.2.199:3005/yukart/$r.git
|
|
git -C $r pull -q --ff-only
|
|
done
|
|
cd svc-core && ~/.cargo/bin/cargo build --release --bin orin-status 2>&1 | tail -1
|
|
git log --oneline -1'
|
|
scp -q "$BUILD_HOST:dev/yukart/svc-core/target/release/orin-status" "$BIN"
|
|
scripts/check-glibc.sh "$BIN"
|
|
|
|
# Binary lives under ~/infra per the host repo's guidelines; /usr/local/bin gets a symlink.
|
|
ssh "$HOST" 'mkdir -p ~/infra/svc-core'
|
|
scp -q "$BIN" "$HOST:infra/svc-core/orin-status.new"
|
|
scp -q deploy/yukart-orin-status.service "$HOST:infra/svc-core/yukart-orin-status.service"
|
|
ssh "$HOST" 'set -e
|
|
mv ~/infra/svc-core/orin-status.new ~/infra/svc-core/orin-status
|
|
sudo ln -sfn "$HOME/infra/svc-core/orin-status" /usr/local/bin/yukart-orin-status
|
|
sudo install -m 0644 ~/infra/svc-core/yukart-orin-status.service /etc/systemd/system/yukart-orin-status.service
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable yukart-orin-status.service >/dev/null
|
|
sudo systemctl restart yukart-orin-status.service
|
|
sleep 1
|
|
systemctl --no-pager --lines=5 status yukart-orin-status.service'
|