В чем разница между ними?
Я знаю, что u-boot нужно ядро в формате uImage.
Система, которую я использую, сначала загружается с загрузчика этапа 1, а затем вызывает u-boot. Я хочу отказаться от u-boot и напрямую загружаться с загрузчика этапа 1. Какой тип образа ядра мне нужно использовать?
linux-kernel
embedded-linux
u-boot
Yildizabdullah
источник
источник
Ответы:
Изображение : общий файл двоичного образа ядра Linux.
zImage : самораспаковывающаяся сжатая версия образа ядра Linux.
uImage : файл изображения с оболочкой U-Boot (установленной утилитой mkimage ), которая включает в себя тип ОС и информацию о загрузчике.
Очень распространенной практикой (например, типичным файлом Makefile ядра Linux) является использование файла zImage. Так как файл zImage является самораспаковывающимся (т.е. не требует внешних декомпрессоров), оболочка будет указывать, что это ядро «не сжато», хотя на самом деле это так.
Обратите внимание, что автор / сопровождающий U-Boot считает (широко распространенное) использование zImage внутри uImage сомнительным:
(цитата из https://lists.yoctoproject.org/pipermail/yocto/2013-October/016778.html )
Вы можете выбрать то, для чего хотите программировать.
Для экономии места вам, вероятно, следует выбрать сжатый образ вместо несжатого.
Помните, что выполнение ядра (предположительно ядра Linux) требует большего, чем просто загрузка образа ядра в память. В зависимости от архитектуры (например, ARM) и версии ядра Linux (например, с или без DTB) существуют регистры и буферы памяти, которые, возможно, придется подготовить для ядра. В одном случае также была инициализация оборудования, которую выполняла U-Boot, которую нужно было реплицировать.
ДОБАВЛЕНИЕ
Это верно для всех версий U-Boot, в которых есть только команда bootm .
Но в более поздних версиях U-Boot также может быть команда bootz, которая может загружать zImage.
источник