В ядре Linux разные архитектуры имеют разные доступные форматы изображений.uImage
доступно в Linux, но не включено в Buildroot.
Существует 2 способа получения uImage
.
Способ Ручной (ОК для предварительного тестирования):
- В menuconfig -> Ядро установите:
Kernel binary format
= пользовательская цель Kernel image target name
= uImage
make host-uboot-tools
make linux
Шаг 2 необходим, потому что для сборки uImage
необходим инструмент mkimage
из host-uboot-tools
.Использование «пользовательского образа». Buildroot не знает об этом, и сборка может завершиться неудачей без шага 2.
правильный способ:
Просто включите uImage
формат в Buildroot для архитектуры C-Sky.Этого простого патча должно быть достаточно:
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
и выполнить сборку в обычном режиме без необходимости ручной сборки host-uboot-tools
перед Linux.