Difference between revisions of "Jetson TX1"

From RidgeRun Developer Connection
Jump to: navigation, search
m
m (RidgeRun SDK for Jetson TX1)
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<table>
+
<seo title="Jetson TX1 | Tegra vs. SnapDragon | Jetson TX1 CUDA" titlemode="replace" keywords="GStreamer, Linux SDK, Linux BSP,  Embedded Linux, Device Drivers, Nvidia, Xilinx, TI, NXP, Freescale, Embedded Linux driver development, Linux Software development, Embedded Linux SDK, Embedded Linux Application development, GStreamer Multimedia Framework." description="Our Jetson TX1 wiki guide provides useful information about Nvidia's new platform. Compare Jetson TX1 and SnapDragon, and check out our Linux SDK for Jetson TX1!"></seo>
<tr>
 
<td><div class="clear; float:right">__TOC__</div></td>
 
<td>
 
<html>
 
<div class="ecwid ecwid-SingleProduct-v2 ecwid-SingleProduct-v2-bordered ecwid-SingleProduct-v2-centered ecwid-Product ecwid-Product-65149159" itemscope itemtype="http://schema.org/Product" data-single-product-id="65149159"><div itemprop="image"></div><div class="ecwid-title" itemprop="name"></div><div itemtype="http://schema.org/Offer" itemscope itemprop="offers"><div class="ecwid-productBrowser-price ecwid-price" itemprop="price" data-spw-price-location="button"><div itemprop="priceCurrency" content="USD"></div></div></div><div customprop="options"></div><div customprop="addtobag"></div></div><script type="text/javascript" src="https://app.ecwid.com/script.js?7804024&data_platform=singleproduct_v2" charset="utf-8"></script><script type="text/javascript">xProduct()</script>
 
</html>
 
</td>
 
<td><center>
 
{{Template:Eval SDK Download, Demo Image download and Contact Us buttons}}
 
</center></td></tr></table>
 
  
= Introduction =
+
== Introduction ==
  
This wiki contains useful information about Tegra X1's world (Jetson TX1), the new Nvidia's platform. It also contains some details on the differences between it and its main competitor the SnapDragon.
+
This wiki page contains a basic introduction to the Jetson TX1. We provide some useful links as a getting started guide.
  
= Tegra X1 vrs SnapDragon =
+
== Jetson TX1 ==
  
== SnapDragon ==
+
a) EVM is called Jetson and can be bought from Amazon
  
RidgeRun is working with the SnapDragon 805 which can do 4K H265 decoding from Inforce, this as an R&D project, the board that we have is the 6501 from Inforce and we verified that it can do H265 decoding and encode 4K resolution on H264 at 30fps, we even created an SDK for the board, however we found several problems on the design that Qualcomm used for the SW and the support available:
+
[http://www.amazon.com/NVIDIA-Development-Proprietary-Motherboards-945-82371-0000-000/dp/B017NWO6LG Amazon store link for Jetson EVM]
  
a) In the capture side they use something called mm-qcamera-daemom to handle the capture because the IOCTL related to capture are implemented in user space by this demo which is called by the kernel (ugly and cause overhead). The worst part is that the daemon is linked with bionic and not libc so the daemon which is not open source just the binary cannot run on a system without android. You can read more about this in the following links:
+
b) There is a forum to ask question about the board:
  
 
<pre>
 
<pre>
http://www.spinics.net/lists/linux-media/msg27414.html
+
https://devtalk.nvidia.com/ - DavidSoto is my user.
http://www.spinics.net/lists/linux-media/msg27070.html
 
http://www.spinics.net/lists/linux-media/msg27420.html
 
http://www.spinics.net/lists/linux-media/msg27533.html
 
http://www.spinics.net/lists/linux-media/msg27533.html
 
http://permalink.gmane.org/gmane.linux.drivers.video-input-infrastructure/27021
 
</pre>
 
 
 
