Complete JetPack 7.2.1 migration and port Orin fast boot - #109
Open
AlexKlimaj wants to merge 10 commits into
Open
AlexKlimaj wants to merge 10 commits into
AlexKlimaj wants to merge 10 commits into
Conversation
Port the tree from L4T R36.5.0 / JetPack 6.2.2 to L4T R39.2.1 / JetPack 7.2.1 (kernel 6.8, Ubuntu 24.04 rootfs, Crosstool-NG gcc 13.2). Rebased onto current main. Camera/multimedia debs moved from the t234 pool to som on R39; the Argus 36.4.4 pin is JP6-only and is replaced with the matching 39.2.1 stamp.
AlexKlimaj
force-pushed
the
pr-jetpack-7.2
branch
from
August 14, 2026 19:38
ff39644 to
77d51ff
Compare
JetPack 7 / kernel-noble dropped gpio_cansleep, changed i2c_driver.probe to take only the client, and made i2c_driver.remove return void. Match NVIDIA's nv_imx219 compat macros so the overlay still builds on 5.15 and 6.8.
R39 public_sources adds nvidia_unified_gpu_display_driver_source.tbz2 (unifiedgpudisp). Skipping it makes `make modules` fail, which also skipped `make dtbs`. R39 writes DTBs to build/nvidia-public/devicetree/generic-dtbs, not the R36 kernel-devicetree path — so kernel/dtb never received the ARK camera overlays and flash.sh aborted.
Member
Author
|
Flashed and smoke-tested BSP: L4T R39.2.1 / JetPack 7.2.1, Ubuntu 24.04.4, kernel Flash: USB gadget (0955:7020):
Build notes that were required to get here (already on this branch):
Not provisioned: ARK-OS (no noble package yet). Camera stack is the 39.2.1 stamp, not the JP6 Argus 36.4.4 pin. |
Port guarded boot firmware, initrd and userspace optimizations to R39/Noble for JAJ, PAB and PAB_V3. Build a native Noble ARK-OS package, retain native camera ABI dependencies, and install matched kernel artifacts and headers. Fix hardware-discovered compressed-firmware, GPU power-order, Bluetooth, UEFI boot-entry, USB gadget ordering and nginx loopback regressions. Preserve Linux FFC PCIe support and firmware security/boot-validation components. Record three successful final JAJ cold boots, remaining readiness limits, and the historical per-improvement timing breakdown. Under-ten-second boot has not been achieved; camera and PAB hardware qualification remain open.
AlexKlimaj
marked this pull request as ready for review
September 17, 2026 23:23
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.
Completes the JetPack 7.2.1 / L4T R39.2.1 migration and ports the opt-in Orin fast-boot workflow from #137 to JAJ, PAB and PAB_V3. The image uses Ubuntu 24.04, the 6.8.12-1021-tegra kernel and a native Noble/Python 3.12 ARK-OS package.
Changes
btusbto bind the Qualcomm controller. Apply NVIDIA’s configured GPU power policy before DRM and early ARK GPU probes; preserve the selected mode and fail visibly with bounded startup calls.Validation
The connected JAJ (Orin NX 16GB/NVMe) was fully flashed with the corrected R39 image, then bootloader slot A was updated with the corrected reduced UEFI. Stock slot B and the working NVMe OS were preserved during the A-only firmware tests. Three final cold boots passed, with these power-on times:
The under-10-second target is not achieved. The app's first jtop connection is gated until kernel uptime 10 seconds; populated metadata therefore follows generic HTTP. No camera is connected.
Timing starts at the Rigol power-on command and includes approximately two seconds of board POR; the electrical edge was not scoped. An SSH banner is not an authenticated terminal. “Populated metadata” is the ARK-OS stand-in check, not camera/inference qualification. The earlier stock-UEFI capture used the same corrected kernel and fast profile before the final USB/nginx race fixes, so the comparison is a measured total change rather than an isolated per-patch attribution.
The first reduced firmware stalled before Linux. Physical recovery, a guarded embedded-launcher boot-order correction and an A-only reflash recovered it. A later repeat exposed USB runtime starting before its bridge and nginx resolving
localhostto an IPv6 address without a listener; both were fixed in source and on the device before the final repeat set. Failed captures are retained in the R39 validation record.Actual hardware checks passed for CUDA integer-kernel execution, native external-module compile/load/unload against the prepared headers, configured GPU power policy, NVIDIA boot validation, WiFi firmware loading, Qualcomm Bluetooth registration, and camera-plugin loading. JAJ's Linux FFC controller is enabled and bound; the connector is empty. Temporary timing probes, diagnostic helpers and the shutdown hook were removed; ARK HTTP and populated metadata remain healthy. Kernel logging persists through rsyslog. The only failed service is MAVLink router, whose external FMU is absent.
Original startup time and measured improvement breakdown (R36 history)
The customer initially reported over 50 seconds. The first instrumented R36 cold baseline was 33.371 seconds to SSH. HTTP was not captured on that baseline. The following comparisons explain the earlier 13.885–14.071-second local ARK-OS API result; they are historical R36 observations, not R39 measurements. Times start at the Rigol power-on command and include the approximately two-second board POR delay.
The firmware's ESRT/FMP correctness repair and subsequent repeat captures moved SSH from 17.952 → 17.592 → 16.896 s; no optimization saving is assigned to that repair. The initial reduced firmware was superseded by the corrected implementation.
The individual OS changes were also explored with warm reboot-command-to-SSH observations (including shutdown and host network recovery):
These rows are not additive independent savings and warm results must not be mixed with cold results. Later R36 tuning reached generic local API availability around 11.2–11.4 s and final UART shells in 12.582–12.618 s. A stronger ARK-OS metadata criterion took 17.636 s because the installed application's jtop connection was delayed until kernel uptime 10 s. The historical sub-10-second target was not achieved. Full methods, caveats and later comparisons are in the R36 validation record.