-
Notifications
You must be signed in to change notification settings - Fork 17
l4t_prebuilt_image
You can use our prebuilt Linux4Tegra (r24.2.1) image (based on hdmi2csi/l4t-r24-2.1@1685ac7) for the TX1 to skip the compiling of the Linux driver kernel.
The prebuilt image contains:
- APP partition:
- Kernel
- based on Nvidia 3.10.96 for L4T 24.2.1
- including our custom drivers for tc358840 and the tegra_vi2
- DeviceTree
- including tc358840 configuration
- Root File System
- default L4T 24.2.1 based on Ubuntu 16.04
- Kernel
- EBT partition:
- U-Boot with modified pinmux config (for details see #1)
- Before starting with our image, make sure your TX1 is flashed to the current L4T version 24.2.1 (you can use the Jetpack from Nvidia, only select to flash the OS to the TX1, the other components are not necessary)
![Drawing](https://cloud.githubusercontent.com/assets/19492370/24002297/a6ca6c2e-0a60-11e7-850b-21abc71458f4.png)
- You need a host PC with Linux (e.g. Ubuntu 14.04 64bit) and a Nvidia Jetson TX1
- Download Nvidia Jetson TX1 64-bit Driver Package to the host PC and unpack it (new version for 24.2.1)
- Connect the TX1 to your host PC via Micro-USB and enter the recovery mode on the TX1 (hold down the REC-button while quickly pressing RST)
- On your host you should see a new Nvidia USB device:
$ lsusb ... Bus 001 Device 080: ID 0955:7721 NVidia Corp. ...
- Change directory to your Nvidia Jetson TX1 64-bit Driver Package
$ cd Linux_for_Tegra/bootloader
- Download the prebuilt image
- Unzip the image (14GB):
$ gunzip tx1_hdmi2csi_l4t_r24_2.1_g1685ac7.img.gz
- Download the SHA1 checksum
- Check the checksum, should return
OK
:
$ sha1sum -c tx1_hdmi2csi_l4t_r24_2.1_g1685ac7.img.sha1sum
- Flash the unzipped image to your TX1:
$ sudo ./tegraflash.py --bl ./t210ref/cboot.bin --applet nvtboot_recovery.bin --chip 0x21 --cmd "write APP tx1_hdmi2csi_l4t_r24_2.1_g1685ac7.img"
- This process takes around 25 min and should finish with:
...
[ 1.6931 ] Writing partition
[ 1.6947 ] tegradevflash --write APP /YOURPATH/Linux_for_Tegra/bootloader/tx1_hdmi2csi_l4t_r24_2.1_g1685ac7.img
[ 1.6962 ] Cboot version 00.01.0000
[ 2.5005 ] Writing partition APP with /YOURPATH/Linux_for_Tegra/bootloader/tx1_hdmi2csi_l4t_r24_2.1_g1685ac7.img
[ 2.5013 ] [................................................] 100%
[ 1389.8960 ]
-
Since L4T 24.2.1 we also need to replace the EBT partition containing U-Boot:
-
Download the prebuilt image for the EBT partition
- Unzip the image (4MB):
$ gunzip tx1_hdmi2csi_l4t_r24_2.1_gdd13899-dirty_EBT.img.gz
- Download the SHA1 checksum for the EBT partition
- Check the checksum, should return
OK
:
$ sha1sum -c tx1_hdmi2csi_l4t_r24_2.1_gdd13899-dirty_EBT.img.sha1sum
-
Flash the unzipped EBT image to your TX1:
$ sudo ./tegraflash.py --bl ./t210ref/cboot.bin --applet nvtboot_recovery.bin --chip 0x21 --cmd "write EBT tx1_hdmi2csi_l4t_r24_2.1_gdd13899-dirty_EBT.img"
- This process takes only a few seconds and should finish with:
...
[ 1.6931 ] Writing partition
[ 1.6947 ] tegradevflash --write APP /YOURPATH/Linux_for_Tegra/bootloader/tx1_hdmi2csi_l4t_r24_2.1_gdd13899-dirty_EBT.img
[ 1.6962 ] Cboot version 00.01.0000
[ 2.5005 ] Writing partition APP with /YOURPATH/Linux_for_Tegra/bootloader/tx1_hdmi2csi_l4t_r24_2.1_gdd13899-dirty_EBT.img
[ 2.5013 ] [................................................] 100%
[ 1389.8960 ]
- Success! Now you can reboot your TX1 by pressing the RST button
Test by capturing a 2160p30 capable HDMI source and displaying it on a local HDMI display
- Connect a HDMI source capable of 2160p30 to input HDMI IN A of the HDMI2CSI board
- Connect a display to the HDMI output of the Nvidia TX1 Jetson board
- Start the TX1, login via SSH or serial console or on the HDMI display
- Load the subdevice driver:
$ sudo modprobe tc358840
- Launch a GStreamer pipeline for capturing 2160p30 (using MMAP io-mode):
$ gst-launch-1.0 v4l2src ! 'video/x-raw, width=3840, height=2160, framerate=30/1, format=UYVY' ! nvvidconv ! 'video/x-raw(memory:NVMM), width=3840, height=2160, framerate=30/1, format=I420' ! nvoverlaysink sync=false
- Choosing kernel: There are three kernels preinstalled:
- Versions:
- 1: Unmodified Nvidia L4T R24.2.1 (named primary kernel, but this is not the default. This kernel does not support capturing HDMI.)
- 2: hdmi2csi (boots per default) R24.2.1 with our drivers
- 3: hdmi2csi (R24.2.1 with our drivers but HDMI-In B disabled in devicetree)
- While booting the TX1 prints out messages from the different booting stages: U-Boot, Extlinux and finally the Kernel. Extlinux gives you a prompt to choose one of the three kernel, by default it boots 2: hdmi2csi.
- To be able to choose the kernel, you need to connect a serial console to UART0 on connector J21 (see http://jetsonhacks.com/nvidia-jetson-tx1-j21-header-pinout/), which is a 115200 Baud 8N1 UART.
- Versions:
- In order to use advanced modes for passing buffers through the pipeline, you need to switch to a newer version of GStreamer (1.8.0) with some additional patches. This version is preinstalled and can be activated by setting these environment variables (this means you dont need to do this step: Build GStreamer:
$ export LD_LIBRARY_PATH=/home/ubuntu/build/gst_1.8.0/out/lib/
$ export PATH=/home/ubuntu/build/gst_1.8.0/out/bin/:$PATH
$ export GST_PLUGIN_PATH=$LD_LIBRARY_PATH
-
Credentials
- User: ubuntu
- Pw: ubuntu
-
If you get this output from the
tegraflash.py
:
...
[ 0.0613 ] Sending bootloader and pre-requisite binaries
[ 0.0629 ] tegrarcm --download ebt cboot.bin 0 0
[ 0.0644 ] USB communication failed.Check if device is in recovery
[ 0.1255 ]
Error: Return value 8
Command tegrarcm --download ebt cboot.bin 0 0
-> This means your TX1 is not connected via USB-micro to the host or it was not correctly set into Recovery mode
-
HDMI-display connected to TX1 stays black after booting
- The console output of the kernel while booting tries to read the EDID of the connected display. There is a bug with some displays, where this EDID read during booting leads to a kernel crash. If you use such a monitor, the only workaround is currently to disconnect it during boot and only connect it after Ubuntu has started.
-
HDMI-display resolution is not as expected
- Inspect the possible resolutions:
$ export DISPLAY=:0 $ xrandr
- Set the resolution of the display to 2160p30:
$ export DISPLAY=:0 $ xrandr --output HDMI-0 --mode 3840x2160 --rate 30.0
-
GStreamer Pipeline fails
- Currently there is a limitation concerning which io-modes can be used with certain GStreamer versions. The most basic way is to use the MMAP mode with GStreamer 1.2.4. This version of GStreamer is used per default, you can check the version with
gst-launch-1.0 --version
. The most basic example is described in Video Capturing Test. - For more advanced io-modes a newer version of GStreamer is required, i.e. 1.8.0. The different modes for passing buffers through the pipeline are described in io-modes
- Currently there is a limitation concerning which io-modes can be used with certain GStreamer versions. The most basic way is to use the MMAP mode with GStreamer 1.2.4. This version of GStreamer is used per default, you can check the version with
(The old, deprecated image for L4T 24.1 is available: Prebuilt Image for L4T 24.1)