我已经成功地使用buildroot(v.2019.05)构建了U-boot和内核,并且能够一起引导它。
问题是,即使我选择了内核压缩模式gzip
,我得到的只是未压缩的Image
文件。
在输出目录(以及Linux)中只有Image
文件,而应该有Image.gz
文件。
如何从/而不是从Image.gz
生成Image
?
最佳答案
在arm64上,linuxdoes not support self-extracting compression。它依赖于引导加载程序来完成这项工作。
Linux构建系统确实有一个Image.gz
(和Image.bz2
等)目标,但它只不过是在gzip
上调用Image
(与添加自解压器的zImage
相比)。
由于在内核构建系统之外进行压缩是很容易的,而且可能有很多不同的压缩器,所以buildroot没有为它们提供选项。但是,可以选择自定义图像名称(BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
),然后将BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
设置为Image.gz
。或者,可以在生成后脚本中进行压缩。
记住要确保引导加载程序能够使用该算法进行解压缩。
关于linux - Buildroot不会生成压缩的内核镜像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56187180/