Buildroot 没有内核的 uImage 选项

Buildroot doesn't have uImage option for kernel

我正在为c-sky平台构建一个Linux内核,在"Kernel binary format"中,没有uImage的选项,只有vmlinux。但是我的板子需要 uImage。如果找不到它,它将引导至默认 ROM,这不是我想要的。所以我想知道,我需要做什么才能获得 uImage 选项?我注意到它适用于其他一些 architectures/platforms,例如 ARM。但不适合我的拱门,c-sky。

谁能帮帮我?

谢谢!

在Linux内核中,不同的架构有不同的可用图像格式。 uImage 在 Linux 中可用,但在 Buildroot 中未启用。

有 2 种方法可以生成 uImage


手动方式(初步测试OK):

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

第 2 步是必需的,因为要构建 uImage,您需要 host-uboot-tools 中的 mkimage 工具。使用 "custom image" Buildroot 并不知道这一点,如果没有第 2 步,构建将失败。


正确的方式:

C-Sky 架构只需在 Buildroot 中启用 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

这允许 select Kernel binary format = uImage 并正常构建而无需在 Linux.

之前手动构建 host-uboot-tools