Можно ли загрузить Linux на машину x86 с U-Boot?

Это мое понимание: BIOS выполняет базовую инициализацию чипсета и запускает загрузчик, который запускает ОС. И большинство современных ОС, таких как Linux, не используют BIOS. Кроме того, встроенные платформы на основе ARM и других архитектур используют U-Boot для начальной загрузки ОС.

Учитывая все это: возможно ли запустить Linux на компьютере x86 с U-Boot и без BIOS? Есть ли у машин на базе IBM PC/x86 архитектурная зависимость от BIOS для загрузки?

3 ответа

Да. Linux может загружаться напрямую из различных реализаций прошивки, включая U-Boot.

Что касается загрузки ОС, U-Boot поддерживает непосредственную загрузку 32-битного или 64-битного ядра Linux как части образа FIT. Он также поддерживает сжатый zImage. U-Boot поддерживает загрузку ядра x86 VxWorks. Пожалуйста, проверьте README.vxworks для более подробной информации.

https://github.com/qemu/u-boot/blob/master/doc/README.x86

U-Boot на x86 (обновлён 15 мая)

U-Boot поддерживает запуск в качестве полезной нагрузки Coreboot на x86. Пока что были протестированы только ссылки (Chromebook pixel), Minnowboard, qmemu, broadwell CRB и некоторые другие, но они должны работать с минимальными настройками на других платах x86, поскольку Coreboot работает с большинством низкоуровневых деталей.

x86 был преобразован для использования модели драйвера для последовательного интерфейса, GPIO, CPU, PCI и SPI.

U-Boot также поддерживает непосредственную загрузку 32-битного или 64-битного ядра как часть образа FIT. Он также поддерживает сжатый zImage.

U-Boot также поддерживает запуск "raw" без Coreboot на x86. Пока поддерживаются ivybridge, tunnel creek (Atom), Baytrail (Minnowboard Max), Galileo и qemu.

Наконец, вы можете запустить U-Boot на EFI как приложение (которое использует сервисы EFI и позволяет вернуться в EFI) или как полезную нагрузку (где U-Boot захватывает компьютер и загружается оттуда).

Полные инструкции находятся в исходном дереве по адресу doc / README.x86.

https://www.denx.de/wiki/U-Boot/X86

В настоящее время Chromebook на x86 использует U-Boot для загрузки coreboot

u-boot - это загрузчик из мира встраиваемых устройств.

Он не может инициализировать аппаратное обеспечение так, как это делают BIOS или Coreboot (с использованием двоичных двоичных объектов, поставляемых производителями оборудования), поскольку во встроенных устройствах это не требуется или выполняется загрузчиком в ПЗУ, находящемся внутри самой SoC.

В настоящее время альтернативой BIOS с открытым исходным кодом является Coreboot или LibreBoot, версия, которая работает без двоичных двоичных объектов. Их списки поддерживаемых плат короткие и обычно полны устаревшего оборудования. Google использует Coreboot для своих Chromebook вместо BIOS/UEFI.

U-Boot поддерживает загрузку поверх Coreboot, которая обрабатывает инициализацию платформы. Это используется на Chromebook Pixel.

Другие вопросы по тегам