Jetson36.4.3 Regarding rt Kernel related questions

Referring to the operation of Kernel Customization — NVIDIA Jetson Linux Developer Guide, where “./generic_rt_build.sh “enable””, may I ask the difference and application scenarios between RT kernel and non RT kernel, and from which version was RT kernel introduced? Is this feature available in Jetson34.4.1?

If rt kernel is enabled, will make modulars_install only update rootfs/usr/lib/modules/5.15.148-rt Tegra and not rootfs/usr/lib/modules/5.15.148-tegra?

How to determine if the current system is rt kernel?

*** Please note that this reply is generated by LLM automatically ***

The question revolves around the differences and application scenarios between Real-Time (RT) kernel and non-RT kernel in the context of NVIDIA Jetson Linux, specifically focusing on the Jetson AGX Orin platform. Additionally, it inquires about the introduction version of the RT kernel, its availability in Jetson modules, the impact of enabling RT kernel on module installation, and how to determine if the current system is using an RT kernel.

Introduction to RT and Non-RT Kernels

  1. Non-RT Kernel: The standard Linux kernel is designed for general-purpose computing and does not guarantee predictable or low-latency responses to events. It is suitable for most applications, including desktop computing, servers, and many embedded systems where real-time responses are not critical.

  2. RT Kernel (Real-Time Kernel): The RT kernel, also known as the PREEMPT_RT kernel, is a variant of the Linux kernel that has been modified to provide predictable and low-latency responses. It achieves this through various patches and modifications that reduce or eliminate sources of latency and jitter in the kernel. The RT kernel is essential for applications requiring strict timing and low latency, such as in robotics, audio processing, control systems, and certain types of scientific instrumentation.

Differences and Application Scenarios

  • Predictability and Latency: The most significant difference between RT and non-RT kernels is their ability to provide predictable and low-latency responses. RT kernels are designed to minimize the time it takes for the system to respond to an event, making them suitable for real-time applications.

  • Application Scenarios:

    • Non-RT Kernel: Suitable for applications where predictability and low latency are not critical, such as general computing, web servers, and many consumer electronics.
    • RT Kernel: Ideal for applications requiring strict timing and low latency, such as industrial control systems, medical devices, professional audio equipment, and autonomous vehicles.

Introduction Version of RT Kernel

The Real-Time kernel patches have been available for Linux for many years, with the first versions of the PREEMPT_RT patchset being released in the early 2000s. However, the integration of these patches into the mainline Linux kernel has been an ongoing process, with significant advancements and improvements over the years. For NVIDIA Jetson devices, the support for RT kernel has been introduced in specific versions of JetPack, NVIDIA’s development platform for Jetson devices.

Availability in Jetson Modules

The RT kernel is available for certain Jetson modules, including the Jetson AGX Orin, as part of the JetPack software development kit (SDK). The specific version of JetPack that introduces RT kernel support for each module may vary, so it’s essential to check the documentation for the specific Jetson module and JetPack version being used.

Impact of Enabling RT Kernel on Module Installation

Enabling the RT kernel can affect how modules are installed and updated. When the RT kernel is enabled, the system may prioritize the installation of RT kernel-compatible modules over non-RT kernel modules. This could mean that only RT kernel-compatible versions of certain packages (like rootfs/usr/lib/modules/5.15.48-rt) are updated or installed, potentially skipping non-RT versions (like rootfs/usr/lib/modules/5.15.48-tegra).

Determining if the Current System is Using an RT Kernel

To determine if the current system is using an RT kernel, you can follow these steps:

  1. Check the Kernel Version: Run the command uname -r in the terminal. If the kernel version contains “-rt” (e.g., 5.15.48-rt), it indicates an RT kernel.

  2. Verify PREEMPT_RT Configuration: Check the kernel configuration using grep PREEMPT_RT /boot/config-$(uname -r). If PREEMPT_RT is enabled, it will show CONFIG_PREEMPT_RT=y.

  3. System Behavior: Observe the system’s behavior under load. RT kernels are designed to maintain low latency even under heavy system load, which can be observable through system monitoring tools.

In conclusion, the choice between an RT kernel and a non-RT kernel depends on the specific requirements of the application or system. For applications requiring predictable and low-latency responses, the RT kernel is the preferred choice. NVIDIA’s Jetson platforms, including the Jetson AGX Orin, support RT kernels through specific versions of JetPack, providing developers with the tools needed to build real-time applications.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Sorry, my question was not answered.

Hi,

The kernel we use is same as the upstream.
Since it is open source, you could refer to related linux doc.

Yes

Yes, but AGX Orin not compatible with r34.4.1
Please refer to JetPack Archive | NVIDIA Developer.

uname -r

What are the differences between rt kernel and non rt kernel? We mainly focus on edge computing, with few peripherals connected. Which mode should we choose in this case.

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