U-boot 를 사용 한다면 커널은 uImage 를 사용 해야 합니다.

ez-boot 를 사용한다면 zImage 를 사용 합니다.


zImage 는 압축된 kernel Image 이며 앞부분에 압축을 푸는 코드들이 들어 있습니다.

uImage 는 u-boot 에서 사용하는 압축된 커널 이미지 이고,  uboot 를 컴파일 하면 tools/mkimage 라는 툴을 이용해서

zImage 에 64byte 의 헤더를 추가시킨 형태 입니다.

다시 말하면 zImage 를 먼저 생성 한 다음, uImage 로 바꿔 주는 것이지요.


이 64byte 의 헤더에는 target architecture, operating system, image type, compression method, entry points,

time stamp, CRC32 checksums 등과 같은 정보들이 들어 있습니다.


커널 컴파일 도중 아래와 같은 메시지를 발견했다면..

---메시지----------------

"mkimage" command not found - U-Boot images will not be built

make[1]: *** [arch/arm/boot/uImage] Error 1

--------------------------

uImage 를 생성 하지 못한 것입니다.

다시 u-boot 를 컴파일 해서 생성된 mkimage 툴을 통해 생성 할 수 있습니다.


실행 명령

./mkimage -A arm -O linux -T kernel -C none -a 0x3008000 -e 0x0008000 -n "linux-2.6.35" -d arch/arm/boot/zImage arch/arm/boot/uImage 

이렇게 만들수도 있지만, 간단히 make uImage 라고 해도 만들어 집니다.


만약 u-boot 소스가 없어 컴파일 할 수없는데 uImage 를 만들어야 한다면 난감 하겠지요.

이때는 서버에 직접 mkimage 툴을 설치 하면 됩니다.

(ubuntu1.04 기준 )

#>apt-get install uboot-mkimage