我有一个修改过的 Linux 内核,我想在虚拟机管理程序之上运行它。到目前为止,我一直在使用 uImage,但虚拟机管理程序中的脚本需要可执行文件。如何从 Linux 源代码创建二进制可执行文件?构建后创建的 vmlinux 是最终的二进制可执行文件吗?
答案1
vmlinux 是一个 ELF 文件而不是二进制文件。
内核构建可能会创建 zImage,即二进制文件。
$kernel/arch/arm/boot/zImage
如果是 ARM,您可以在此处找到它。请记住,zImage 是一个 zip 压缩的二进制文件,并且标头附加在 zImage 的顶部。有了这个header,zImage就可以自己解压了。
要运行zImage,您需要将pc(程序计数器)移动到zImage的第一个点。