我想使用未压缩的内核映像并启动 BeagleBoard。通常我使用uImage来启动压缩格式的内核。如何使用未压缩的内核映像?
答案1
据我所知,U-Boot 无法直接启动“原始”ELF 映像 ( vmlinux
)。您需要将其转换为uImage
包含压缩后的格式vmlinux
以及描述内核加载地址的一些额外字节的元数据。U-Boot常见问题解答2.19解释如何生成uImage
;使用mkimage
U-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"
)。