В ядре Linux разные архитектуры имеют разные доступные форматы изображений. uImage
доступно в Linux, но не включено в Buildroot.
Есть 2 способа производства uImage
.
Ручной способ (ОК для предварительного тестирования):
Kernel binary format
= пользовательский target 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.