하이퍼바이저 위에서 실행하고 싶은 수정된 Linux 커널이 있습니다. 지금까지 나는 항상 uImage를 사용해왔지만 하이퍼바이저의 스크립트에는 실행 파일이 필요합니다. Linux 소스 코드에서 바이너리 실행 파일을 어떻게 만들 수 있나요? vmlinux는 최종 바이너리 실행 파일을 빌드한 후 생성됩니까?
답변1
vmlinux는 바이너리가 아닌 ELF 파일입니다.
커널 빌드는 바이너리 파일인 zImage를 생성할 수 있습니다.
$kernel/arch/arm/boot/zImage
ARM의 경우 에서 확인하실 수 있습니다 . zImage는 zip으로 압축된 바이너리 파일이며 zImage 상단에 헤더가 첨부되어 있다는 점을 명심하세요. 이 헤더를 사용하면 zImage가 스스로 압축을 풀 수 있습니다.
zImage를 실행하려면 pc(프로그램 카운터)를 zImage의 첫 번째 지점으로 이동해야 합니다.