
개발 환경 도중에 zImage(kernel image)를 변경한 경우 간단하게 TFTP server로 올려서 test 해볼 수 있다.
$ sudo apt update
$ sudo apt install tftp-hpa
$ sudo systemctl restart tftp-hpa
# 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 (화면 뜨는 거 확인하기 위해)
$ cd /arch/arm64/boot/
# 재빌드된 이미지 파일 확인
$ ls -al
# 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
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