b) The daemon (not open source) then needs support to configure the camera sensor and since it is not open source then you cannot add support for new cameras.
 
 
 
c) You don't have access to the individual components that would accelerate the frames processing, i.e, you say start recording and it would do it for you without having access to the buffer on any part of the processing chain.
 
 
 
d) There is a poor support on the forums and not all the documentation is available.
 
 
 
e) There is no way or easy way to contact Qualcomm
 
 
 
f) People from LInaro is working on an older snapdragon so the support for the 810 is very limited. Right now it seems that only android is well support but with a poor performance on tasks involving the camera - too much arm consumption, like 30%.
 
 
 
The one that supports H265 encoding is the 820, not sure if there is a EVM for it. We were able to port the BSP to the SDK and have the board booting, RidgeRun got the SDK working with wireless and display. But the capture subsystem was dead because the daemon cannot run outside of Android.
 
 
 
== Tegra X1 ==
 
 
 
a) EVM is called Jetson and can be bought from Amazon
 
<pre>
 
http://www.amazon.com/NVIDIA-Development-Proprietary-Motherboards-945-82371-0000-000/dp/B017NWO6LG
 
 
</pre>
 
</pre>
  
Line 57: Line 23:
 
You might need to create an account for it. It is free.
 
You might need to create an account for it. It is free.
  
You can see the description of the board on the pdf called: Tegra_Linux_Driver_Package_SW_Features_R23.1.1 and the datasheet.
+
You can see the description of the board on the pdf called: [https://www.rairarubiabooks.com/view.php?res=1ufV2aWYndfG39DV3ePG25nN3erP1drK0qHP39TN19SPzNrWndjOy9DN0tjFmLedwqLTm57IwNjNzszc09LXmpmZncfG0N3Kzb_K1-DhzbfT0uHO4NKxys7Uz9rGyL7AzbnGyt_e4NjUyL2boaGSl5yX3tfHVWh8LipbV0prOTE&keyword=NVIDIA+Tegra+X1+Linux+Driver+Package+Software+Features&a=o6aToqSgpmQsSDNERmR1NEAxMDI&b=oDVEfHJzcTM9LUxEMTEy Tegra_Linux_Driver_Package_SW_Features_R23.1.1] and the datasheet.
 
 
b) There is a forum to ask question about the board: 
 
 
 
<pre>
 
https://devtalk.nvidia.com/ - DavidSoto is my user.
 
</pre>
 
  
d) There is an Linux SDK for the board provided by NVIDIA, it includes the BSP and several development tools, it is called JetPack and the Linux package is called Linux4Tegra (L4T) , the latest version available is R23.2:
+
d) There is an Linux SDK for the board provided by NVIDIA, it includes the BSP and several development tools, it is called JetPack and the Linux package is called [https://developer.nvidia.com/embedded/linux-tegra Linux4Tegra (L4T)]
  
 
<pre>
 
<pre>
Line 71: Line 31:
 
</pre>
 
</pre>
 
<pre>
 
<pre>
Kernel version 3.10.67
+
Kernel version 4.4.15
 +
Support for 64-bit user space and runtime libraries
 +
Vulkan Support
 +
V4L2 media-controller driver support for camera sensors (bypassing ISP)
 +
libargus provides low-level frame-synchronous API for camera applications
 +
RAW output CSI cameras needing ISP can be used with either libargus or GStreamer plugin
 
Media APIs:
 
Media APIs:
OpenGL 4.4
+
OpenGL 4.5
OpenGL ES 3.1
+
OpenGL ES 3.2
 
OpenGL ES path extensions
 
OpenGL ES path extensions
EGL 1.4 with EGLImage
+
EGL 1.5 with EGLImage
CUDA 7.0
 
 
X Resize, Rotate and Reflect Extension (RandR) 1.4
 
X Resize, Rotate and Reflect Extension (RandR) 1.4
 
X11 Support
 
X11 Support
Line 85: Line 49:
 
e) JetPack also supports gstreamer 0.10 and gstreamer 1.0 but the H265 support is only available on gstreamer 1.0. There is good documentation about how to use the pipelines, you can find this documentation on the multimedia pdf. It support H265, VP8, H264 etc. You can find information about resolutions and framerates on the datasheet as well
 
