Skip to content

Compatibility notes

Matt Madison edited this page May 19, 2020 · 10 revisions

Jetson-TK1 support

The Jetson-TK1 is only supported up through the warrior branch. The GCC 5 toolchain required for TK1 builds (for CUDA in particular) cannot be used with later OE-Core releases.

OLDEST_KERNEL

The kernel provided by NVIDIA for the Jetson TK1 is currently based on Linux 3.10, so you must set the OLDEST_KERNEL variable so that glibc will work properly. The jetson-tk1 machine configuration file does this, but if you build for other cortexa15 machines, you'll need to set this in a distro configuration file so it's consistent across all machines with that architecture.

This was also true for the Jetson TX1 kernel in L4T releases prior to R28.1.

GCC 5 required for CUDA 7 and CUDA 8

The CUDA toolkit does not support GCC 6 until version 9.0. For morty and later builds, you'll need to set GCCVERSION to "5.%" in your builds if you need to build CUDA applications. Since GCC 5 was removed from OE-Core in the rocko release, recipes for CUDA 7 and CUDA 8 packages cannot be built without bringing in another layer to provide the GCC 5 recipes, or forward-porting the GCC 5 recipes to your distro layer (if you have one).

CUDA 6.5 (for the TK1) officially requires GCC 4, but GCC 5 may be made to work.

GCC 6 required for CUDA 9

The CUDA toolkit does not support GCC 7 in version 9.0. For rocko-l4t-r28.2 and later builds, you'll need to set GCCVERSION to "6.%" in your builds if you need to build CUDA applications. Since GCC 6 was removed from OE-Core master after the rocko release, recipes for CUDA packages cannot be built without bringing in another layer to provide the GCC 6 recipes, or forward-porting the GCC 6 recipes to your distro layer (if you have one).

GCC 7 required for CUDA 10.0

The CUDA toolkit does not support GCC 8 in version 10.0, and some NVIDIA binary-only libraries are only compatible with GCC/G++ 7. For warrior and later builds, you'll need to set GCCVERSION to "7.%" in your builds if you need to build CUDA applications. Since GCC 7 was removed from OE-Core master after the thud release, recipes for CUDA packages cannot be built without bringing in another layer to provide the GCC 7 recipes, or forward-porting the GCC 7 recipes to your distro layer (if you have one). The meta-tegra/contrib layer includes user-contributed recipes for gcc 7 which were ported from OE-Core. See this wiki page for information. Alternatively, see this wiki page for instructions on using the Linaro gcc 7 toolchain.

GCC 8 required for CUDA 10.2

The CUDA 10.2 toolkit supports GCC/G++ versions no later than 8. For branches with L4T R32.4.2/JetPack 4.4 DP (currently dunfell-l4t-r32.4.2 and master), you'll need to set GCCVERSION to "8.%" in your builds if you need to include any CUDA applications. Since GCC 8 was removed from OE-Core after the warrior release, recipes for CUDA packages cannot be built without bringing in another layer to provide the GCC 7 recipes, or forward-porting the GCC 8 recipes to your distro layer (if you have one). The meta-tegra/contrib layer includes user-contributed recipes for gcc 8 which were ported from OE-Core. See this wiki page for information.

Clone this wiki locally