Emulating Jetson Orin with L4t 35.4.1 and JP 5.1.2 on x86 PC

Hello,

I am trying to emulate my Jetson ORIN environment on my x86 PC.

The idea is to have a Docker container with the exact same architecture and environment as my Jetson Orin, so that i can code and compile package on my PC inside this Docker container, and deploy the builds onto my Jetson Orin.

These are the steps I am trying to follow:

  • Pull the
nvcr.io/nvidia/l4t-jetpack:r35.3.1

Image and run using the following command:

sudo docker run -it --rm --net=host --runtime nvidia --platform aarch64 -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix nvcr.io/nvidia/l4t-jetpack:r35.4.1

Status: Success on bringing up the container.

Concerns: I do have all the libraries, aarch64 architecture, and the correct OS version, but when I run the CUDA example given here, I get the following error:

CUDA driver version is insufficient for CUDA runtime version in jetpack image
  • Similarly, when I am trying to install the nvidia-jetpack using apt install nvidia-jetpack (Just to check if the Jetpack 5.1.2 was installed correctly as part of the Docker image), I get the following error:
The following packages have unmet dependencies:
 nvidia-jetpack : Depends: nvidia-jetpack-runtime (= 5.1.2-b104) but it is not going to be installed
                  Depends: nvidia-jetpack-dev (= 5.1.2-b104) but it is not going to be installed

Please help.

moving this topic to the Jetson Orin Nano forum

@smrazarizvi96 IMO it’s not going to be possible to fully “emulate” or run GPU-enabled containers built for ARM64/JetPack on x86, because as you’ve found it relies on underlying hardware and drivers that are specific to Jetson and its integrated GPU-based architecture.

There is however an x86 container specifically for cross-compiling ARM applications against various JetPack components from x86:

However this would not actually run those CUDA-enabled binaries on x86, they would need to be distributed to Jetson first.

I see. In that case, what’s the best way to develop on our own x86 devices, test the application on x86, and then run the App on the Orin device?

@smrazarizvi96 IMO it would have to be a parallel build that’s built specifically for x86 architecture if you actually want to run it, and the ARM64/Jetson version would be a separate version (ideally sharing the same code and such).

Presuming that you are investing your time and energy into this development and want to accelerate your build/deployment times, I would just recommend getting a Jetson AGX Orin as a build machine - it has 12 CPU cores @ 2.2GHz and does native compilation fast. It is then easy to deploy the same binaries/images to other Jetson devices.

Got it. Thanks a lot.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.