Jump to content

NVIDIA Jetson Orin/JetPack 5.0.2/Getting Started/Components: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 3: Line 3:
</noinclude>
</noinclude>


This section provides an overview of some of the main software components in Jetpack 5.0 for the Orin AGX. Also, an overview of the changes to the capture subsystem at the software level is provided.
This section provides an overview of some of the main software components in Jetpack 5.0 for the Orin AGX.


<!--
<!--
Line 25: Line 25:




== Jetpack Components Comparison ==


{| class="wikitable" style="margin: auto;"
== TensorRT ==
|-
! Package
! Jetpack 5.0 Version
! Jetpack 4.6.1 Version
|-
| '''Linux for Tegra'''
| 34.1
| 32.7.1
|-
| '''TensorRT'''
| 8.4.0 Early Access
| 8.2.1
|-
| '''cuDNN'''
| 8.3.2 
| 8.2.1
|-
| '''CUDA'''
| 11.4.6
| 10.2
|-
| '''OpenCV'''
| 4.5.4 (Developer Preview)
| 4.1.1
|-
| ''' Vision Programing Interface (VPI) '''
| 2.0
| 1.2
|-
|}
 
== New feature for kernel 5.10 ==
 
 
=== TensorRT ===


TensorRT is a framework created and published by NVIDIA for deep learning inference runtime. Jetpack 5.0 Developer Preview includes TensorRT 8.4.0 Early Access (EA). This EA is for early testing and feedback. For production, the documentation recommends continuing to use TensorRT 8.2.3 or later TensorRT 8.2.x patch.
TensorRT is a framework created and published by NVIDIA for deep learning inference runtime. Jetpack 5.0 Developer Preview includes TensorRT 8.4.0 Early Access (EA). This EA is for early testing and feedback. For production, the documentation recommends continuing to use TensorRT 8.2.3 or later TensorRT 8.2.x patch.
Line 72: Line 36:
* PyTorch 1.9.0
* PyTorch 1.9.0


=== CUDA ===
== CUDA ==
CUDA Toolkit provides a comprehensive development environment for C and C++ developers building GPU-accelerated applications. The toolkit includes a compiler for NVIDIA GPUs, math libraries, and tools for debugging and optimizing the performance of your applications.
CUDA Toolkit provides a comprehensive development environment for C and C++ developers building GPU-accelerated applications. The toolkit includes a compiler for NVIDIA GPUs, math libraries, and tools for debugging and optimizing the performance of your applications.


Line 224: Line 188:
The last update of CUDA 11.4 is Update 4, in which the Linux x86_64 Driver Version is >=470.82.01.
The last update of CUDA 11.4 is Update 4, in which the Linux x86_64 Driver Version is >=470.82.01.


=== Multimedia API ===
== Multimedia API ==


The Jetson Linux API Reference describes several APIs or API extensions that are implemented in NVIDIA® Jetson™ Linux Driver Package (L4T). You can use these APIs to customize aspects of your Jetson device's behavior.
The Jetson Linux API Reference describes several APIs or API extensions that are implemented in NVIDIA® Jetson™ Linux Driver Package (L4T). You can use these APIs to customize aspects of your Jetson device's behavior.
Line 236: Line 200:
* New NVUtils Multimedia buffer management and buffer transformation API.
* New NVUtils Multimedia buffer management and buffer transformation API.


=== Camera Interface ===
TBD (To Be Defined)


== Drivers comparasion ==
= Jetpack Components Comparison =
Comparison between imx219.c imx214.c drivers in Jetpack 5.0 and Jetpack 4.6.1, if the information is provided.


