Buildroot не имеет опции uImage для ядра - PullRequest
0 голосов
/ 18 января 2019

Я собираю ядро ​​Linux для платформы c-sky, и в «двоичном формате ядра» нет опции для uImage, только vmlinux. Но моя доска требует изображения. И если он не может найти его, он будет загружаться по умолчанию rom, а это не то, что я хочу. Поэтому мне интересно, что мне нужно сделать, чтобы получить опцию uImage? Я заметил, что это есть для некоторых других архитектур / платформ, таких как ARM. Но не для моей арки, c-sky.

Кто-нибудь может мне помочь?

Спасибо!

1 Ответ

0 голосов
/ 21 января 2019

В ядре Linux разные архитектуры имеют разные доступные форматы изображений.uImage доступно в Linux, но не включено в Buildroot.

Существует 2 способа получения 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.


правильный способ:

Просто включите 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.

...