Das U-Boot

редактировать
Das U-Boot
U-Boot Logo.svg
Разработчик (и) DENX Software Engineering
Первоначальный выпуск15 октября 1999 г.; 21 год назад (1999-10-15)
Стабильный выпуск v2020.10 / 5 октября 2020 г.; 32 дня назад (2020-10-05)
Предварительный выпуск v2021.01-rc1 / 29 октября 2020 г.; 8 дней назад (2020-10-29)
Репозиторий Измените это в Викиданных
Написано наC, сборке
Доступно наанглийском языке
Тип Загрузчик
Лицензия GPLv2 +
Веб-сайтwww.denx.de / wiki / U-Boot / Измените это в Викиданных

Das U-Boot (с подзаголовком «Универсальный загрузчик» и часто сокращается до U-Boot ; подробнее см. История об имени) - основной загрузчик с открытым исходным кодом, используемый во встроенных устройствах для упаковки инструкций по загрузке ядра операционной системы устройства. Он доступен для ряда компьютерных архитектур, включая 68k, ARM, Blackfin, MicroBlaze, MIPS, Nios, SuperH, PPC, RISC-V и x86.

Содержание
  • 1 Функциональность
    • 1.1 Хранение данных и источники загрузки
    • 1.2 Совместимые файловые системы
    • 1.3 Дерево устройств
  • 2 История
  • 3 Использование
  • 4 См. Также
  • 5 Примечания
  • 6 Ссылки
  • 7 Внешние ссылки
Функциональность

U-Boot является загрузчиком как первого, так и второго уровня. Он загружается системным ROM или BIOS с поддерживаемого загрузочного устройства, такого как SD-карта, диск SATA, флэш-память NOR (например, с использованием SPI или I²C ) или флэш-память NAND. Если есть ограничения по размеру, U-Boot может быть разделен на этапы: платформа загрузит небольшой SPL (Secondary Program Loader), который является урезанной версией U-Boot, а SPL выполнит начальную конфигурацию оборудования и загрузит большая полнофункциональная версия U-Boot. Независимо от того, используется ли SPL, U-Boot выполняет как первую стадию (например, настройку контроллеров памяти и SDRAM), так и вторую стадию загрузки (выполнение нескольких шагов для загрузки современной операционной системы с различных устройств, которые необходимо настроить, представление меню для взаимодействия пользователей и управления процессом загрузки и т. д.).

U-Boot запускает интерфейс командной строки на последовательном порту. Используя консоль, пользователи могут загружать и загружать ядро, возможно, изменяя параметры по умолчанию. Также есть команды для чтения информации об устройстве, чтения и записи во флэш-память, загрузки файлов (ядер, загрузочных образов и т. Д.) Из последовательного порта или сети, управления деревьями устройств и работы с переменными среды (которые могут быть записаны в постоянное хранилище и используются для управления поведением U-Boot, например, командой загрузки по умолчанию и тайм-аутом перед автоматической загрузкой, а также данными оборудования, такими как MAC-адрес Ethernet).

В отличие от загрузчиков ПК, которые скрывают или автоматически выбирают места в памяти ядра и других данных загрузки, U-Boot требует, чтобы его команды загрузки явно указывали адреса физической памяти в качестве мест назначения для копирования данных (ядро, RAM-диск, устройство tree и т. д.), а также для перехода к ядру и в качестве аргументов для ядра. Поскольку команды U-Boot довольно низкоуровневые, для загрузки ядра требуется несколько шагов, но это также делает U-Boot более гибким, чем другие загрузчики, поскольку те же команды могут использоваться для более общих задач. Можно даже обновить U-Boot с помощью U-Boot, просто прочитав новый загрузчик откуда-то (из локального хранилища, из последовательного порта или сети) в память и записав эти данные в постоянное хранилище, к которому относится загрузчик.

U-Boot поддерживает USB, поэтому он может использовать USB-клавиатуру для управления консолью (в дополнение к вводу через последовательный порт), а также может получать доступ и загружаться с USB-накопителей, таких как SD картридеры.

Хранилище данных и источники загрузки

U-Boot загружает операционную систему, считывая ядро ​​и любые другие необходимые данные (например, дерево устройств или образ RAM-диска) в память, а затем запускает ядро ​​с соответствующие аргументы.

Команды U-Boot на самом деле являются обобщенными командами, которые можно использовать для чтения или записи любых произвольных данных. С помощью этих команд данные могут быть прочитаны или записаны в любую систему хранения, поддерживаемую U-Boot, в том числе:

(Примечание: это источники загрузки, из которых U-Boot может загружать данные (например, ядро или образ RAM-диска) в память. Сама U-Boot должна загружаться платформой, и это должно выполняться с устройства, с которого может загружаться ПЗУ платформы или BIOS, что, естественно, зависит от платформы.)

  • Встроенное или подключенное хранилище
    • SD-карта
    • SATA
    • SCSI
    • I²C (например, EEPROM или флэш-память NOR)
    • SPI (например, NOR или флэш-память NAND)
    • ONFI (флэш-память raw NAND)
    • eMMC (управляемая флэш-память NOR или NAND)
    • NVMe
    • запоминающее устройство USB
  • Последовательный порт (передача файлов)
  • Загрузка по сети (опционально с использованием DHCP, BOOTP или RARP)

