수정된 Linux 커널이 있고 이를 하이퍼바이저 위에서 실행하고 싶습니다. 지금까지 uImage를 사용해왔지만 하이퍼바이저의 스크립트에는 실행 파일이 필요합니다. Linux 소스 코드에서 바이너리 실행 파일을 만드는 방법은 무엇입니까? vmlinux는 최종 바이너리 실행 파일 빌드 후에 생성됩니까?
답변1
vmlinux는 바이너리 파일이 아닌 ELF 파일입니다.
커널 빌드는 바이너리 파일인 zImages를 생성할 수 있습니다.
$kernel/arch/arm/boot/zImage
ARM인 경우 여기에서 찾을 수 있습니다. zImage는 zip으로 압축된 바이너리 파일이고 헤더는 zImage 위에 추가된다는 점을 기억하세요. 이 헤더를 사용하면 zImage가 스스로 압축을 풀 수 있습니다.
zImage를 실행하려면 PC(프로그램 카운터)를 zImage의 첫 번째 지점으로 이동해야 합니다.