JETSON CUSTOM KERNEL
NVIDIA/Jetson

JETSON CUSTOM KERNEL

Linux 호스트 PC에서 브라우저를 열고 Jetson Linux Archive로 로 이동해야 합니다.먼저 Jetson Linux 버전이 지원되는지 확인해야 합니다.

https://developer.nvidia.com/embedded/jetson-linux-archive

 

Jetson Linux Archive

Find previous L4T releases and which Jetson modules they support.

developer.nvidia.com

적절한 버전을 찾으면 클릭하여 다운로드한 페이지로 이동합니다. "L4T 드라이버 패키지(BSP)" 및 "샘플 루트 파일 시스템"을 찾아 클릭하여 드라이버 파일을 다운로드합니다.

예를 들어 NVIDIA L4T 35.1.0 버전을 선택합니다. 파일 이름은 다음과 같아야 합니다.

  • Tegra_Linux_Sample-Root-Filesystem_R35.1.0_aarch64.tbz2
  • Jetson_Linux_R35.1.0_aarch64.tbz2

Linux 호스트 PC에서 Terminal아래 명령줄을 사용하여 파일 압축을 풀고 apply_binaries 스크립트를 실행시킵니다.

tar xf ${L4T_RELEASE_PACKAGE}
cd Linux_for_Tegra/rootfs/
sudo tar xpf ../../${SAMPLE_FS_PACKAGE}
cd ..
sudo ./apply_binaries.sh

${XXX_XX_XXX} 다운로드한 파일 이름을 입력하는 곳입니다.

 

커널 소스 다운로드

1. 릴리스용 Jetson Linux 소스 파일을 찾아 다운로드 합니다.

2. 파일 압축 해제

tar -xjf public_sources.tbz2

3. 커널 소스 파일 압축 해제

cd Linux_for_Tegra/source/public
tar –xjf kernel_src.tbz2

이렇게 하면 커널 소스가 kernel/ 하위 디렉토리로 추출됩니다.

 

커널 구축

커널을 빌드하기 전에 Jetson Linux 빌드 유틸리티를 설치해야 합니다. 다음 명령을 입력합니다.

sudo apt install build-essential bc

커널을 빌드하려면

1. 위에서 설명한 대로 커널 소스를 동기화 또는 다운로드 및 확장하고 커널 빌드 유틸리티를 설치합니다.
2. 호스트 시스템(예: 빌드하려는 Jetson 장치 이외의 시스템)에서 크로스 컴파일하는 경우 다음 환경 변수를 내보냅니다.

export CROSS_COMPILE_AARCH64_PATH=<toolchain-path>/aarch64--glibc--stable-2020.08-1

3. 빌드된 커널이 생성될 폴더를 만들어줍니다.

mkdir kernel_out

4. 커널 빌드

./nvbuild.sh -o $PWD/kernel_out

5. kernel_out/drivers/gpu/nvgpu/nvgpu.ko 파일을 다운로드한 JETPACK 이미지 경로에 교체합니다.

sudo cp -r drivers/gpu/nvgpu/nvgpu.ko $JETPACK/Linux_for_Tegra/rootfs/usr/lib/modules/$KERNEL_VERSION/kernel/drivers/gpu/nvgpu/

6. 장치 트리의 경우 파일을 $kernel_out/arch/arm64/boot/dts/nvidia/ 안에 파일들을 다운로드 받은 JETPACK 이미지 경로에 교체합니다.

cp -r arch/arm64/boot/dts/nvidia/* $JETPACK/Linux_for_Tegra/kernel/dtb/

7. kernel_out/arch/arm64/boot/Image 파일을 다운로드 받은 JETPACK 이미지 경로에 교체합니다.

cp -r arch/arm64/boot/Image $JETPACK/Linux_for_Tegra/kernel/Image

8. 다음 명령을 통해 모듈을 설치합니다.

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

9. 설치된 커널 모듈을 보관합니다.

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

설치된 모듈을 사용하여 커널을 빌드하지 않고 압축을 풀어 복사 붙여 넣기 해서 사용할 수 있습니다.

 

참고 :

https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/SD/Kernel/KernelCustomization.html

 

Kernel Customization — Jetson Linux<br/>Developer Guide 34.1 documentation

Before you build the kernel you must install the Jetson Linux build utilities. Enter the command: Signing and Encrypting the Kernel, the kernel-dtb, and the initrd Binary Files To support Secure Boot, the kernel, kernel-dtb, and initrd binary files must be

docs.nvidia.com

 

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

Preparing to Build External Kernel Modules  (0) 2023.05.21
Jetson File Mount  (0) 2023.05.21
Deepstream 설치 및 실행  (0) 2023.04.25
Customized Logo  (0) 2023.04.22
Jetson Remote Control  (0) 2023.04.22