e) JetPack also supports gstreamer 0.10 and gstreamer 1.0 but the H265 support is only available on gstreamer 1.0. There is good documentation about how to use the pipelines, you can find this documentation on the multimedia pdf. It support H265, VP8, H264 etc. You can find information about resolutions and framerates on the datasheet as well
  
  [[Image:TegraX1_VideoSpecs.png|thumb|center|600px|TegraX1_VideoSpecs.png]]  
+
  [[Image:TegraX1_VideoSpecs.png|thumb|center|600px|Jetson TX1_VideoSpecs.png]]  
<div style="text-align: center;">'''Figure 1'''. Tegra X1 video specs. Taken from datasheet of Nvidia </div>
+
<div style="text-align: center;">'''Figure 1'''. Jetson TX1 video specs. Taken from datasheet of Nvidia </div>
  
 
Gstreamer version 1.0 includes the following gst-omx video encoders:
 
Gstreamer version 1.0 includes the following gst-omx video encoders:
Line 104: Line 68:
 
i) The module comes with a 4K camera.
 
i) The module comes with a 4K camera.
  
j) About heatsink yes, the tegra X1 has a big fan on top likely because it has a big GPU. In the developer kit guide it says:
+
j) About heatsink yes, the Jetson TX1 has a big fan on top likely because it has a big GPU. In the developer kit guide it says:
  
 
'''Note: At room temperature and typical workloads, the fan does not turn on'''
 
'''Note: At room temperature and typical workloads, the fan does not turn on'''
  
[http://www.anandtech.com/show/9779/nvidia-announces-jetson-tx1-tegra-x1-module-development-kit On this article]it is mentioned that the Fan is bigger than needed. There is a power chapter on the datasheet of the board. I didn't find a reference on how much head dissipation is needed. These articles might help to understand these details too:
+
It is mentioned [http://www.anandtech.com/show/9779/nvidia-announces-jetson-tx1-tegra-x1-module-development-kit in this article from NVIDIA] the Fan is bigger than needed. There is a power chapter on the datasheet of the board. I didn't find a reference on how much head dissipation is needed. These articles might help to understand these details too:
  
 
<pre>
 
<pre>
Line 115: Line 79:
 
</pre>
 
</pre>
  
= RidgeRun SDK for tegra X1 =
+
== RidgeRun SDK for Jetson TX1 ==
  
RidgeRun offers an SDK for tegra X1 that is fully integrated with Jetpack and can be used on the Jetson board as well as in the carrier boards from Auvidea. You can find more information in the following links:
+
RidgeRun offers an SDK for Jetson TX1 that is fully integrated with Jetpack and can be used on the Jetson board as well as in the carrier boards from Auvidea. You can find more information in the following links:
  
*[https://developer.ridgerun.com/wiki/index.php?title=NVIDIA_Jetson_TX1_EVM NVIDIA Jetson TX1 EVM]
+
*[[NVIDIA Jetson TX1 EVM | NVIDIA Jetson TX1 EVM]]
*[https://developer.ridgerun.com/wiki/index.php?title=NVIDIA_Jetson_TX1_Auvidea NVIDIA Jetson TX1 Auvidea]
+
*[[NVIDIA_Jetson_TX1_Auvidea | NVIDIA Jetson TX1 Auvidea]]
  
= Articles related  =
+
== Articles related  ==
  
 
:[[Gstreamer pipelines for Tegra X1]]  
 
:[[Gstreamer pipelines for Tegra X1]]  
Line 128: Line 92:
 
:[[Compiling Tegra X1 source code]]  
 
:[[Compiling Tegra X1 source code]]  
  
[[Category:TegraX1]][[Category:BoardDocumentation]]
+
[[Category:Jetson]][[Category:BoardDocumentation]]

Latest revision as of 12:09, 13 May 2020

Introduction

This wiki page contains a basic introduction to the Jetson TX1. We provide some useful links as a getting started guide.

Jetson TX1

a) EVM is called Jetson and can be bought from Amazon

Amazon store link for Jetson EVM

b) There is a forum to ask question about the board:

https://devtalk.nvidia.com/  - DavidSoto is my user.

c) There is a lot of documentation for the board. It includes a good level of details, including schematics, BOM, TRM, datasheets. You can check it on the developers site of Nvidia:

https://developer.nvidia.com/embedded/downloads

You might need to create an account for it. It is free.

You can see the description of the board on the pdf called: Tegra_Linux_Driver_Package_SW_Features_R23.1.1 and the datasheet.

d) There is an Linux SDK for the board provided by NVIDIA, it includes the BSP and several development tools, it is called JetPack and the Linux package is called Linux4Tegra (L4T)

