4. Software & OS Reference

4.1 dcs-deploy Quick Reference

The dcs-deploy Python tool handles all flashing operations. Key usage patterns:

Task
Command

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

circle-info

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:

  1. Start from the standard Airvolute rootfs (default flash without --rootfs)

  2. Apply your customisations on the running device (install packages, copy configs)

  3. Create a rootfs archive following the dcs-deploy readme (Preparing your own rootfs image)

  4. Flash subsequent devices using --rootfs path/to/your.tar.bz2

circle-xmark

4.3 JetPack Version Matrix

JetPack
L4T
Ubuntu
Status

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):

circle-info

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