Eu tenho um kernel Linux modificado, que desejo executar em cima de um hipervisor. Até agora sempre usei o uImage, mas o script no hipervisor requer um executável. Como posso criar um executável binário a partir do código-fonte do Linux? O vmlinux é criado após a construção, o executável binário final?
Responder1
vmlinux é um arquivo ELF, não um binário.
A compilação do kernel pode criar zImage, que é um arquivo binário. Você pode encontrá-lo em
$kernel/arch/arm/boot/zImage
caso de ARM. Tenha em mente que zImage é um arquivo binário compactado zip e um cabeçalho está anexado na parte superior do zImage. Com este cabeçalho, o zImage pode descompactar sozinho.
Para executar o zImage, você precisa mover o pc (contador do programa) para o primeiro ponto do zImage.