[XU4] ADB를 이용한 Firmware Upload 방법.(system.img, zImage-dtb, etc)
Odroid-XU4 같은 경우에는 Hardware 적으로 USB-OTG 를 지원하지 않는다.
그래서 TCP를 이용하여, ADB 연결 후, Firmware를 업로드 후, UBoot 모드에서 업데이트를 하여야 한다.
여기서 본인은 아래의 사이트를 참고하였으나, 결국은 혼자서 많이 해맸다.
다른 분들은 이 글을 참고하여, 본인과 같이 해매지 않길 바라며 정리합니다.
참고 사이트
-> https://wiki.odroid.com/odroid-xu4/software/building_android
우선 참고 사이트를 참고하여, 작업을 하면, u-boot에서 위와 같이 정상적으로 파일을 못 읽어 오는 경우가 있습니다.
저 같은 경우에는 SD카드에 직접 펌웨어를 올려서 해보았습니다만, Read Fail 이 계속 발생이 되었습니다.
그럴 경우에는 u-boot 모드에 진입하셔서, 아래의 명령을 통하여, 정상적으로 파일들이 업로드가 되었는지 확인하여야 합니다.
확인 방법은 다음과 같습니다.
# fatls mmc 0:1 / |
위의 명령을 치시고, 이미지를 올리신 파일이 올라가 있는지를 확인합니다.
기본적으로는 boot.ini 파일만 존재합니다.
만약 존재 하지 않는다면, 아래의 Command를 이용하여, 재부팅 합니다.
# reset |
그리고 부팅 완료 후에는 아래의 명령을 통하여, boot.ini 파일이 존재하는 폴더를 검색합니다.
# find . -name 'boot.ini' |
그리고 해당 파일이 존재하는 폴더에 업데이트 하고자 하는 펌웨어 파일을 업로드 합니다.
본인은 다음의 경로였습니다.
/internal/ |
adb 명령을 통하여, 위의 경로에 파일을 업로드 하시고, u-boot 로 부팅 후, 참고 사이트 처럼 작업을 하시면,
정상적으로 파일이 로드 되는 것을 확인하실 수 있습니다.
위의 경로를 찾는 것이 중요한데, 해당 경로를 찾아야 하는 이유는 참고사이트의 내용 처럼, fat 파티션 이여야만 하기 때문입니다.
그리고, 커널 쪽 작업을 할 경우에는, 참고사이트 처럼 'adb push xxxx.img /sdcard/' 와 같이 하실 필요 없이
다음과 같이 zImage-dtb 를 업로드 하시면 됩니다.
본인은 다음과 같이 하였습니다.
adb push zImage-dtb /internal/ |
그리고 u-boot 모드에서 원하는 펍웨어만 업데이트 할 경우엔 다음의 파일을 참고하여, 입력하면 된다.
참고 소스 파일 : /Odroid_AOSP/xu4_installer/sd2emmc/boot.ini /Odroid_AOSP/xu4_installer/sd/boot.ini /Odroid_AOSP/xu4_installer/emmc/boot.ini Kernel만 업데이트 할 경우. (아래의 두개의 명령어만 입력) fatload mmc 0:1 40008000 zImage-dtb movi write kernel 0 40008000 |
마지막으로 u-boot 모드로 진입하는 방법은 다음과 같습니다.
재부팅 시, 커널 부팅 직전에 [Enter] Key를 두들겨 주시면 됩니다.
그러면 [Exynos5422 #] 프롬프트가 발생이 됩니다.
전체적인 내용을 다시 정리하면 다음과 같습니다.
1. boot.ini 파일이 존재하는 FAT 파티션을 검색한다.
2. 1에서 찾은 경로에 원하는 펌웨어를 adb push 를 이용하여 업로드 한다.
(참고사이트와는 동일할 필요가 없으며, Kernel 같은 경우에는 zImage-dtb 파일을 업로드하면 된다.)
3. 재부팅 후, u-boot 모드로 진입하여, 업데이트 하고자 하는 펍웨어만 업로드 후, Reset 한다.
여기까지 읽어주셔서 감사합니다.