Skip to content

fix(install): support Jetson BSP R39+ in host setup script - #1910

Merged
ericksoa merged 2 commits into
NVIDIA:mainfrom
paritoshd-nv:fix/support-jetson-r39-version
Apr 15, 2026
Merged

fix(install): support Jetson BSP R39+ in host setup script#1910
ericksoa merged 2 commits into
NVIDIA:mainfrom
paritoshd-nv:fix/support-jetson-r39-version

Conversation

@paritoshd-nv

@paritoshd-nv paritoshd-nv commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

R39 and later BSP versions do not require any host customization. Detect the L4T release number arithmetically so future versions are handled automatically without needing script changes.

Summary

Related Issue

Changes

Type of Change

  • Code change for a new feature, bug fix, or refactor.
  • Code change with doc updates.
  • Doc only. Prose changes without code sample modifications.
  • Doc only. Includes code sample changes.

Testing

  • npx prek run --all-files passes (or equivalently make check).
  • npm test passes.
  • make docs builds without warnings. (for doc-only changes)

Checklist

General

Code Changes

  • Formatters applied — npx prek run --all-files auto-fixes formatting (or make format for targeted runs).
  • Tests added or updated for new or changed behavior.
  • No secrets, API keys, or credentials committed.
  • Doc pages updated for any user-facing behavior changes (new commands, changed defaults, new features, bug fixes that contradict existing docs).

Doc Changes

  • Follows the style guide. Try running the nemoclaw-contributor-update-docs agent skill to draft changes while complying with the style guide. For example, prompt your agent with "/nemoclaw-contributor-update-docs catch up the docs for the new changes I made in this PR."
  • New pages include SPDX license header and frontmatter, if creating a new page.
  • Cross-references and links verified.

Signed-off-by: Your Name your-email@example.com

Summary by CodeRabbit

  • Bug Fixes
    • Improved setup script version detection and mapping for Jetson 38-series devices so the correct JetPack variant is chosen.
    • Setup now handles unparseable or newer OS releases more gracefully, allowing the process to continue with safer defaults.
    • Updated no-op case handling to align with the new 38-series mapping and provide clearer failure messaging.

@coderabbitai

coderabbitai Bot commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 4ee26c1e-87b6-4fb5-8e74-05b303b363e5

📥 Commits

Reviewing files that changed from the base of the PR and between 9af20fc and 784451f.

📒 Files selected for processing (1)
  • scripts/setup-jetson.sh

📝 Walkthrough

Walkthrough

The scripts/setup-jetson.sh script changes version handling: get_jetpack_version() adds early-return paths for unparsable L4T release and for release >= 39, and maps L4T 38.x to jp7-r38. configure_jetson_host() updates its no-op case from jp7 to jp7-r38.

Changes

Cohort / File(s) Summary
Version Handling & Control Flow
scripts/setup-jetson.sh
get_jetpack_version(): add early-return on L4T parse failure (logs to stderr) and early-return for release >= 39; change mapping for L4T 38.* to jp7-r38; unrecognized-version skip now writes to stderr. configure_jetson_host(): change no-op case label from jp7 to jp7-r38 and keep unsupported versions as error.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐇 I nibble code beneath moonlight clear,
Jetson branches pruned this year,
If parsing fails I hop away,
And thirty-eight gets a brand-new name today,
Small changes, big hops — a rabbit's cheer!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: adding support for Jetson BSP R39+ versions in the host setup script by detecting L4T release numbers arithmetically.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@scripts/setup-jetson.sh`:
- Around line 29-37: The info() messages inside the Jetson detection logic are
being written to stdout and polluting the captured output of
get_jetpack_version, so update the three info() invocations in the Jetson checks
to write to stderr instead (e.g., append >&2 or call a stderr-capable logger) —
specifically change the info call inside the “could not parse L4T release”
branch, the info call inside the “L4T R39+ does not require host setup” branch,
and the info call used during JetPack version detection so that
get_jetpack_version returns empty when appropriate; keep the surrounding
conditionals and return statements (the release checks and the
jetpack_version="$(get_jetpack_version)" usage) unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 022462f1-ddff-4890-a7b8-d7838b23c3a6

📥 Commits

Reviewing files that changed from the base of the PR and between c333d96 and 9af20fc.

📒 Files selected for processing (1)
  • scripts/setup-jetson.sh

Comment thread scripts/setup-jetson.sh
@brandonpelfrey

Copy link
Copy Markdown
Collaborator

@paritoshd-nv

PR description:

R39 and later BSP versions do not require any host customization

Lines 73-78 still run modprobe, sysctl, and persistent config writes for every recognized version. I suspect the PR description should be updated to be more clear about what is updated or not, or those commands should not be run in the r38 case?

@brandonpelfrey brandonpelfrey self-assigned this Apr 15, 2026
@brandonpelfrey
brandonpelfrey self-requested a review April 15, 2026 15:43
R39 and later BSP versions do not require any host customization.
Detect the L4T release number arithmetically so future versions
are handled automatically without needing script changes.

