-
Notifications
You must be signed in to change notification settings - Fork 166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NVIDIA: Add support for Jetpack 6.0 and split NVIDIA into two new platforms #4532
Conversation
Note for ReviewersGH Actions
arm64 builds
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could add the necessary files into .spdxignore
=)
Very well observed @OhmSpectator , totally forgot about it. It's done. Thanks! |
8d51d64
to
08fb342
Compare
ab1c23c
to
100e1dd
Compare
NVIDIA Jetpack 6.0 doesn't support Xavier devices, so EVE's nvidia platform must be split into two new variants in order to support both Jetpack versions: nvidia-jp5, for Xavier based devices (Jetpack 5); and nvidia-jp6, for Orin based devices (Jetpack 6). This commit introduces the two new platforms (nvidia-jp5 and nvidia-jp6) and removes the former nvidia platform without changing any of the existing packages, they will be adjusted later. Signed-off-by: Renê de Souza Pinto <rene@renesp.com.br>
This commit introduces the support in the firmware package for both nvidia platform variants: nvidia-jp5 and nvidia-jp6. Signed-off-by: Renê de Souza Pinto <rene@renesp.com.br>
100e1dd
to
0fb5ce8
Compare
As suggested by @yash-zededa I've moved the changes to GH actions to a dedicated PR: #4534 |
LGTM. I do have a question, though. Someone reading this might be confused. Aren't JP5 and JP6 Nvidia's packaged-up Ubuntu-based operating systems? What does it mean to have "jp6 EVE build"? Are we actually running JP6 and an EVE agent, or are we installing some parts of JP6 on EVE, and if so, is it base operating system or in a container? I don't necessarily mean to answer it here, as much as if it is clear to someone coming to it with minimal EVE knowledge other than, "it is a special-purpose edge OS" and "I know what JP6 is". |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, it looks good. I dropped several minor comments, though.
if [ "$smb_product" = "NVIDIA Orin Nano Developer Kit" ]; then | ||
set_to_existing_file devicetree /boot/dtb/nvidia/tegra234-p3767-0003-p3768-0000-a0.dtb | ||
set_global dom0_console "console=ttyAMA0,115200 console=tty0 console=ttyTCU0,115200 earlycon=ttyTCU0,115200" | ||
set_global dom0_console "console=ttyAMA0,115200 console=tty1 console=ttyTCU0,115200 earlycon=ttyTCU0,115200" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This commit adds the corresponding entry on GRUB config
and explicitly switches the console option for the jp5 variant to tty1
. I kind of remember why it's necessary, but I'm a little confused that we still use tty0 and tty1 in different variants...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's necessary because of the TUI monitor... actually we need to update all references for tty0
for any other platform, but it's outside the scope of this PR... I can open a new one to take care of other platforms....
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or we at least should have a ticket for that, not to forget)
|
That is such an old message. Maybe we should get rid of it? Are we really still worried about cross-building? |
Ah, sorry, the real error was:
|
I agree! Let's get rid of it..... |
Yeah, I have added a new commit to this PR which keeps the nvidia platform, so all builds should pass. Once this PR and the PR that updates the GH actions get merged, I will revert the commit and complete the removal of the nvidia platform. In this way there will be no breaks or build failures. |
This commit adds the support to Jetpack 6.0 by using the two new nvidia platform variants: nvidia-jp5: Supports Jetson Xavier NX devices, Jetpack 5.1.3 nvidia-jp6: Supports Jetson Orin Nano/AGX devices, Jetpack 6.0 nvidia-jp5 is also used for generic platforms. Signed-off-by: Renê de Souza Pinto <rene@renesp.com.br>
This commit adds the corresponding entry on GRUB config. for Jetson Orin Developer Kit for Jetpack 6. Signed-off-by: Renê de Souza Pinto <rene@renesp.com.br>
Add boot options for the Aetina AIX-PX11 device, which is based on the Jetson Orin AGX platform. Signed-off-by: Renê de Souza Pinto <rene@renesp.com.br>
This commit adds the corresponding entry on GRUB config. for Jetson Orin NX devices (Jetpack 6). Signed-off-by: Renê de Souza Pinto <rene@renesp.com.br>
b130eea
to
de9a70b
Compare
This is a very good point @deitch , I've updated the documentation to try to clarify that "support a Jetpack version" means provide all default libraries of the Jetpack Jetson Linux distro + run EVE on a custom kernel derived from the original kernel.... |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for updating the docs.
I am really good at being ignorant and asking questions like that 😆 |
Update documentation related to NVIDIA devices: - Create a general page for NVIDIA Jetson platforms - Update docs for Jetson Xavier NX devices - Add docs for Jetson Orin devices Signed-off-by: Renê de Souza Pinto <rene@renesp.com.br>
This commit brings back the nvidia platform so it won't break any GitHub build action. It should be reverted after the update of the workflows to support the new platforms: nvidia-jp5 and nvidia-jp6. Signed-off-by: Renê de Souza Pinto <rene@renesp.com.br>
de9a70b
to
87a9470
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Run tests
Overview
NVIDIA Jetpack is the NVIDIA's software stack for Jetson modules and developer kits. Currently EVE supports the Jetpack 5.1.3 through the
nvidia
platform variant. However, newer AI applications and devices are based in the Jetpack 6.x version, which doesn't support the Jetson Xavier NX devices. This PR introduces the support to new Jetson Orin devices along with Jetpack 6.0 version. In order to keep the support for the Jetson Xavier devices, both Jetpacks are now supported:Jetpack 5.1.3: For Jetson Xavier NX devices
Jetpack 6.0: For Jetson Orin based devices
These versions covers different devices from different Jetson platforms, as shown by the Table 1.
Table 1: Jetpack support. Source: Jetson Linux Archive.
For each Jetpack version supported, EVE uses its own kernel derived from the original kernel from Jetpack Linux distro. All kernel versions used by EVE are available at the eve-kernel project.
Changes
The major changes provided by this PR relies on the removal of
nvidia
platform and the introduction of two new platforms:nvidia-jp5
: It installs and supports Jetpack 5.1.3nvidia-jp6
: It installs and supports Jetpack 6.0The EVE image (install, live, etc) should be generated according the target device. For instance, for Jetson Xavier based devices the images should be generated using
make ZARCH=arm64 PLATFORM=nvidia-jp5 <image_type>
. For any Jetson Orin based device, image should be generated usingmake ZARCH=arm64 PLATFORM=nvidia-jp6 <image_type>
.Packages affected
So far only the following packages are affected with different builds according the NVIDIA variant platform:
pkg/fw: Firmware package
pkg/nvidia: NVIDIA package
The TAG of these packages will contain the platform the package was built for, so it can be easily differentiated and identified. For instance:
lfedge/eve-fw:15f4439110fb41b3af58a8d439878c632cc10e58-nvidia-jp5
lfedge/eve-fw:15f4439110fb41b3af58a8d439878c632cc10e58-nvidia-jp6
lfedge/eve-fw:15f4439110fb41b3af58a8d439878c632cc10e58-generic
When applied (for instance, for pkg/nvidia), the
nvidia-jp5
variant is used as default for thegeneric
platform.Supported devices
The following devices based on Jetson Orin will be supported through Jetpack 6.0:
Tests
Tests were performed on the mentioned devices by deploying AI apps and other workloads.
Known issues
LEDs of the 10G Ethernet port are not working on the Aetina AIE-PX22 (only the LEDs are not working, the ethernet connection works flawlessly).
GitHub workflows
GitHub build workflows are adjusted with the new variants in the following PR: