【问题标题】:Buildroot doesn't generate compressed Kernel imageBuildroot 不生成压缩内核映像
【发布时间】:2019-10-04 19:57:06
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: linux kernel embedded buildroot


    【解决方案1】:

    在 arm64 上,Linux does not support self-extracting compression。它依赖于引导加载程序来执行此操作。

    Linux 构建系统确实有一个Image.gz(和Image.bz2 等)目标,但它只不过是在Image 上调用gzip(将此与zImage 比较,后者添加了一个self-提取器)。

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

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

    【讨论】:

    • 谢谢就是这样。我获取了由 buildroot 生成的Image 文件(准确地说是内核),并使用命令gzip Image 来获取Image.gz 并在我的*.its 文件中简单地设置compression = "gzip"。比我想象的要简单得多,谢谢。
    【解决方案2】:

    根据Linux package configuration tool

    此选择将确保构建正确的主机工具。 内核的实际压缩应该在内核中选择 配置菜单。

    确保您也使用make linux-menuconfig 选择压缩选项。

    【讨论】:

    • 谢谢,但由于某种原因,“内核压缩模式”在我的内核配置的“常规设置”中不可见。
    【解决方案3】:

    在buildroot中,除了选择压缩机制外,还可以选择内核镜像的输出格式(uImage、zImage、vmlinux ...)。

    您应该在output/images/ 或内核的构建目录中找到这些。

    在使用 U-boot 时,您可能希望使用 uImage 或 zImage。见this question。如果在内核配置 (CONFIG_KERNEL_GZIP) 中选择它们,它们都将被压缩。

    在启动过程中,内核的未压缩大小会记录在开头。您可以将其与文件系统上的大小进行比较。

    ## Booting kernel from Legacy Image at 10000000 ...
       Image Name:   Linux-4.14.73-ltsi
       Created:      2019-05-14  11:55:16 UTC
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    4684016 Bytes = 4.5 MiB
       Load Address: 00008000
       Entry Point:  00008000
    ...
    

    【讨论】:

    • 谢谢,我搜索了CONFIG_KERNEL_GZIP,它是“内核压缩模式”的一个选项——但这个选项在我的内核配置中不可见。我在 buildroot menuconfig 中启用了 gzip,然后在 buildroot 目录中启用了make linux-menuconfig,但在“常规设置”下看不到“内核压缩模式”。这个选项取决于HAVE_KERNEL_GZIP,但我不知道它是如何/为什么没有设置的。你知道我为什么看不到“内核压缩模式”吗?
    猜你喜欢
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    相关资源
    最近更新 更多