Совместимые файловые системы

U -Загрузке не обязательно иметь возможность читать файловую систему, чтобы ядро ​​могло использовать ее в качестве корневой файловой системы или начального RAM-диска; U-Boot просто предоставляет ядру соответствующий параметр и / или копирует данные в память, не понимая их содержимого.

Однако U-Boot также может читать (а в некоторых случаях записывать) файловые системы. Таким образом, вместо того, чтобы требовать, чтобы данные, которые загружает U-Boot, хранились в фиксированном месте на устройстве хранения, U-Boot может читать файловую систему для поиска и загрузки ядра, дерева устройств и т. Д. По имени пути.

U-Boot включает поддержку следующих файловых систем:

Дерево устройств

Дерево устройств - это структура данных для описания структуры оборудования. Используя дерево устройств, поставщик может иметь возможность использовать неизмененную основную U-Boot на оборудовании специального назначения. Как и ядро ​​Linux, дерево устройств предназначено для улучшения ситуации в отрасли встраиваемых, где существует огромное количество специфичных для продукта вилок (U-Boot и Linux).. Возможность запускать основное программное обеспечение практически освобождает клиентов от отсутствия обновлений от поставщиков.

История
U-Boot на Openmoko Freerunner U-Boot на XPedite5501

Источник проекта - загрузчик 8xx PowerPC под названием 8xxROM, написанный Магнус Дамм. В октябре 1999 года Вольфганг Денк переместил проект на SourceForge.net и переименовал его в PPCBoot, потому что SF.net не разрешал имена проектов, начинающиеся с цифр. Версия 0.4.1 PPCBoot была впервые публично выпущена 19 июля 2000 года.

В 2002 году предыдущая версия исходного кода была кратко разветвлена ​​ в продукт под названием ARMBoot, но вскоре после этого был снова объединен с проектом PPCBoot. 31 октября 2002 г. был выпущен PPCBoot-2.0.0 . Это ознаменовало последний выпуск под именем PPCBoot, поскольку он был переименован, чтобы отразить его способность работать на других архитектурах помимо PPC ISA.

PPCBoot-2.0.0 стал U-Boot-0.1.0 в ноябре 2002 г. расширен для работы на архитектуре процессора x86. Дополнительные возможности архитектуры были добавлены в следующие месяцы: MIPS32 в марте 2003 г., MIPS64 в апреле, Nios II в октябре, ColdFire в Декабрь и MicroBlaze в апреле 2004 г. Выпуск U-Boot-1.1.2 в мае 2004 г. работал на продуктах 216 производителей плат различных архитектур.

Текущее название Das U-Boot добавляет немецкий артикль, чтобы создать двуязычный каламбур в классическом немецком фильме 1981 года о подводных лодках Das Boot, действие которого происходит на немецкой подводной лодке времен Второй мировой войны. Это бесплатное программное обеспечение, выпущенное в соответствии с условиями Стандартной общественной лицензии GNU. Он может быть построен на ПК x86 для любой из предполагаемых архитектур с использованием набора инструментов для кросс-разработки GNU , например crossstool, Embedded Linux Development Kit (ELDK) или OSELAS.Toolchain.

Важность U-Boot во встроенных системах Linux довольно лаконично изложена в книге Карима Ягмура «Создание встраиваемых систем Linux», чей текст о U-Boot начинается так: «Хотя существует довольно много других загрузчиков, «Das U-Boot», универсальный загрузчик, возможно, является самым богатым, наиболее гибким и наиболее активно разрабатываемым загрузчиком с открытым исходным кодом из доступных ».

Использование
  • Основанные на ARM Chromebook поставляется с U-Boot. Chromebook на базе Celeron и i5 используют его в качестве полезной нагрузки для coreboot.
  • Серия компьютеров на базе PowerPC AmigaOne под управлением AmigaOS использует U- Boot, в частности, Sam440ep и Sam460ex от ACube Systems Srl, и AmigaOne X5000 от A-Eon, преемника AmigaOne X1000.
  • Ubiquiti Networks устройства используют U-Boot
  • устройства Amazon Kindle используют U-Boot в качестве загрузчика.
  • TP-Link и несколько других совместимых с OpenWRT / LEDE беспроводных маршрутизаторов на базе MIPS используют U-Boot для загрузки.
  • Сотовые маршрутизаторы Teltonika используют загрузчик на основе U-Boot.
  • Falcon и Dragon SpaceX используют U-Boot
См. Также
  • Free и open- исходный программный портал
Примечания
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-16 13:57:26
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте