可以用vmlinux代替uImage吗?

可以用vmlinux代替uImage吗?

我想使用未压缩的内核映像并启动 BeagleBoard。通常我使用uImage来启动压缩格式的内核。如何使用未压缩的内核映像?

答案1

据我所知,U-Boot 无法直接启动“原始”ELF 映像 ( vmlinux)。您需要将其转换为uImage包含压缩后的格式vmlinux以及描述内核加载地址的一些额外字节的元数据。U-Boot常见问题解答2.19解释如何生成uImage;使用mkimageU-Boot 源代码树中的实用程序非常简单:

 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")。

相关内容