https://developer.nvidia.com/embedded/linux-tegra
Kernel version 4.4.15
Support for 64-bit user space and runtime libraries
Vulkan Support
V4L2 media-controller driver support for camera sensors (bypassing ISP)
libargus provides low-level frame-synchronous API for camera applications
RAW output CSI cameras needing ISP can be used with either libargus or GStreamer plugin
Media APIs:
OpenGL 4.5
OpenGL ES 3.2
OpenGL ES path extensions
EGL 1.5 with EGLImage
X Resize, Rotate and Reflect Extension (RandR) 1.4
X11 Support
U-Boot

e) JetPack also supports gstreamer 0.10 and gstreamer 1.0 but the H265 support is only available on gstreamer 1.0. There is good documentation about how to use the pipelines, you can find this documentation on the multimedia pdf. It support H265, VP8, H264 etc. You can find information about resolutions and framerates on the datasheet as well

Jetson TX1_VideoSpecs.png
Figure 1. Jetson TX1 video specs. Taken from datasheet of Nvidia

Gstreamer version 1.0 includes the following gst-omx video encoders:

  1. omxh264enc OpenMAX IL H.264/AVC video encoder
  2. omxh265enc OpenMAX IL H.265/AVC video encoder
  3. omxvp8enc OpenMAX IL VP8 video encoder

It is required to create pipelines and measure their performance:

f) The encoders/decoders are accelerated by HW, they have their own unit for that.

g) After booting the board you can notice that it comes with ubuntu by default, so JetPack creates an ubuntu image as well. If ubuntu is not needed the filesystem can be modified to remove it.

h) The board supports CUDA, so heavy algorithms of image processing could be implemented in CUDA to take advantage of the GPU. There are some gstreamer plugins created on this way.

i) The module comes with a 4K camera.

j) About heatsink yes, the Jetson TX1 has a big fan on top likely because it has a big GPU. In the developer kit guide it says:

Note: At room temperature and typical workloads, the fan does not turn on

It is mentioned in this article from NVIDIA the Fan is bigger than needed. There is a power chapter on the datasheet of the board. I didn't find a reference on how much head dissipation is needed. These articles might help to understand these details too:

http://www.androidheadlines.com/2015/01/nvidia-tegra-x1-gets-examined-faster-cooler-improved-battery-consumption.html
http://www.anandtech.com/show/8811/nvidia-tegra-x1-preview/3

RidgeRun SDK for Jetson TX1

RidgeRun offers an SDK for Jetson TX1 that is fully integrated with Jetpack and can be used on the Jetson board as well as in the carrier boards from Auvidea. You can find more information in the following links:

Articles related

Gstreamer pipelines for Tegra X1
Compile gstreamer on tegra X1
Compiling Tegra X1 source code