我正在为c-sky平台构建Linux内核,并且在“内核二进制格式”下,uImage没有选项,只有vmlinux。但是我的董事会需要一个uImage。而且,如果找不到它,它将启动至默认rom,这不是我想要的。所以我想知道,我需要做什么才能获得uImage选项?我注意到它在其他一些架构/平台(如ARM)中也存在。但不是我的拱门,c-sky。
有人可以帮助我吗?
谢谢!
答案 0 :(得分:2)
在Linux内核中,不同的体系结构具有不同的可用映像格式。 uImage
在Linux中可用,但在Buildroot中未启用。
有两种产生uImage
的方式。
手动方式(可以进行初步测试):
Kernel binary format
=自定义目标Kernel image target name
= uImage
make host-uboot-tools
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
。