Можно ли использовать vmlinux вместо uImage?


9

Я хочу использовать несжатый образ ядра и загрузить BeagleBoard. Обычно я использую uImage для загрузки ядра в сжатом формате. Как мне использовать несжатый образ ядра?


Вы используете U-Boot в качестве загрузчика, верно?
Жиль "ТАК - перестань быть злым"

да! Возможно ли использовать Uboot?
Шаранья

Ответы:


7

Насколько я знаю, U-Boot не может напрямую загрузить «сырой» образ ELF ( vmlinux). Вам необходимо преобразовать его в uImageформат, который содержит сжатые vmlinuxплюс несколько дополнительных байтов метаданных, описывающих адрес загрузки ядра. U-Boot FAQ 2.19 объясняет, как генерировать uImage; это довольно просто, используя mkimageутилиту в дереве исходников U-Boot:

 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

(Вам могут понадобиться дополнительные параметры, указывающие адрес загрузки.)


1
Распаковка uImage во время загрузки занимает некоторое время. Мне нужно минимизировать это. Поэтому я подумал, почему бы мне не попробовать несжатый необработанный файл vmlinux.
Шаранья

3
Эффект, которого вы хотите достичь, может быть противоположным предполагаемому. Время распаковки обычно меньше времени копирования данных с флэш-памяти.
Maciej Kucia

3
 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

Измените gzip в приведенном выше примере на none , и вы создадите несжатый образ, совместимый с u-Boot.


1

Если вы используете Buildroot, выберите uImageфайл вывода ядра ( BR2_LINUX_KERNEL_UIMAGE=y). Скомпилируйте нормально, и Buildroot также создаст vmlinuxфайл на промежуточном этапе. Пока vmlinuxфайл не скопирован в /output/imagesкаталог, его можно найти ./output/build/linux-custom/(или запустить find . -name "vmlinux").

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.