Install Veirox Connect on an edge / arm device
Target: Low-spec Linux hosts without systemd (Raspberry Pi,
OpenWRT, BusyBox-based IoT gateways). The same Rust binary as the
systemd/OCI targets, built for aarch64-unknown-linux-musl or
armv7-unknown-linux-musleabihf with the bundled-roots Cargo
feature so it doesn't need /etc/ssl/certs.
Prerequisites
- root on the edge device
- ~10 MB free disk, ~32 MB free RAM
- Outbound TCP 443 to the Veirox backend
- An Veirox enrollment token
Install
1. Build the edge binary (on a dev host, not the edge device)
cd agent/veirox-connector rustup target add aarch64-unknown-linux-musl cargo build --release --locked \ --target aarch64-unknown-linux-musl \ --features bundled-roots # → target/aarch64-unknown-linux-musl/release/veirox-connector (~5 MB)
For ARMv7 (older Raspberry Pis, 32-bit):
rustup target add armv7-unknown-linux-musleabihf cargo build --release --locked \ --target armv7-unknown-linux-musleabihf \ --features bundled-roots
2. Copy to the edge device + run the edge installer
scp veirox-connector pi@edge-gateway:/tmp/ ssh pi@edge-gateway "sudo \ VEIROX_BACKEND_URL=https://veirox.customer.com \ VEIROX_ENROLLMENT_TOKEN=veirox_enr_REPLACE_ME \ sh -c 'cd /tmp && sh install-edge.sh ./veirox-connector'"
The install-edge.sh script detects whether OpenRC is available and
installs a proper init script if so; otherwise it launches the agent
under nohup.
3. Corporate CA bundle (optional)
ssh pi@edge-gateway "sudo mkdir -p /etc/ssl && sudo cp corp-ca.pem /etc/ssl/" # re-run install-edge.sh with the env var: VEIROX_CONNECTOR_EXTRA_CA_BUNDLE=/etc/ssl/corp-ca.pem
Verify
ssh pi@edge-gateway "tail -f /var/log/veirox-connector.log"
Then run the verification checklist.
Upgrade
Re-run the build + scp + install-edge.sh sequence. The existing cert
triple is preserved — the installer only overwrites the binary and
restarts the service.
See upgrade.md.
Uninstall
OpenRC hosts
ssh pi@edge-gateway "sudo rc-service veirox-connector stop" ssh pi@edge-gateway "sudo rc-update del veirox-connector default" ssh pi@edge-gateway "sudo rm -f /etc/init.d/veirox-connector /etc/conf.d/veirox-connector" ssh pi@edge-gateway "sudo rm -rf /etc/veirox-connector /var/lib/veirox-connector /usr/local/bin/veirox-connector" ssh pi@edge-gateway "sudo deluser veirox-connector"
nohup hosts
ssh pi@edge-gateway "sudo pkill -f veirox-connector" ssh pi@edge-gateway "sudo rm -rf /etc/veirox-connector /var/lib/veirox-connector /usr/local/bin/veirox-connector /var/log/veirox-connector.log"
Troubleshooting
| Symptom | Fix |
|---|---|
executor_spawn_failed with no such file or directory |
The edge device uses a shell other than sh at /bin/sh. BusyBox's ash is supported; a broken symlink is not. |
TLS handshake fails without /etc/ssl/certs |
Confirm you built with --features bundled-roots. The resulting binary should be ~200 KB larger than the non-bundled one. |
cpu_usage_percent always zero |
Kernel is too old for cgroupv2 metric sources. Cosmetic — the agent still works. |
| Agent gets killed by OOM on first start | Lower the heartbeat tick cost by setting RUST_LOG=warn to suppress debug logging. |