Skip to main content
Replaces a ZED Box’s factory-flashed GMSL capture driver with the pinned known-good release from Stereolabs. Stereolabs ships one driver package per carrier board and pins each to the ZED SDK it supports; this command covers the carriers Almond ships: Units leave the factory with whichever driver was current when they were flashed, and the ZED SDK is tightly coupled to it (SDK 5.3+ needs ≥ 1.4.2; Stereolabs pairs SDK 5.4.1 with 1.4.3). Running a newer SDK on an older driver is not a benign mismatch: the old ZEDX_Daemon restarts nvargus-daemon underneath a live capture, which kills the camera relay mid-session. The upgrade follows Stereolabs’ procedure (dpkg -r the factory package, then dpkg -i the pinned .deb). The download is pinned to the exact reviewed SHA-256 and package/version/architecture metadata for each variant and is staged through an exclusive temporary file before installation. Stereolabs does not publish an independent signature or checksum for these artifacts, so the committed digests protect against later server changes but are not independent proof of the original artifact’s provenance. Any changed vendor artifact is rejected until its bytes are reviewed and the code pin is deliberately updated.
On any machine that isn’t a factory-flashed ZED Box — no stereolabs-zed* package is installed — this is a no-op. It also refuses to act when the installed driver is already at (or newer than) the pinned version, or when the running L4T release differs from the one the pinned .deb was built for. A Stereolabs driver package that is installed but has no pin here (another carrier) is reported as a warning rather than silently skipped, since that box’s SDK/driver pairing is then unmanaged.
provision runs this automatically (the hosted installer and the axol serve self-updater both run provision), so you normally never need to invoke it directly.
The new driver is a kernel module and only loads at boot, so a reboot is required after the upgrade. The command never reboots the box itself — it prints a notice instead — because it runs mid-install over SSH and from the running axol serve process.