Repository navigation
camera_streamer: add cross_build.sh and deploy_sender.py development tools - #1477
Open
gareth-morgan-nv wants to merge 3 commits into
Open
gareth-morgan-nv wants to merge 3 commits into
gareth-morgan-nv wants to merge 3 commits into
Conversation
…n a Jetson without activating it check and discover only read. deploy copies the committed argus_sender source into a new release directory under ~/camera-streamer/releases/, configures and builds it on the target and runs the camera-free unit tests; it never stops, replaces or starts a service and refuses an existing release. run starts a built release for a bounded time with a config from this machine, stop signals the senders that run started, and linktest measures TCP throughput from the target to this machine, connecting the way the camera stream does. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
A failing unit test now fails the deploy instead of being echoed and ignored. A run that reaches its time limit is a success, and any other sender exit status is propagated instead of being turned into success. The scripts that run on the target use [[ ]] for tests, as the repository's shell rule requires, and run takes repeatable --env NAME=VALUE options for the sender. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
…rgus_sender on a PC syntax runs clang over every sender source against an Orin sysroot's headers, and build produces an aarch64 argus_sender (linked, not run) with an Arm GNU toolchain. The sysroot and toolchain live under ORIN_CROSS_ROOT; the script header lists what they must contain. TESTING.md notes that tests which include Argus headers compile this way but run only on the Orin. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
gareth-morgan-nv
requested review from
farbod-nv,
jiwenc-nv,
jsepulveda-nvidia and
tengw-nv
November 11, 2026 04:34
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
This was referenced Nov 11, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two development tools for
argus_senderthat the runtime does not depend on:cross_build.shto type-check and cross-compile on an x86 PC, anddeploy_sender.pyto build and try a release on a Jetson without activating it.What changed
cross_build.sh syntaxruns clang over every sender source against an Orin sysroot (no linking);cross_build.sh build [cmake args]builds an aarch64argus_senderwith the Arm toolchain (linked, not run). The sysroot, toolchain and CMake toolchain file live underORIN_CROSS_ROOT; the script header lists what they must contain, andTESTING.mdgets a short section.deploy_sender.py:checkanddiscoveronly read (release, camera processes, disk, platform files, camera units).deploy [--with-sipl] --name Ncopies the committed source (a git archive ofHEAD) into a new~/camera-streamer/releases/N, builds it on the target and runs the camera-free unit tests. It refuses an existing release name and a tree with uncommitted changes, and a failing unit test fails the deploy.run --name N --config FILE [--seconds S] [--env NAME=VALUE]starts a built release for a bounded time. It prints a note, and stops nothing, if another camera process is running. It succeeds when the sender ends at its time limit and otherwise fails with the sender's exit status.stopsignals the senders thatrunstarted;linktestmeasures TCP throughput from the target to the desktop.Validation
pre-commit(REUSE,ruff,ruff format) clean on the script;--dry-run checkprints the ssh commands without running them.cross_build.sh syntaxandbuild(with-DWITH_SIPL=ONandOFF) pass on a combined local build of the sender PRs, and earlier on this script alone. The plain base does not compilebundle_assemblerwithout the Argus headers, so the script is meant for Orin-targeted trees.deploy_sender.pywas used for the native builds, unit-test runs and camera runs on a Jetson Orin behind the sender PRs:check,deploy --with-sipl(17 of 17 tests),run,stopandlinktest.Known limitations / follow-ups
stopis reported as "exited with status 1"; the script does not yet separate a signal stop from an error.cross_build.shbut run only on a Jetson.Test plan
deploy_sender.py user@board check, thendeployinto a new release name.cross_build.sh syntaxagainst your own Orin sysroot.🤖 Generated with Claude Code