Getting Started with Jetson Using SDK Manager on Ubuntu 22.04
The finale version, after many, many attempts
This tutorial will cover how to install Ubuntu 22.04 on NVIDIA Jetson AGX Orin and Jetson Orin NX series with the NVIDIA SDK Manager.
Requirements
NVIDIA Jetson AGX Orin Development Kit or NVIDIA Jetson Orin NX Development Kit and its accessories (power supply).
DisplayPort cable and a compatible monitor.
USB Type A keyboard and mouse
A Linux host computer with Ubuntu 22.04 installed.
NVIDIA SDK Manager has strict requirement on the host OS version. The system compatibility matrix is available from the SDK Manager website:

Additionally, install these packages on the host system:
Install NVIDIA SDK Manager
Download SDK Manager from this website.
After download, use apt package manager to install the application.
Launch SDKManager from the app search page.

Download SDK Components
For this step, we don't need to connect the hardware yet.
Launch SDK Manager.
In Step 01, select the target hardware and the JetPack version.

In Step 02, select to install "Host SDK Components" and "Jetson Linux".
Here, we set download path as
and the installation path as

Wait for download and install.

Towards the end of installation, it will try to connect to the board. We can simply skip this step.

Toolchain Setup
Since we are going to modify the Linux Kernel, we also need to download the compilation toolchain.
Download Bootlin Toolchain gcc 11.3 from the release page:

After download, unpack the file to the following directory:
Configure the Kernel
Sync the kernel source code with Git
A bunch of file will appear under <install_path>/Linux_for_Tegra/source/ .
This process will take quite a while, depending on the Internet connection. To get a better estimate of progress, make edit to the script to show git clone message:
To enable realtime kernel, run
By default, the gs_usb module is not included on JetPack 6.X. This makes the USB-CAN adapter unusable.
To add USB-CAN support, edit the config file and add the following fields:
Building the Kernel
Now, we can proceed to build the kernel and out-of-tree modules.
Build Kernel
Build OOT Modules
(Optionally) Build DTB
Hardware Connection

Connect USB keyboard and mouse, and the DisplayPort port to a monitor.
Connect to the host computer with the provided USB Type-C to Type A cable using the port near the 40 pin header.
Lastly, while holding the recovery button (middle button), connect the USB Type-C power cable. The device will enter recover mode and can be detected on the USB port.

Set a jumper header between the GND and the FC REC pin on the pin header underneath the main Jetson board.
Then, plug in power and USB cable.
Launch the SDK Manager again.
After connecting the hardware and powering up the device, it should automatically detect the USB device connection.

This time, in step 02, we select everything.
It should also detect the kernel file we have compiled by indicating "OS image ready".

In the pop up window, set the username and password of the new Jetson system.
Additionally, in this step we need to configure the storage device to install the OS. For Jetson NX, we are going to install to the NVMe SSD disk. For Jetson AGX, we can choose to install to the built-in eMMC device.

About 30% into the installation process, the Jetson will reboot and boot into the system.
When this happens, the SDKManager on the host computer will show this window.
Wait until the Jetson boots up fully, then click Install on the host side.

If it cannot find the device through the USB connection, try Ethernet connection instead.
Note
Sometimes it will report this error:
In case this happens, a possible solutions is as follows.
Remove ALL the uncommented lines in the file.
Then, try the installation again.
The rest of the installation takes about one hour to finish.

Finally, to verify the installed version, run the following commands on Jetson
Verify USB-CAN Connection
Detect if the CH341 driver module is loaded:
On Jetson, the driver might conflict with brltty. In this case, we can use this command to see system log when plugging and unplugging the device:
In the log above, we observe two issues:
usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1: This suggests a conflict. The CH341 driver claimed the USB interface, butbrltty, a service for braille terminals, also attempted to set the USB configuration at the same time.brlttyinterfered: This conflict caused the CH341 device to become unstable or be disconnected.
When this conflict happens, /dev/ttyUSB will not appear.
To resolve this, stop and permanently disable brltty:
If this still does not solve the problem, consider uninstall brltty:
References
Useful links for USB-CAN
https://forums.developer.nvidia.com/t/does-jetpack-6-0-not-support-gs-usb-usb-to-can/328702
https://forums.developer.nvidia.com/t/missing-gs-usb-kernel-module-for-jetpack-6/275287/7
https://forums.developer.nvidia.com/t/flashing-orion-nx-on-seed-recomputer-j4012-success/290669
Useful links for CH340/CH341 Driver
Starting over
To remove all the existing configurations of the SDK Manager, run the following command
Last updated
