Skip to main content
Installs and refreshes the pieces uv tool install can’t manage on its own:
  • adb + the Quest udev rule — for the Quest-over-USB controller transport (the adb reverse tunnel that streams poses over the cable). Self-gates on apt.
  • zed.driver — replaces the ZED Box Duo’s known-bad factory GMSL camera driver (stereolabs-zedbox-duo) with the pinned release. Takes effect on the next reboot (prints a notice; never reboots itself). A no-op off a factory-flashed ZED Box Duo.
  • zed.install — the pyzed bindings (not on PyPI; needs the ZED SDK).
  • gst.install — the GStreamer + PyGObject appsink stack (PyGObject builds against the system gobject-introspection and is dropped whenever the tool environment is rebuilt, e.g. by a release upgrade).
  • gst.build-zed — the patched zedxonesrc / zedsrc plugins (sensor-accurate PTS so collected images line up with joint samples).
Both the hosted installer and the axol serve self-updater run this command, so the set of steps lives in exactly one place and can’t drift between them. Every step is idempotent and best-effort — each self-gates on the ZED SDK / apt / NVENC and no-ops when unavailable — so axol provision is safe to run on any host and re-run anytime.
provision does not pin the Jetson clocks — that’s jetson.setup, a per-boot runtime tweak owned by the systemd ExecStartPre, not an install step.
When there’s no ZED SDK at /usr/local/zed, the pyzed and zed-gstreamer build steps are skipped (only the GStreamer/PyGObject stack and adb are installed). See Development install → Headset-video stack for when you’d run this by hand.