uImage 대신 vmlinux를 사용할 수 있나요?

uImage 대신 vmlinux를 사용할 수 있나요?

압축되지 않은 커널 이미지를 사용하고 BeagleBoard를 부팅하고 싶습니다. 일반적으로 저는 uImage를 사용하여 압축 형식으로 커널을 시작합니다. 압축되지 않은 커널 이미지를 사용하는 방법은 무엇입니까?

답변1

내가 아는 한, U-Boot는 "원시" ELF 이미지를 직접 부팅할 수 없습니다( vmlinux). 이를 uImage압축된 형식과 커널 로드 주소를 설명하는 추가 바이트가 포함된 vmlinux메타데이터 로 변환해야 합니다 .U-Boot FAQ 2.19U-Boot 소스 트리의 유틸리티를 사용하면 매우 간단하게 빌드하는 방법을 설명할 수 있습니다 uImage.mkimage

 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

(로드 주소를 나타내기 위해 추가 매개변수가 필요할 수 있습니다.)

답변2

 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

변화보관소위의 예에서전혀, u-Boot와 호환되는 압축되지 않은 이미지를 생성하게 됩니다.

답변3

Buildroot를 사용하는 경우 uImage커널 출력 파일( BR2_LINUX_KERNEL_UIMAGE=y)을 선택합니다. 정상적으로 컴파일하면 Buildroot는 vmlinux중간 단계에서도 파일을 생성합니다. vmlinux파일이 파일 /output/images을 찾을 수 있는 디렉터리 에 복사되지는 않지만 ./output/build/linux-custom/(또는 를 실행하여 find . -name "vmlinux")

관련 정보