Эмуляция в QEMU (ARM)
Загрузчик операционной системы, предназначенный для встраиваемых систем на MIPS, ARM, PowerPC и т.д.
- Версия: 2024.04
- Домашняя страница: https://source.denx.de/u-boot/u-boot
- Время сборки: 10 ОВС
Настройка U-Boot
Установите имя аргумента qemu_*_defconfig
в зависимости от архитектуры, для которой вы собираете:
if [ $LFA_TGT == "aarch64-linux-musleabihf" ]
then
QEMU_ARCH="arm64"
else
QEMU_ARCH="arm"
fi
Сконфигурируйте пакет U-Boot:
make CROSS_COMPILE=$LFA_TGT- \
qemu_${QEMU_ARCH}_defconfig
ACPI в QEMU
QEMU (начиная с версии v8.0.0) может предоставлять таблицы ACPI для ARM1. Для их поддержки нужны следующие настройки U-Boot:
CONFIG_CMD_QFW=y
CONFIG_ACPI=y
CONFIG_GENERATE_ACPI_TABLE=y
Вместо того, чтобы обновлять файл .config
вручную, вы можете добавить опцию acpi.config
в команду make
. Например:
make CROSS_COMPILE=$LFA_TGT- \
qemu_${QEMU_ARCH}_defconfig \
acpi.config
Сборка
make CROSS_COMPILE=$LFA_TGT-
В итоге будет сгенерирован двоичный файл u-boot.bin
.
В разделах о сборке загрузчика U-Boot для SoC Allwinner, Broadcom и Rockchip предполагается, что собранный двоичный файл с загрузчиком будет «встроен» в img
-образ, который будет сгенерирован в разделе №8 «Сборка образа». Здесь же таких действий совершать не требуется — всё, что вам нужно, так это скопировать собранный двоичный файл загрузчика в специально отведённое для этого место, не встраивая его в генерируемый образ системы.
Сохранение образа U-Boot
Скопируйте скомпилированный файл в директорию $LFA
для удобного доступа к нему в будущем:
cp -v u-boot.bin $LFA/bootloader.bin
Также вместо u-boot.bin
вы можете использовать образ u-boot-nodtb.bin
, если не хотите использовать скомпилированные файлы Devicetree.
Смотрите также:
На x86 эти настройки уже включены по умолчанию. Для ARM и RISC-V по умолчанию используются device-tree.