Getting started with the Nvidia Jetson Platform
Make sure you have at least 15 GB of free space on your Linux machine. This file copying process takes approximately one hour. The flashing process ends with 'Reset the board to boot from internal eMMC.'
NVIDIA Jetson TX2 Getting Started
NVIDIA Jetson TX2 Specification | |
CPU | Cortex A57 |
GPU | Pascal GPU with 256 CUDA cores |
RAM | 8 Gbyte |
Host Adaptor System | xhci-hcd |
Operating System | Ubuntu 16.04 Linux tegra-ubuntu 4.4.38-tegra |
Software | Spinnaker 1.5.0.27 Linux ARM64 |
Camera and Firmware | GS3-U3-23S6M (firmware 2.25.3.0) BFS-U3-51S5C (firmware 1704.0.13.0) |
- Follow NVIDIA’s Quick Start Guide file to install the latest 64-bit Linux 4 Tegra release package.64-bit Linux for Tegra R28.1 was used for this application note.
Note: This step overwrites your existing file system. - Install 64-bit Spinnaker ARM by downloading the latest Spinnaker 64-bit ARM and follow the readme file for installation instructions. Spinnaker 1.5.0.27 SDK - ARM64 - Ubuntu 16.04 (64-bit) — 08/22/2017 was used for this application note.
The steps above allow you to stream your USB3 camera at a maximum image size of 2 MB. To acquire images greater than 2 MB in resolution, add the following to the APPEND line:
usbcore.usbfs_memory_mb=1000
to this file:
/boot/extlinux/extlinux.conf
Benchmarks for the NVIDIA Jetson TX2
These are the results from a console application that continuously captures images using GS3-U3-23S6M and BFS-U3-51S5C-C. The resulting benchmark using the console application is shown below. The resulting benchmark using the console application is shown below. In our console application, we enabled maximum packet size supported on the Gigabit host controller, which is 9000 bytes.
Requested Frame Rate | Processed Frame Rate | CPU Usage | Bandwidth | |
---|---|---|---|---|
1920 x 1200 Raw8 |
163 FPS |
163 FPS |
~45% |
358 MB/s |
Requested Frame Rate | Processed Frame Rate | CPU Usage | Bandwidth | |
---|---|---|---|---|
2448 x 2048 BayerRG8 |
75 FPS |
75 FPS |
~50% |
358 MB/s |
- Follow NVIDIA’s readme file and boot up the pre-installed Ubuntu 14.04 on TK1.
- By default, Jetson TK1 does not provide support for USB3 cameras. To enable USB3 support:
- Go to https://developer.nvidia.com/linux-tegra-rel-19 and download both of these tar-balls:
- Driver Package: Jetson TK1
- Sample file system
- On the Linux PC, unzip the tar files by running the command:
export RELEASE_NAME=Tegra124_Linux_R19.3.0_armhf.tbz2
sudo tar xpf ${RELEASE_NAME}
cd Linux_for_Tegra/rootfs/
sudo tar xpf ../../Tegra_Linux_Sample-Root-Filesystem_R19.3.0_armhf.tbz2
cd ../
Note: It’s important to use sudo to extract these files. - In the extracted Linux_for_Tegra folder, edit the jetson-tk1.conf file by uncomment the line (ODMDATA=0x6209C000) for USB2 and comment in the line for USB3 (ODMDATA=0x6009C000).
- Enter
sudo ./apply_binaries.sh
- Connect the TK1 to the Linux machine using the micro-USB cable that comes with the TK1.
- On the TK1, hold down the Recovery button and press the Reset button once. Wait two seconds and release the Recovery button.
- Verify that the TK1 is connected to the Linux PC by issuing the
lsusb
command on the Linux PC and look for a connected usb device called NVIDIA Corp. - Copy the Linux_for_Tegra folder unzipped in step 2 to your Linux machine.
- In the Linux machine, enter
sudo ./flash.sh -S 14GiB jetson-tk1 mmcblk0p1
- Go to https://developer.nvidia.com/linux-tegra-rel-19 and download both of these tar-balls:
- Reboot TK1 by pressing the Reset button.
The steps above will allow you to stream your USB3 camera at a maximum image size of 2 MB. To acquire images greater than 2 MB in resolution, add the following to the APPEND line:
usbcore.usbfs_memory_mb=1000
to this file:/boot/extlinux/extlinux.conf
NVIDIA Jetson TX1 Getting Started
NVIDIA Jetson TX1 Specification | |
CPU | Cortex A57 |
GPU | Maxwell GPU with 256 CUDA cores |
RAM | 4 Gbyte |
Host Adaptor System | xhci-hcd |
Operating System | Ubuntu 16.04 Linux tegra-ubuntu 3.10.96-tegra |
Software | Spinnaker 1.5.0.37 Linux ARM64 |
Camera and Firmware | GS3-U3-23S6M (firmware 2.25.3.0) BFS-U3-51S5C (firmware 1704.0.13.0) |
- Follow NVIDIA’s Quick Start Guide file to install the latest 64-bit LT4 release package. L4T release package ->Tegra X1->Jetson TX1 R24.2.1 - September 2016 was used for this application note.
Note: This step overwrites your existing file system. - Install 64-bit Spinnaker ARM by downloading the latest Spinnaker 64-bit ARM and follow the readme file for installation instructions. Spinnaker 1.5.0.27 SDK - ARM64 - Ubuntu 16.04 (64-bit) — 08/22/2017 was used for this application note.
- Install the g++ compiler in order to install the Spinnaker SDK’s C++ samples:
sudo apt-get update
sudo apt-get install build-essential
The steps above allow you to stream your USB3 camera at a maximum image size of 2 MB. To acquire images greater than 2 MB in resolution, add the following to the APPEND line:
usbcore.usbfs_memory_mb=1000
to this file:
/boot/extlinux/extlinux.conf
Benchmarks for NVIDIA Jetson TX1
These are the results from a console application that continuously captures images using GS3-U3-23S6M and BFS-U3-51S5C-C. The resulting benchmark using the console application is shown below.
The resulting benchmark using the console application is shown below. In our console application, we enabled maximum packet size supported on the Gigabit host controller, which is 9000 bytes.
Requested Frame Rate | Processed Frame Rate | CPU Usage | Bandwidth | |
---|---|---|---|---|
1280 x 960 Raw8 |
202 FPS |
202 FPS |
~32% |
236 MB/s |
1920 x 1200 Raw8 |
163 FPS |
155 FPS |
~30% |
340MB/s |
Requested Frame Rate | Processed Frame Rate | CPU Usage | Bandwidth | |
---|---|---|---|---|
2448 x 2048 BayerRG8 |
75 FPS |
75 FPS |
~37% |
358 MB/s |
The following tables benchmark the performance of running selected USB3 or GigE cameras on the following boards: ODROID-XU; Samsung Exynos 5250 Arndale, and NVIDIA Jetson TK1 sand TX1, and TX2.
Troubleshooting
Image Transfer Fails to Start when Image Size is Bigger than 2 MB
Cause: The USBFS buffer size is too small (16 MB by default). Use the following command to check usbfs_memory_mb size.
cat /sys/module/usbcore/parameters/usbfs_memory_mb
Solution: Increase the memory by adding the following to the APPEND line:
usbcore.usbfs_memory_mb=1000
to this file:
/boot/extlinux/extlinux.conf
If this method fails to set the memory limit, run the following command:
sudo sh -c 'echo 1000 > /sys/module/usbcore/parameters/usbfs_memory_mb'
Camera is Detected but Cannot Stream
Cause: The USB3 bus power provided by the ARM board is not sufficient to power the camera.
Solution: Power the USB3 camera using a GPIO cable.
GigE Camera Frame Rates are extremely low on Jetson TK1, TX1, or TX2 board
Cause: The socket buffer size by default is too low.
Solution: Increase socket buffer size by typing in the following in Terminal:
sudo sysctl –w net.core.rmem_max=33554432
sudo sysctl –w net.core.wmem_max=33554432
sudo sysctl –w net.core.rmem_default=33554432
sudo sysctl –w net.core.wmem_default=33554432