Build NVIDIA Jetson kernel
NVIDIA/Jetson

Build NVIDIA Jetson kernel

https://rorsi.tistory.com/59

 

Jetpack BSP Download - emmc

본 문에서 진행하고 있는JETPACK 버전은 4.6.1 입니다. DevKit 버전이 아닌 캐리어 보드 기준입니다. A. Download & Set Jetpack BSP < 1 > 아래 사이트에서 SDK manager 프로그램을 다운 받습니다. - 로그인 필수!! h

rorsi.tistory.com

B. Download cross compiler for Jetpack BSP

Linux for Tegra(Linux4Tegra, L4T)는 Nvidia Jetson 보드 시리즈와 같은 플랫폼에서 사용되는 Tegra 프로세서 시리즈용 Nvidia의 Linux 기반 시스템 소프트웨어 배포판입니다.

 

< 1 > l4t-gcc 폴더를 만들어 주고 해당 폴더로 이동해줍니다.

mkdir l4t-gcc
cd l4t-gcc

< 2 > cross compiler를 다운받습니다.

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

< 3 > 파일 압축해제를 해줍니다.

 tar xf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz

C. Download source code for Jetpack BSP

< 1 > ‘Linux_for_Tegra’  폴더로 이동해줍니다.

cd Linux_for_Tegra

< 2 > JetPack version에 맞게 명령어를 실행해 줍니다.

You can check version from STEP A - 8 tbz2 file name. (ex) R32.7.1 --> JetPack 4.6.1

./source_sync.sh -k tegra-l4t-r32.7.1

< 3 > sources 폴더가 생성된 것을 확인합니다.

Linux_for_Tegra/sources

sources 폴더에서 원하는 부분의 수정을 마친 뒤 Build & Flash 과정을 거친다.

 

[ Command ]

< Export Value >

export LOCALVERSION=-Example
JETPACK=<Jetpack BSP Location>
CROSS_COMPILE=/home/l4t-gcc/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
KERNEL_OUT=${JETPACK}/Linux_for_Tegra/sources/kernel/kernel-4.9/build
KERNEL_MODULES_OUT=${JETPACK}/Linux_for_Tegra/rootfs

< Build Full BSP & Flash >

Make build folder

cd ${JETPACK}/Linux_for_Tegra/sources/kernel/kernel-4.9/
mkdir -p $KERNEL_OUT

Create the .config file

make ARCH=arm64 O=$KERNEL_OUT tegra_defconfig

Build the kernel and DTBs

make ARCH=arm64 O=$KERNEL_OUT CROSS_COMPILE=${CROSS_COMPILE} -j12

Install modules in temporal location

sudo make modules_install ARCH=arm64 O=$KERNEL_OUT CROSS_COMPILE=${CROSS_COMPILE} INSTALL_MOD_PATH=$KERNEL_MODULES_OUT INSTALL_MOD_STRIP=1

Make a backup of the current image

BKUP_DATE=`date "+%Y_%m_%d_%H_%M_%S"`
mv ${JETPACK}/Linux_for_Tegra/kernel/Image{,.$BKUP_DATE}
mv ${JETPACK}/Linux_for_Tegra/kernel/zImage{,.$BKUP_DATE}
mv ${JETPACK}/Linux_for_Tegra/kernel/kernel_supplements.tbz2{,.$BKUP_DATE}
mv ${JETPACK}/Linux_for_Tegra/kernel/dtb{,.$BKUP_DATE}

Deploy binaries in their required locations

cd $KERNEL_OUT/
cp ./arch/arm64/boot/Image ${JETPACK}/Linux_for_Tegra/kernel/
cp ./arch/arm64/boot/zImage ${JETPACK}/Linux_for_Tegra/kernel/
cp -r ./arch/arm64/boot/dts ${JETPACK}/Linux_for_Tegra/kernel/dtb

Regenerate kernel modules supplement file

cd $KERNEL_MODULES_OUT
tar --owner root --group root -cjf ${JETPACK}/Linux_for_Tegra/kernel/kernel_supplements.tbz2 lib/modules

Generate JetPack image

cd ${JETPACK}/Linux_for_Tegra/
sudo ./apply_binaries.sh

flash image - 명령어 수행 전 Jetson Device Recovery Mode 상태여야 함

sudo ./flash.sh <platform> mmcblk0p1

<platform> 장치 종류

 • For Jetson AGX Xavier: jetson-xavier
 • For Jetson TX2: jetson-tx2
 • For Jetson TX1: jetson-tx1
 • For Jetson Nano eMMC module: jetson-nano-emmc
 • For Jetson Nx eMMC module: jetson-nx-emmc

 

'NVIDIA > Jetson' 카테고리의 다른 글

Jetson Remote Control  (0) 2023.04.22
Jetson debugging  (0) 2023.03.21
L4T(Linux for Tegra), JETSON  (0) 2023.02.01
JETSON backup 이미지 만들기  (0) 2023.01.28
Jetpack BSP Download - emmc  (0) 2022.10.23