Hello,
I am looking for a solution for OTA updates for a fleet of Jetson Orin AGX. Currently using Jetpack 6. I found the scarthgap branch of meta-mender-tegra. I have not used Mender before and wanted to seek confirmation that it fully supports the Orin AGX / Jetpack 6 before diving it (bootloader updates and rootfs updates).
Many thanks,
JP
Hello,
I tried it some weeks ago. Changes are still needed for both Jetpack 5 and Jetpack 6 on Scarthgap branch. You can see that CI Workflows on Github are still failing for all Jetson devices.
At least the meta-tegra repos commit hashes need to be updated and linux-tegra_%.bbappend needs to be renamed to e.g. linux-jammy-nvidia-tegra_%.bbappend (or linux-%.bbappend, so it will match both Jetpack versions).
I finally got it building based on https://github.com/apbr/meta-mender-community/tree/scarthgap-tegra-jetpack6, but after pushing an update it returns this on reboot:
L4TLauncher: Attempting Recovery Boot Failed to boot recovery:1 partition
There has been a discussion on OE4Ts update Gitter channel to create
- meta-mender-tegra for the common stuff
- meta-mender-tegra-jp5 for JP 5 specific parts
- meta-mender-tegra-jp6 for the JP 6 specific parts
@TheYoctoJester, if this is fine, I could push a draft PR to at least fix the build issues for Orin Devices.
Hi @poett1,
Sorry that I missed the discussion on OE4T. Yeah, the -jetpack5/-jetpack6 split was my initial strategy but I let myself be convinced that it is easier to sort it out via overrides. Turns out I should have follow my instinct. So pardon me, it’s also my fault.
Yeah, if you have a chance to craft such a PR, that would be perfect. We have a couple of bits and pieces to fix the support in the pipeline by now, but the crystallization point seems to be missing. Your PR might be exactly that.
Greetz,
Josef
@jeanphilippea The PR has been merged into Scarthgap, at least AGX Orin (64GB) should work fine with JetPack 6.0.
I just tried the Jetson Orin AGX with Jetpack 6 on the scarthgap branch and I get a checksum error during the kas-driven yocto build
ERROR: optee-os-E-3.22.0-l4t-r36.3.0-r0 do_fetch: Fetcher failure for URL: 'https://developer.download.nvidia.com/embedded/L4T/r36_Release_v3.0/sources/public_sources.tbz2;downloadfilename=Jetson-public_sources-36.3.0.tbz2'. Checksum mismatch!
File: '/home/njacobson/demo.mender/meta-mender-community/my-build/build/downloads/Jetson-public_sources-36.3.0.tbz2.tmp' has sha256 checksum '190f499f5cff26f62a911d25a8e4c384db613a1887cbce17bcbe5810be0f36c9' when 'e94dbe0025ae313eeb603061697afed77b9641d2a06df022888574562dd1f6c5' was expected
If this change is expected (e.g. you have upgraded to a new version without updating the checksums) then you can use these lines within the recipe:
SRC_URI[sha256sum] = "190f499f5cff26f62a911d25a8e4c384db613a1887cbce17bcbe5810be0f36c9"
Otherwise you should retry the download and/or check with upstream to determine if the file has become corrupted or otherwise unexpectedly modified.
ERROR: optee-os-tadevkit-3.22.0-l4t-r36.3.0-r0 do_fetch: Bitbake Fetcher Error: FetchError('Unable to fetch URL from any source.', 'https://developer.download.nvidia.com/embedded/L4T/r36_Release_v3.0/sources/public_sources.tbz2;downloadfilename=Jetson-public_sources-36.3.0.tbz2')
ERROR: Logfile of failure stored in: /home/njacobson/demo.mender/meta-mender-community/my-build/build/tmp/work/armv8a_tegra-oe4t-linux/optee-os-tadevkit/3.22.0-l4t-r36.3.0/temp/log.do_fetch.1693959
ERROR: Task (/home/njacobson/demo.mender/meta-mender-community/my-build/build/../meta-tegra/recipes-security/optee/optee-os-tadevkit_3.22.0-l4t-r36.3.0.bb:do_fetch) failed with exit code '1'
So clearly I am doing something wrong…or am i? Can anyone help?
It looks like either the Jetson-public_sources-36.3.0.tbz2 archive was not downloaded correctly or it was modified online, resulting in a different SHA checksum. Nvidia may have made some changes for the 36.3 release here.
You can try to adapt the recipe to the new hash and rebuild again (should be something like recipes-bsp/tegra-sources/tegra-sources-36.3.0.inc). You may want to consider updating the kas build to newer Jetpack versions, as JP6.0 is not actively maintained on meta-tegra. The Scarthgap branch is currently on JP6.1, JP6.2 is a work in progress.
Updating the hash for the scarthgap branches in the yml file was the magic to make it work
Hi @formidable01, hi @poett1,
I did quite some build testing in the last day on this and wanted to conclude before responding. Generally I agree, this sounds like the upstream tarball “secretly” changed its content, which needs to be reflected in the checksum. This should be considered a real bad practice
A new PR is prepared here: tegra: split layers for JP5 / JP6 by TheYoctoJester · Pull Request #439 · mendersoftware/meta-mender-community · GitHub which should solve the JP5 / JP6 mess and make all included boards buildable as of today.
Reviews, comments and testing on boards are much appreciated!
Greetz,
Josef