Я хочу использовать несжатый образ ядра и загрузить 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").