R&D/OS

Jetson Xavier Kernel re-build

sunshout1 2026. 3. 19. 13:53
반응형

Download kernel source

wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v1.0/sources/public_sources.tbz2

# 압축 해제
tar -xjf public_sources.tbz2

# 커널 소스 위치로 이동 (압축 해제 후 생성된 디렉토리 확인)
cd Linux_for_Tegra/source/public

 

Kernel 소스 압축 풀기

tar -xjf kernel_src.tbz2
cd kernel/kernel-5.10

 

빌드 도구 설치

sudo apt-get update
sudo apt-get install build-essential bc bison flex libssl-dev \
	libncurses-dev pkg-config elfutils-libelf-devel libssl-dev

 

Kernel configure

# 빌드 결과물이 저장될 디렉토리 생성
mkdir -p out
export TEGRA_KERNEL_OUT=$(pwd)/out

make O=$TEGRA_KERNEL_OUT tegra_defconfig
make O=$TEGRA_KERNEL_OUT menuconfig

 

비주얼 메뉴를 통해 설정하므로 오타 실수를 줄일 수 있습니다.

  1. 설정 화면 진입:
  2. Bash
     
    make O=$TEGRA_KERNEL_OUT menuconfig
    
  3. 경로 이동:
    • General setup --->
    • Local version - append to kernel release 선택 (엔터)
  4. 값 입력:
    • 입력창에 -tegra를 입력하고 OK를 누릅니다.

 

Kernel build

# 커널 및 모듈 빌드 (-j 옵션은 Xavier 코어 수에 맞춰 조절)
make O=$TEGRA_KERNEL_OUT -j$(nproc)

# 빌드된 모듈 설치
sudo make O=$TEGRA_KERNEL_OUT modules_install INSTALL_MOD_PATH=/

 

설치 작업

# 커널 이미지 복사
sudo cp /boot/Image /boot/Image.backup
sudo cp $TEGRA_KERNEL_OUT/arch/arm64/boot/Image /boot/Image

# DTB 업데이트 (Xavier 필수)
sudo mkdir -p /boot/dtb/$(uname -r)/
sudo cp arch/arm64/boot/dts/nvidia/*.dtb /boot/dtb/$(uname -r)/



# 새 커널 버전 확인
NEW_VER=$(cat include/config/kernel.release)
echo $NEW_VER

# initrd 생성
sudo update-initramfs -c -k $NEW_VER

# 생성 확인
ls -la /boot/initrd-${NEW_VER}
# 또는
ls -la /boot/initrd.img-${NEW_VER}

extlinux 설정

/boot/extlinux/extlinux.conf

TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel (custom)
      LINUX /boot/Image
      FDT /boot/dtb/5.10.104-tegra2/tegra194-p3668-0000-p3509-0000.dtb
      INITRD /boot/initrd.img-5.10.104-tegra2
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 video=efifb:off nospectre_bhb


LABEL backup
      MENU LABEL backup kernel (origin)
      LINUX /boot/Image.backup
      FDT /boot/dtb/kernel_tegra194-p3668-0000-p3509-0000.dtb
      INITRD /boot/initrd
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 video=efifb:off nospectre_bhb

reboot

Reference

https://developer.nvidia.com/embedded/jetpack-sdk-516

728x90
반응형