Buildroot没有内核的uImage选项

时间:2019-01-18 15:47:06

标签: linux-kernel buildroot

我正在为c-sky平台构建Linux内核,并且在“内核二进制格式”下,uImage没有选项,只有vmlinux。但是我的董事会需要一个uImage。而且,如果找不到它,它将启动至默认rom,这不是我想要的。所以我想知道,我需要做什么才能获得uImage选项?我注意到它在其他一些架构/平台(如ARM)中也存在。但不是我的拱门,c-sky。

有人可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

在Linux内核中,不同的体系结构具有不同的可用映像格式。 uImage在Linux中可用,但在Buildroot中未启用。

有两种产生uImage的方式。


手动方式(可以进行初步测试):

  1. 在menuconfig->内核中,设置:
    • Kernel binary format =自定义目标
    • Kernel image target name = uImage
  2. make host-uboot-tools
  3. make linux

需要步骤2,因为要构建uImage,您需要mkimage中的host-uboot-tools工具。使用“自定义映像” Buildroot不会意识到这一点,并且如果没有步骤2,构建将会失败。


正确方式:

只需在Buildroot中为C-Sky体系结构启用uImage格式即可。这个简单的补丁就足够了:

diff --git a/linux/Config.in b/linux/Config.in
index 1a50958ea146..c89c12b433be 100644
--- a/linux/Config.in
+++ b/linux/Config.in
@@ -211,7 +211,7 @@ config BR2_LINUX_KERNEL_UIMAGE
        depends on BR2_arc || BR2_arm || BR2_armeb || \
                   BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
                   BR2_sh || BR2_mips || BR2_mipsel || \
-                  BR2_mips64 || BR2_mips64el || BR2_xtensa
+                  BR2_mips64 || BR2_mips64el || BR2_xtensa || BR2_csky
        select BR2_PACKAGE_HOST_UBOOT_TOOLS

 config BR2_LINUX_KERNEL_APPENDED_UIMAGE

这允许选择Kernel binary format = uImage并正常构建,而无需在Linux之前手动构建host-uboot-tools