Я хочу использовать несжатый образ ядра и загрузить BeagleBoard. Обычно я использую uImage для загрузки ядра в сжатом формате. Как мне использовать несжатый образ ядра?
Я хочу использовать несжатый образ ядра и загрузить BeagleBoard. Обычно я использую uImage для загрузки ядра в сжатом формате. Как мне использовать несжатый образ ядра?
Ответы:
Насколько я знаю, 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
(Вам могут понадобиться дополнительные параметры, указывающие адрес загрузки.)
mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage
Измените gzip в приведенном выше примере на none , и вы создадите несжатый образ, совместимый с u-Boot.
Если вы используете Buildroot, выберите uImage
файл вывода ядра ( BR2_LINUX_KERNEL_UIMAGE=y
). Скомпилируйте нормально, и Buildroot также создаст vmlinux
файл на промежуточном этапе. Пока vmlinux
файл не скопирован в /output/images
каталог, его можно найти ./output/build/linux-custom/
(или запустить find . -name "vmlinux"
).