/meta-tegra

BSP layer for NVIDIA Tegra, based on L4T

Primary LanguageBitBakeMIT LicenseMIT

OpenEmbedded/Yocto BSP layer for NVIDIA Tegra X1/X2/AGX/K1
==========================================================

Boards supported:
* Jetson-TX1 development kit (Linux4Tegra R32.2.1, JetPack 4.2.2
* Jetson-TX2 development kit (Linux4Tegra R32.2.1, JetPack 4.2.2)
* Jetson AGX Xavier development kit (Linux4Tegra R32.2, JetPack 4.2.2)
* Jetson Nano development kit (Linux4Tegra R32.2.1, JetPack 4.2.2)

Also supported:
* Jetson-TX2i module (Linux4Tegra R32.2.1, JetPack 4.2.2)
* Jetson-TX2 4GB module (Linux4Tegra R32.2.1, JetPack 4.2.2)

This layer depends on:
URI: git://git.openembedded.org/openembedded-core
branch: master
LAYERSERIES_COMPAT: warrior


PLEASE NOTE
-----------

* Starting with JetPack 4.2, packages outside the L4T BSP can
  only be downloaded with an NVIDIA Developer Network login.
  So to use CUDA 10, cuDNN, and any other packages that require
  a Devnet login, you **must** create a Devnet account and
  download the JetPack packages you need for your builds using
  NVIDIA SDK Manager.

  You must then set the variable NVIDIA_DEVNET_MIRROR to
  "file://path/to/the/downloads" in your build configuration
  (e.g., local.conf) to make them available to your bitbake
  builds.

* The SDK Manager downloads a different package of CUDA host-side
  tools depending on whether you are running Ubuntu 16.04
  or 18.04. If you downloaded the Ubuntu 16.04 package, you
  should add

      CUDA_BINARIES_NATIVE = "cuda-binaries-ubuntu1604-native"

  to your build configuration so the CUDA recipes can find
  them. Otherwise, the recipes will default to looking for
  the Ubuntu 18.04 package.

* The tensorrt 5.1.6 packages for Xavier are different from
  those for TX1/TX2, even though the deb files have the same
  name.  If you need to build for Xavier and another platform
  and include tensorrt 5.1.6, create a subdirectory called
  "P2888" under your NVIDIA_DEVNET_MIRROR directory, and copy
  the Xavier tensorrt packages there. The non-Xavier copies
  should go in the NVIDIA_DEVNET_MIRROR top level.

* CUDA 10 supports up through gcc 7 only, and some NVIDIA-provided
  binary libraries appear to be compiled with g++ 7 and cause linker
  failures when building applications with g++ 6, so **only** gcc 7
  should be used if you intend to use CUDA.


Selecting the toolchain version
-------------------------------

Toolchain version selection is usually a distro configuration setting,
but you can also set this in your build/conf/local.conf file. To use
gcc 7 instead of gcc 8, set:

GCCVERSION = "7.%"

but you will also need the gcc 7 toolchain recipes in one of your layers,
since it was retired from OE-Core in favor of gcc 8.


Contributing
------------

Please use GitHub (https://github.com/madisongh/meta-tegra) to submit
issues or pull requests, or add to the documentation on the wiki.
Contributions are welcome!