首页 > 解决方案 > Buildroot 不生成压缩内核映像

问题描述

我已经成功地使用 buildroot (v. 2019.05) 构建了 u-boot 和 Kernel,并且能够一起启动它。

问题是,即使我将内核压缩模式选择为gzip,我得到的只是未压缩的Image文件。

在输出目录(以及 Linux)中只有Image文件,而应该有Image.gz.

如何Image.gz从 / 而不是生成Image

标签: linuxkernelembeddedbuildroot

解决方案


在 arm64 上,Linux不支持自解压压缩。它依赖于引导加载程序来做到这一点。

Linux 构建系统确实有一个Image.gzImage.bz2等等)目标,但它只是调用gzipImage比较它zImage,它添加了一个自提取器)。

由于在内核构建系统之外进行压缩很容易,并且由于可能有很多不同的压缩器,Buildroot 没有为它们提供选项。但是,可以选择自定义图像名称 ( BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM),然后设置BR2_LINUX_KERNEL_IMAGE_TARGET_NAMEImage.gz。或者,您可以在构建后脚本中进行压缩。

请记住确保引导加载程序能够使用该算法解压缩。


推荐阅读