TFTP로 zImage 빌드

SMJ·2025년 10월 23일

BSP development

목록 보기
10/18
post-thumbnail

개발 환경 도중에 zImage(kernel image)를 변경한 경우 간단하게 TFTP server로 올려서 test 해볼 수 있다.

  1. TFTP 서버 패키지 설치
$ sudo apt update
$ sudo apt install tftp-hpa

$ sudo systemctl restart tftp-hpa
  1. 새로운 zImage 생성
# 0단계: 빌드 초기화
$ make distclean

# 1단계: 기본 설정 불러오기
$ make ARCH=arm64 ma35d1_defconfig

# 2단계: 원하는 설청 추가/변경 후 save
$ make ARCH=arm64 menuconfig

# 3단계: 컴파일 (타겟보드에 맞는 GCC 사용 여기서는 64bit ARM)
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu

# 4단계 : 디바이스트리 컴파일
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs

meuconfig -> Device Drivers -> Graphic support -> Bootup logo (화면 뜨는 거 확인하기 위해)

  1. Image.gz 파일 확인
$ cd /arch/arm64/boot/

# 재빌드된 이미지 파일 확인
$ ls -al
  1. TFTP 디렉토리에 이미지 파일 복사
# srv/tftp 디렉토리에 파일 복사
sudo cp /home/smjeon/MA35D1_linux-5.10.y/arch/arm64/boot/Image.gz /srv/tftp
sudo cp /home/smjeon/MA35D1_linux-5.10.y/arch/arm64/boot/dts/nuvoton/ma35d1-som-256m.dtb /srv/tftp
  1. 보드 내에서 U-Boot 진입
U-Boot > setenv ipaddr <EVB's IP>

U-Boot > setenv serverip <ubuntu IP>

U-Boot > saveenv

# ping test로 Ubuntu <-> EAB's board 접속
U-Boot > ping <ubuntu's IP>

# 보드의 memory_map 구조를 참조하여 해당 sector에 맞게 kernel과 device tree image를 넣어야 함

U-Boot > tftp 85000000 ma35d1.dtb #(device tree binary)

# 이미지 압축파일인 경우 Image.gz (Load_address에 할당)
U-Boot > tftp 82000000 Image.gz

# 이미지 파일인 경우
U-Boot > tftp 80080000 ma35d1-som-256m.bin

# 이미지 압축을 해제할 경우에만 unzip을 해준다
U-Boot > unzip 82000000 80080000

U-Boot > booti 80080000 - 85000000
profile
Embedded Junior Developer

0개의 댓글