Signed-off-by: Paritosh Dixit <paritoshd@nvidia.com>
@paritoshd-nv
paritoshd-nv force-pushed the fix/support-jetson-r39-version branch from 9af20fc to 784451f Compare April 15, 2026 15:50
@paritoshd-nv

Copy link
Copy Markdown
Contributor Author

@paritoshd-nv

PR description:

R39 and later BSP versions do not require any host customization

Lines 73-78 still run modprobe, sysctl, and persistent config writes for every recognized version. I suspect the PR description should be updated to be more clear about what is updated or not, or those commands should not be run in the r38 case?

Hi @brandonpelfrey ,
The get_jetpack_version() exists early for (release >= 39)

  if ((release >= 39)); then
    info "Jetson detected (L4T $l4t_version) — this version does not require any host setup" >&2
    return 0
  fi

@paritoshd-nv
paritoshd-nv requested a review from ericksoa April 15, 2026 19:06

@ericksoa ericksoa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regression analysis looks clean — low risk across all four changes. The stderr redirects actually fix a latent bug where unrecognized versions would crash the script instead of gracefully skipping. No external references to the renamed jp7 identifier. All CI green. LGTM.

@ericksoa
ericksoa merged commit f079a37 into NVIDIA:main Apr 15, 2026
11 checks passed
miyoungc added a commit that referenced this pull request Apr 16, 2026
## Summary
- Add "Ollama network exposure warning during onboard" troubleshooting
entry (from #1877)
- Document snapshot restore liveness preflight and clean restore
behavior (from #1901)
- Update Jetson troubleshooting for BSP R39+ support (from #1910)
- Document `--from` Dockerfile permission error handling (from #1931)
- Bump doc version switcher through 0.0.17
- Regenerate agent skills from updated docs

## Test plan
- [x] `make docs` builds without warnings
- [x] All pre-commit hooks pass
- [ ] Verify rendered pages in docs build output

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Clarified onboarding error when build context contains unreadable
files.
* Updated snapshot restore: sandbox must be running; restore cleanly
replaces state directories and removes files added after the snapshot.
  * Added Jetson BSP R39 automatic configuration guidance.
* Added Ollama network-exposure security guidance for local provider
selection during onboarding.
* **Documentation (versions)**
* Added docs entry for version 0.0.17 and updated project docs version.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
realkim93 added a commit to realkim93/NemoClaw that referenced this pull request May 4, 2026
Bring feat/jetson-orin-nano-support up to date with origin/main after
217 commits of upstream work.

Conflict resolutions:
- scripts/setup-jetson.sh: adopt main's L4T-version-aware structure
  (NVIDIA#1910, NVIDIA#1913, NVIDIA#2419) — JP6 / JP7-R38 / JP7-R39 case dispatch with
  idempotent br_netfilter persistence. Drops the PR's preflight wrapper
  in favor of the simpler main rewrite that already covers Orin Nano
  via the JP6 path.
- src/lib/onboard.ts: keep main's verifyWebSearchInsideSandbox; preserve
  the Jetson GPU-detection branch on top of main's refined NVIDIA
  detection format; restore the gpu parameter on startGatewayWithOptions
  so the patchGatewayImageForJetson() call still type-checks.
- src/lib/onboard-providers.ts: re-add the ollama-local / vllm-local
  branches in getSandboxInferenceConfig that override inferenceBaseUrl
  via getLocalProviderBaseUrl.
- docs/get-started/quickstart.md and the autogenerated skills commands.md:
  take main (Jetson now lives in ci/platform-matrix.json).

Port setup-jetson into main's oclif command-registry architecture:
- Add SetupJetsonCliCommand thin oclif adapter and runSetupJetsonAction
  that shells out to scripts/setup-jetson.sh under sudo on Linux.
- Register setup-jetson in command-registry.ts (Getting Started),
  legacy-oclif-dispatch.ts, and oclif-commands.ts.

Switch patchGatewayImageForJetson to docker.dockerInspectFormat /
docker.dockerRun so it stays inside main's docker-abstraction guard,
and update the existing jetson tests to match the argv-based runner
contract.

Fix the Jetson note in ci/platform-matrix.json — the relative
../reference/commands.md#nemoclaw-setup-jetson link broke the
markdown-links CI check when the platform-matrix generator copied it
into root README.md. Replaced with the docs.nvidia.com absolute URL.

Allowlist two pre-existing slack-app-token false positives surfaced by
the local pre-commit gitleaks pass.

Verified: npm run build:cli, npm run lint, full vitest suite (3160
pass, 13 skip), and check-docs.sh markdown-link check all green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@realkim93 realkim93 mentioned this pull request May 4, 2026
9 tasks
@wscurran wscurran added bug-fix PR fixes a bug or regression platform: jetson Affects Jetson AGX Thor or Orin and removed Platform: Jetson AGX Thor/Orin labels Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug-fix PR fixes a bug or regression platform: jetson Affects Jetson AGX Thor or Orin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants