Install RT Kernel on Jetson orin

Please provide the following info (tick the boxes after creating this topic):
Target Operating System
[✓] Linux
QNX
other

Hardware Platform
DRIVE AGX Orin Developer Kit (940-63710-0010-D00)
DRIVE AGX Orin Developer Kit (940-63710-0010-C00)
[✓] DRIVE AGX Orin Developer Kit (not sure its number)
other

SDK Manager Version
[✓] 1.9.1.10844
other

Host Machine Version
[✓] native Ubuntu Linux 20.04 Host installed with SDK Manager
native Ubuntu Linux 20.04 Host installed with DRIVE OS Docker Containers
native Ubuntu Linux 18.04 Host installed with DRIVE OS Docker Containers
other

Hello.

I want to install real-time kernel on Jetson Orin PC.
The currently installed kernel version is 5.10.104-tegra.

Download

  1. public_sources.tbz2
  2. Jetson_Linux_R35.2.1_aarch64.tbz2
  3. Tegra_Linux_Sample-Root-Filesystem_R35.2.1_aarch64.tbz2

I have checked that manual.

I succeeded in proceeding with To Build the Real-Time Kernel from decompressing Public_sources.
And, by executing To Build the Kernel, the kernel_out folder was also created.

Referring to the manual(Build the Real-Time Kernel - #4 by wai.kwok.law), it told me to proceed with the commands below, but I proceeded with all of them, but an Invalid target board error occurred in the last flash.sh.
$ sudo tar xpf JAX-TX2-Jetson_Linux_R32.1.0_aarch64.tbz2 (2번 파일 압축 해제)
$ cd Linux_for_Tegra/rootfs/
$ sudo tar xpf …/…/JAX-TX2-Tegra_Linux_Sample-Root-Filesystem_R32.1.0_aarch64.tbz2
$ cd …
$ sudo ./apply_binaries.sh
$ sudo ./flash.sh --no-flash jetson-xxxx mmcblk0p1

There doesn’t seem to be a separate manual for the above command. I would appreciate it if you could tell me again how to do the last step.

And two Linux_for_Tegra files were created (files 1 and 2 were decompressed respectively), file 1 had kernel_out and file 2 had rootfs
is in a state of being.

The nvgpu.ko file located in rootfs has been replaced with a file created in the kernel_out folder.

There is a make command in the manual(Nvidia_kernel_display_driver_source.tbz2 not support real-time kernels - #19 by carolyuu). In which folder is the command executed?

And when the make is completed, can I just change it to real-time according to the manual(Kernel Customization — Jetson Linux<br/>Developer Guide 34.1 documentation)?

In fact, I’m not sure if I did it right because the manuals and forums are jumbled up.

If you have a reorganized manual, please share.

And in the manual, it is installed with sudo apt install nvidia-l4t-rt-kernel nvidia-l4t-rt-kernel-headers, but in the forum
I saw that it was impossible to install with the current command.

Do you have any plans to install rt-kernel with that command?

Hi,
Please refer to the guidance in
Kernel Customization — Jetson Linux Developer Guide documentation

Please check the post I inquired about again.

I’ve already checked the manual several times, but I’m inquiring because I don’t think I understand it properly.

Follow the steps provided in No display with PREEMPT_RT patches

I couldn’t check the article, so I followed it after checking it again.

Commands such as make and cp were successfully completed, but an error occurred in the last flash.sh


.

It says recovery mode, so I entered that mode and tried it again, but the same error is occurring.

I am directly entering commands by connecting the monitor to the original pc, so there is no other pc connected to the usb port.

Am I doing something wrong?

The “Drive” and regular “AGX Orin” are different. Is it an actual Orin AGX dev kit? Or is it a Drive hardware? The Drive software doesn’t work with the AGX dev kit, it is intended for other software. I’m just wondering if the original question needs to be rephrased.

The PC I have is a Jetson AGX Orin developer kit.

So, isn’t it correct to do as instructed above?

No. The “Drive” software is for different hardware. FYI, JetPack/SDK Manager is a GUI frontend to actual flash, and what is getting flashed is “Linux for Tegra” (“L4T”). The two have their release versions tied together. Take a look here for whatever the most recent release is which is compatible with your AGX Orin dev kit:

I will suggest an Ubuntu 20.04 host PC (though 18.04 will work). 22.04 will not work (the GUI front end has no issue with 22.04, but the underlying software being flashed does).

Hello.

I’ve been checking it since the last inquiry, but rt kernel is still not installed.

I proceeded with reference to the link you told me last time, and most of the process was conducted without errors.

However, an error occurred when executing the last flash.sh.

It is currently running directly from the orin pc connected in recovery mode and is ubuntu20.04.

Am I doing something wrong?

In rootfs/usr/lib/modules, rt is created, and everything that needs to be copied is done.

Please refer to the attached picture and reply.

Thank you.


5

Hi,
Please download the source code package:
Jetson Linux 35.2.1 | NVIDIA Developer

Driver Package (BSP) Sources

And build RT Kernel from the source. We have verified the steps with x86 host PC in Ubuntu 18.04. Looks like your host PC is in 20.04. Ideally it should work but would be great if you can have host PC in 18.04.

There’s something confusing.

I have installed jetpack 5.1 on the orin pc by running sdkmanager on the host pc.

And all the process of the manual was conducted in the original PC.

I used host pc only for jetpack installation at first, but should I proceed with host pc instead of doing the manual in the original pc?

And I downloaded Driver Package (BSP) Sources to host pc, but only the Linux for Tegra/source/public folder is created. So flash.sh file does not exist.

This won’t answer everything, but some tips:

  • Kernels and kernel modules can be built directly on a Jetson (native compile) or indirectly on the Ubuntu host PC (cross compile). Official docs are about cross compile. Both create the same thing.
  • Kernel source itself is independent of flashing. There are multiple ways to install kernels (integrated features) and modules (loadable features/drivers). Flash is one of them. So long as security fuses are not burned, there are also ways of doing this via file copy instead of flash.
  • No flash.sh is related to kernel build. You configure the source, and then build it. Official docs say how to do this for cross compile.
  • Much of native compile and cross compile are exact matches in instructions. If you are interested in native compile, or extra information, see:

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