4. Software & OS Reference
4.1 dcs-deploy Quick Reference
The dcs-deploy Python tool handles all flashing operations. Key usage patterns:
Standard flash (Orin NX, 512 GB NVMe, DCS2)
python3 dcs_deploy.py flash orin_nx 512 2.0 nvme full
Standard flash (Orin NX, 512 GB NVMe, DCS1.2)
python3 dcs_deploy.py flash orin_nx 512 1.2 nvme full
Flash with custom rootfs
python3 dcs_deploy.py flash orin_nx 512 2.0 nvme full --rootfs ~/rootfs.tar.bz2
Flash with custom app partition size
python3 dcs_deploy.py flash ... --app_size 100
View all options
python3 dcs_deploy.py flash -h
Note:
Allied Vision camera config is config_7 (orin_nx 512_avt 2.0). Standard configs (config_6) use OV9281/IMX477 device trees. Flashing the wrong config is the most common camera setup error — the AVT config loads the Allied Vision kernel module which will probe for Allied Vision cameras on CSI at boot.
4.2 Custom rootfs Workflow
When using --rootfs, dcs-deploy merges your custom rootfs archive with the mandatory NVIDIA JetPack base filesystem (linux-sample-root-filesystem-r3521aarch64tbz2). The merge automatically includes Airvolute overlay files (airvolute_overlay, l4t, nv_ota_tools). You do not need to include these manually.
The base Airvolute workflow:
Start from the standard Airvolute rootfs (default flash without --rootfs)
Apply your customisations on the running device (install packages, copy configs)
Create a rootfs archive following the dcs-deploy readme (Preparing your own rootfs image)
Flash subsequent devices using --rootfs path/to/your.tar.bz2
Common failure:
'flock: cannot open lock file' or 'mount.nfs: Connection timed out' - reboot the host PC, ensure no stale dcs-deploy processes are running (ps aux | grep dcs), and check that the host firewall is not blocking NFS traffic. Temporarily disabling the firewall during flash resolves NFS timeouts.
4.3 JetPack Version Matrix
5.1.2
R35.4.1
20.04
Production release — default dcs-deploy config
6.0 / 6.2
R36.x
22.04
Released April 2025 (DCS2); DCS1 support pending device tree overlay
JetPack 6.x includes Python 3.10+ on the Jetson device. JetPack 5.x ships with Python 3.9. The dcs-deploy host tool itself is compatible with Python 3.10+ on the host PC regardless of Jetson version.
For Patron FPV: JP6 has not been validated on Patron FPV hardware as of this writing. Flashing FPV units with JP6 is possible but unsupported.
4.4 SPI_JET Pin Mapping to Orin GPIO
The SPI_JET connector on the Adapter Default board maps to the following Jetson Orin NX GPIO lines. Use these values when creating device tree overlays (e.g. for PPS GPIO or custom SPI reconfiguration):
Note:
The pps-gpio kernel driver contains a bug in JetPack 5 kernels that causes 'failed to request PPS GPIO' errors. Apply the patch from https://www.spinics.net/lists/stable/msg547968.html or use a kernel build that includes this fix.
4.5 Python Version and Upgrades
The Python version available on the Jetson device after flashing is determined by the JetPack version, not by dcs-deploy:
JetPack 5.1.2 (Ubuntu 20.04): Python 3.9 — cannot be upgraded without upgrading JetPack
JetPack 6.x (Ubuntu 22.04): Python 3.10+
Upgrading Python independently on JP5 devices is out of scope for Airvolute support. The recommended path is to upgrade to JP6 when available for your hardware.
4.6 OTA Update Tools
The dcs-deploy repository includes nv_ota_tools in its resources directory. These tools were added during early testing of Mender-based A/B partition OTA updates. They are not currently part of a supported deployment workflow. If you wish to explore OTA updates, refer to the Mender documentation (docs.mender.io) as a starting point.
4.7 Known Script Issues
dcs_first_boot.sh — spi group warning: On fresh installs the script attempts to add dcs_user to a group named 'spi' which does not exist on the standard image. The error message is harmless but confusing:
This line can be safely ignored. The issue will be corrected in a future dcs-deploy release.
Last updated