In the driver imx219.c added #if LINUX_VERSION_CODE and deleted #include <linux/version.h>
{| class="wikitable" style="margin: auto;"
But in both drivers, the logic of the drivers is the same.
 
== Difference between Kernel 4.9  to Kernel 5.10 ==
 
=== Configuration Changes ===
The principal changes are resumed in the next table.
 
{| class="wikitable" style="margin-right: 22em;"
|-
|-
! Environment variable
! Package
! Kernel 4.9
! Jetpack 5.0 Version
! Kernel 5.10
! Jetpack 4.6.1 Version
|-
|-
| CONFIG_MEDIA
| '''Linux for Tegra'''
| N/A
| 34.1
| <ul><li> CONFIG_MEDIA_PLATFORM_SUPPORT=y
| 32.7.1
      <li> CONFIG_MEDIA_TEST_SUPPORT=y
  </ul>
|-
|-
| CONFIG_TEGRA_GRHOST
| '''TensorRT'''
| N/A
| 8.4.0 Early Access
| <ul><li> CONFIG_TEGRA_GRHOST_NVCSI=y
| 8.2.1
      <li> CONFIG_TEGRA_GRHOST_SLVSEC=y
  </ul>
|-  
|-  
| CONFIG_VIDEO
| '''cuDNN'''
| N/A
| 8.3.2 
| <ul><li> CONFIG_VIDEO_ISC=m
| 8.2.1
      <li> CONFIG_VIDEO_CDI=m
  </ul>
|-
| CONFIG_VIDEO (sensor)
| <ul><li> CONFIG_VIDEO_IMX185=m
      <li> CONFIG_VIDEO_IMX268=y
      <li> CONFIG_VIDEO_IMX318=y
      <li> CONFIG_VIDEO_OV9281=y
      <li> CONFIG_VIDEO_OV10823=y
      <li> CONFIG_VIDEO_OV23850=y
      <li> CONFIG_VIDEO_IMX390=y
      <li> CONFIG_VIDEO_IMX219=y
      <li> CONFIG_VIDEO_IMX274=m
      <li> CONFIG_VIDEO_LC898212=y
      <li> CONFIG_VIDEO_OV5693=mSen
  </ul>
| <ul><li> CONFIG_NV_VIDEO_IMX185=m
      <li> CONFIG_NV_VIDEO_IMX268=m
      <li> CONFIG_NV_VIDEO_IMX318=m
      <li> CONFIG_NV_VIDEO_OV9281=m
      <li> CONFIG_NV_VIDEO_OV10823=m
      <li> CONFIG_NV_VIDEO_OV23850=m
      <li> CONFIG_NV_VIDEO_IMX390=y
      <li> CONFIG_NV_VIDEO_IMX219=m
      <li> CONFIG_NV_VIDEO_IMX274=m
      <li> CONFIG_NV_VIDEO_LC898212=m
      <li> CONFIG_NV_VIDEO_OV5693=m
  </ul>
|-
|-
| CONFIG_THERMAL_GOV
| '''CUDA'''
| CONFIG_THERMAL_GOV_CONTINUOUS=y
| 11.4.6
| N/A
| 10.2
|-
|-
|}
| '''OpenCV'''
 
| 4.5.4 (Developer Preview)
=== Sensor Driver File Name Changes ===
| 4.1.1
The drivers file name in the Kernel 4.9 are imx185.c, imx268.c, imx318.c, ov9281.c, ov10823.c, ov23850.c, imx390.c, imx219.c, imx274.c, lc898212, ov5693.c, but in the Kernel 5.10 the prefix is ​​added nv_ before the drive file name.
 
For example, the imx219 driver name in kernel 4.9 is imx219.c, but the same driver in the kernel 5.10, the file name is nv_imx219.c
 
=== Guarding Kernel Version-Specific Code ===
 
NVIDIA-specific kernel code in kernel/nvidia/ is guarded by checks that compare the LINUX_VERSION_CODE macro against KERNEL_VERSION(x, x, x).
 
Also, there are important changes in the new driver by comparing the following macros:
 
The use of powergate_id is dropped, as tegra_powergate is deprecated in kernel version 5.10. The following table shows the paths of the kernel 5.10 and the previous kernel.
 
{| class="wikitable" style="margin-right: 22em;"
|-
|-
! Kernel 4.9
| ''' Vision Programing Interface (VPI) '''
! Kernel 5.10
| 2.0
|-
| 1.2
| kernel/kernel-4.9/include/linux/tegra_pm_domains.h
| kernel/kernel-5.10/include/linux/pm_domain.h
|-
|}
 
To replace the video buffer state, the V4L2 framework changes by adapting the VI drivers. Also, by doing this adaptation, V4L2 framework changes to time related v4l2-ctl APIs and structures. Some examples provided by NVIDIA are shown in the following table:
 
{| class="wikitable" style="margin-right: 22em;"
|-
! Kernel 4.9
! Kernel 5.10
|-
| getrawmonotonic()
| ktime_get_ts64 
|-
| struct timespec
| struct timespec64
|-
| ns_to_timespec
| ns_to_timespec64
|-
|-
| VB2_BUF_STATE_REQUEUEING
| VB2_BUF_STATE_ERROR
|-
| VFL_TYPE_VIDEO
kernel/kernel-4.9/​include/media/v4l2-dev.h
| VFL_TYPE_GRABBER
kernel/kernel-5.10/​include/media/v4l2-dev.h 
|-
| v4l2_mbus_type for kernel version 4.9:
kernel/kernel-4.9/
​include/media/v4l2-mediabus.h
| Modified enum type for C-PHY and D-PHY in v4l2_mbus_config:
/dev-main_l4t/kernel/kernel-5.10/
​include/media/v4l2-mediabus.h
|}
|}


=== I2C API and dev_err() Function===
I2C API and dev_err() function changes as can be seen in the following comparative table.
{| class="wikitable" style="margin-right: 22em;"
|-
! Kernel 4.9
! Kernel 5.10
|-
| kernel/kernel-4.9/​include/linux/device.h
| kernel/kernel-5.10/​include/linux/dev_printk.h
|-
| <ul> <li> i2c_lock_adapter() and i2c_unlock_adapter()
    <li> kernel/kernel-4.9/​include/linux/i2c.h
  </ul>
| <ul><li> i2c_lock_bus() and i2c_unlock_bus()
      <li> kernel/kernel-5.10/​include/linux/i2c.h
  </ul>
|-
| <ul><li> i2c_new_device()
    <li> kernel/kernel-4.9/​drivers/i2c/i2c-core.c
  </ul>
| <ul><li> i2c_new_client_device()
    <li> kernel/kernel-5.10/​drivers/i2c/i2c-core-base.c
  </ul>
|-
|}
=== NVIDIA Capture Driver Code Path ===
The new capture mode driver file paths for channel configuration (VI, ISP) is
<pre>
kernel/nvidia/drivers/​media/platform/tegra/camera/fusa-capture/
</pre>
Also, the driver for the VI is the vi5.


<noinclude>
<noinclude>
{{NVIDIA Jetson Orin/Foot|JetPack 5.0‎/Getting Started/Wizard Flashing|JetPack 5.0‎/Compiling_Code}}
{{NVIDIA Jetson Orin/Foot|JetPack 5.0‎/Getting Started/Wizard Flashing|JetPack 5.0‎/Compiling_Code}}
</noinclude>
</noinclude>
1,593

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.