Difference between revisions of "Yocto Support for NVIDIA Jetson Platforms - Setting up Yocto"

From RidgeRun Developer Connection
Jump to: navigation, search
Line 3: Line 3:
 
__TOC__
 
__TOC__
  
Note: The goal of this wiki guide is to provide the instructions to configure, build, and install Yocto in NVIDIA platforms based in previous experience of the RidgeRun engineers. We hope this provides some light to new people using Yocto in Jetson. The tutorial uses the meta-tegra layer for Yocto. Please note that the [https://github.com/OE4T/tegra-demo-distro#Prerequisites Yocto community also has a tutorial here]. If you face any problem please recall to [https://github.com/OE4T/tegra-demo-distro#Prerequisites check the Yocto community tutorial] as well.
+
Note: The goal of this wiki guide is to provide the instructions to configure, build, and install Yocto in NVIDIA platforms based in previous experience of the RidgeRun engineers. We hope this provides some light to new people using Yocto in Jetson. The tutorial uses the meta-tegra layer for Yocto. Please note that the [https://github.com/OE4T/tegra-demo-distro#Prerequisites Yocto community also has a tutorial here] and they do a really good job keeping it updated. If you face any problem please recall to [https://github.com/OE4T/tegra-demo-distro#Prerequisites check the Yocto community tutorial] as well.
  
 
== Select your Machine ==
 
== Select your Machine ==

Revision as of 13:56, 8 June 2023



  Index Next: Flashing the Jetson Platform


Nvidia-preferred-partner-badge-rgb-for-screen.png



Note: The goal of this wiki guide is to provide the instructions to configure, build, and install Yocto in NVIDIA platforms based in previous experience of the RidgeRun engineers. We hope this provides some light to new people using Yocto in Jetson. The tutorial uses the meta-tegra layer for Yocto. Please note that the Yocto community also has a tutorial here and they do a really good job keeping it updated. If you face any problem please recall to check the Yocto community tutorial as well.

Select your Machine

You can apply the instructions in this wiki for multiple devices, so, whenever you see <MACHINE>, replace it (with the <> symbols included) with your target platform. Below you will find the possible <MACHINE> substitutions.

Device <MACHINE>
TX1 jetson-tx1-devkit
TX2 jetson-tx2-devkit jetson-tx2-devkit-tx2i jetson-tx2-devkit-4gb*
XAVIER jetson-agx-xavier-devkit
NANO jetson-nano-devkit jetson-nano-devkit-emmc jetson-nano-2gb-devkit*
XAVIER NX jetson-xavier-nx-devkit* jetson-xavier-nx-devkit-emmc* jetson-xavier-nx-devkit-tx2-nx*
ORIN jetson-agx-orin-devkit
Note: the machines with * have NOT been tested by RidgeRun yet

Install Yocto Dependencies

1. Use the following command to install Yocto dependencies on Ubuntu.

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm

2. Create a working directory for Yocto

YOCTO_DIR=/home/$USER/yocto-tegra
mkdir $YOCTO_DIR

3. Select the latest stable branch (as per May 2020)

export BRANCH="dunfell"


4. Download alt font awesome.svg Download Yocto's Poky base meta-layer

cd $YOCTO_DIR
git clone -b ${BRANCH} git://git.yoctoproject.org/poky.git poky

5. Download alt font awesome.svg Download meta-tegra (contains L4T 32.6.1 as per March 2022)

git clone -b ${BRANCH} https://github.com/OE4T/meta-tegra.git

Compile Yocto image

1. Initialize the build environment

cd $YOCTO_DIR
source poky/oe-init-build-env build

2. Setup the required settings

local.conf

  • Open the file $YOCTO_DIR/build/conf/local.conf with your favorite text editor and append the following lines to the end of the file.
  • Setup the SSTATE and DOWNLOADS directories with a custom path to avoid re-downloading and re-compiling in the future.
  • Add the name of your target platform <MACHINE>.
  • Set IMAGE_CLASSES and IMAGE_FSTYPES to easily flash the target board.


MACHINE ?= "<MACHINE>"

DISTRO_FEATURES = "x11 opengl "

IMAGE_CLASSES += "image_types_tegra"
IMAGE_FSTYPES = "tegraflash"

SSTATE_DIR ?= "/home/${USER}/Yocto/sstate_dir"
DL_DIR ?= "/home/${USER}/Yocto/downloads"

Optional: By default, Yocto uses all the available cores and threads of the computer. If you want to limit the resources used on the build, you can add the following lines to your $YOCTO_DIR/build/conf/local.conf file. Change the parameters according to your needs and to your host machine specification.

BB_NUMBER_THREADS = '6'
PARALLEL_MAKE = '-j6'

bblayers.conf

Open the file $YOCTO_DIR/build/conf/bblayers.conf with your favorite text editor and add the meta-tegra layer to the build/conf/bblayers.conf file to load the provided recipes:

 BBLAYERS ?= " \         
  /home/${USER}/yocto-tegra/meta-tegra \                                                                                                                                                                                                                                                                                                                                                                
  /home/${USER}/yocto-tegra/poky/meta \       
  /home/${USER}/yocto-tegra/poky/meta-poky \                                                                                                                                                                
  /home/${USER}/yocto-tegra/poky/meta-yocto-bsp \                                                                                                                                                                                                                                                                                                    
  "

3. Build the image

Use an image with developer tools such as GStreamer, NVIDIA plugins, etc

bitbake core-image-sato-dev

Or you can choose a different image from the following table

<IMAGE>
core-image-sato-dev
core-image-weston
core-image-base

Legacy instructions

Please visit the following links for older versions of Jetpack.


  Index Next: Flashing the Jetson Platform