Difference between revisions of "Compiling Jetson TX2 source code L4T 32.1"

From RidgeRun Developer Connection
Jump to: navigation, search
(Flash Jetson TX2)
Line 61: Line 61:
  
 
=Flash Jetson TX2=
 
=Flash Jetson TX2=
 +
This guide assumes that the user already have JetPack 4.2 installed. This link contains details about how to install JetPack 4.2: https://docs.nvidia.com/sdk-manager/download-run-sdkm/index.html
 +
 +
 
Make sure the Jetson TX2 is in recovery mode
 
Make sure the Jetson TX2 is in recovery mode
 
<source lang="bash">
 
<source lang="bash">

Revision as of 10:57, 17 June 2019

Introduction

This wiki page contains instructions to download and build kernel source code for Jetson TX2, several parts of this wiki were based in the document: NVIDIA Tegra Linux Driver Package Development Guide 32.1.

L4T 32.1 is used by JetPack 4.1.1 and JetPack 4.2 (You can get more information from jetpack-archive).

Build Kernel

Follow these instructions to build and install the kernel Image and device tree.

1. Download and install the Toolchain

NVIDIA recommends using the Linaro 7.3.1 2018.05 toolchain for L4T 32.1

Download the pre-built toolchain binaries from: http://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz

wget http://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz

Execute the following commands to extract the toolchain:

mkdir $HOME/l4t-gcc
cd $HOME/l4t-gcc
tar xf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz

Set CROSS_COMPILE Environment Variable

export CROSS_COMPILE=$HOME/l4t-gcc/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

2. Download the kernel sources

You can download the kernel source files and then manually extract them. it is recommended to instead sync with git.

In a browser, navigate to: https://developer.nvidia.com/embedded/downloads. Locate and download the L4T Sources for your release. (L4T Sources 32.1 2019/03/18) or run the command below:

wget https://developer.download.nvidia.com/embedded/L4T/r32_Release_v1.0/jax-tx2/BSP/JAX-TX2-public_sources.tbz2

Execute the following commands to extract the toolchain:

tar -xvf JAX-TX2-public_sources.tbz2
cd public_sources/
JETSON_TX2_KERNEL_SOURCE=$(pwd)
tar -xvf kernel_src.tbz2

3. Compile kernel and dtb

Follow the steps:

cd $JETSON_TX2_KERNEL_SOURCE
KERNEL_OUT=$JETSON_TX2_KERNEL_SOURCE/build
KERNEL_MODULES_OUT=$JETSON_TX2_KERNEL_SOURCE/modules
make -C kernel/kernel-4.9/ ARCH=arm64 O=$KERNEL_OUT tegra_defconfig
make -C kernel/kernel-4.9/ ARCH=arm64 O=$KERNEL_OUT menuconfig # if is required to change the default configuration
make -C kernel/kernel-4.9/ ARCH=arm64 O=$KERNEL_OUT CROSS_COMPILE=${CROSS_COMPILE} -j6 Image
make -C kernel/kernel-4.9/ ARCH=arm64 O=$KERNEL_OUT CROSS_COMPILE=${CROSS_COMPILE} -j6 dtbs
make -C kernel/kernel-4.9/ ARCH=arm64 O=$KERNEL_OUT CROSS_COMPILE=${CROSS_COMPILE} -j6 modules
make -C kernel/kernel-4.9/ ARCH=arm64 O=$KERNEL_OUT modules_install INSTALL_MOD_PATH=$KERNEL_MODULES_OUT

Flash Jetson TX2

This guide assumes that the user already have JetPack 4.2 installed. This link contains details about how to install JetPack 4.2: https://docs.nvidia.com/sdk-manager/download-run-sdkm/index.html


Make sure the Jetson TX2 is in recovery mode

cd ${JETPACK_4.2}/JetPack_4.2_Linux_P3310/Linux_for_Tegra
# Copy kernel generated
cp $JETSON_TX2_KERNEL_SOURCE/build/arch/arm64/boot/Image kernel/
# Copy device tree generated
cp $JETSON_TX2_KERNEL_SOURCE/build/arch/arm64/boot/dts/tegra186-quill-p3310-1000-c03-00-base.dtb kernel/dtb/
# Copy new modules
sudo cp -a $JETSON_TX2_KERNEL_SOURCE/modules/lib rootfs/
# Flash memory 
sudo ./flash.sh jetson-tx2 mmcblk0p1