Спецификация EBBR для стандартизации процесса загрузки встроенного Linux

На конференции Embedded Linux Conference Europe Арм Грант Вероятно объясняет, как появляющаяся спецификация EBBR на основе UEFI могла бы стандартизировать поведение при загрузке встроенного ПО Linux с использованием стандартных загрузчиков, таких как U-Boot.

Спецификация Arm с открытым исходным кодом EBBR (Embedded Base Boot Requirements) готовится к выпуску версии 1.0 в декабре.
В течение года или двух, свободно определенный стандарт EBBR должен облегчить дистрибутивам Linux поддержку стандартизированной загрузки на основных встроенных аппаратных платформах.

На недавней Европейской конференции по встраиваемым Linux-технологиям Грант Лайкли, инженер ядра Linux, работающий в Arm, объяснил основы EBBR и зачем он нам нужен.
Предыдущие доклады ELC от Likely включают учебник по основам аппаратного взлома для разработчиков программного обеспечения .


В ELCE Грант Лайкли объясняет различия между требованиями к загрузке на встраиваемых устройствах и других платформах

(щелкните изображение, чтобы увеличить)

EBBR - это не новая технология, а документ с требованиями, основанный на существующих стандартах, который определяет поведение встроенного ПО для встроенных систем.
Его цель - обеспечить взаимодействие между встроенным оборудованием, проектами микропрограмм и ОС.

Эта спецификация в значительной степени основана на спецификации UEFI, ориентированной на десктоп, и включает в себя работу, которая уже ведется в сообществе U-Boot.
EBBR изначально был разработан для плат Arm Arm, загружаемых с помощью стандартного загрузчика U-Boot или загрузчиков Uiano TianoCore .
EBBR также опирается на проект Trusted Firmware-A от Arm, который предоставляет предпочтительную эталонную реализацию спецификаций Arm для упрощения переноса прошивки на современное оборудование.

EBBR в настоящее время «отлично работает» на Raspberry Pi и была успешно протестирована на нескольких хакерских платах Linux, в том числе Ultra96 и MacchiatoBIN , сказал Вероятно.
Несмотря на фокус на Arm Linux, EBBR уже находится в процессе поддержки нескольких аппаратных и ОС архитектур.
Проект FreeBSD присоединился к усилиям, и проект RISC-V проявил интерес.
Дополнительные загрузчики также будут поддерживаться.

Почему ЕБРР сейчас?

Стандарт UEFI появился, когда поставщики настольных программ боролись за поддержку растущего числа платформ для ПК.
Тем не менее, он никогда не переводился хорошо на встраиваемые, которым не хватает единообразия платформы ПК, а также «экономических стимулов к стандартизации, которые работают на уровне ПК», - сказал Вероятно.
В отличие от мира настольных компьютеров, одна фирма-разработчик, как правило, разрабатывает собственный программный стек для запуска на специально сконструированном устройстве «все вместе».

Однако в последние годы некоторые тенденции подтолкнули индустрию к повышению интереса к встраиваемым стандартам, таким как EBBR.
«Сейчас у нас много SBC, и встроенное программное обеспечение становится все более сложным», - сказал Вероятно.
«Пятнадцать лет назад мы, вероятно, могли обойтись с ядром Linux, BusyBox и небольшим количеством нестандартного кода сверху.
Но с IoT от нас ожидают такие вещи, как сетевые стеки, безопасные обновления и контроль версий.
У вас может быть несколько аппаратных платформ для поддержки ».

В результате растет интерес к использованию предварительно консервированных дистрибутивов для снятия растущего бремени обслуживания программного обеспечения.
«Начинает возникать экономический стимул загружать встроенную систему на всех основных дистрибутивах и на всех основных SBC», - сказал Вероятно.
«Мы дублировали большую часть одной и той же работы по настройке загрузки».

Проблема в том, что загрузчики, такие как U-Boot, ведут себя по-разному на разных аппаратных средствах, «с немного разными загрузками и настройками дерева устройств на каждой плате», продолжил он.
«Для дистрибутивов Linux невозможно поддерживать более двух плат.
Растущее число изображений, специфичных для плат, также создает проблемы.
Это проблема не только процесса загрузки - загрузки микропрограммы системы в ОС, но и того, как сообщить ОС, что находится на плате ».

Как разработчик дерева устройств Linux, Вероятный является экспертом по последнему вопросу.
«Дерево устройств дает нам разделение описания платы и ОС, но следующий шаг - сделать эту часть платформы», - пояснил он.
«До сих пор у нас не было стандартной предзагрузочной среды во встроенной среде.
Но если бы у вас был стандартный поток загрузки, и машина могла описывать себя ОС, дистрибутивы могли бы ее поддерживать.
Им не нужно было бы создавать собственное ядро, и они могли бы делать ядро ​​и обновления безопасности стандартным способом ».

Некоторые разработчики встраиваемых систем скептически относятся к зависимости EBBR от «раздутого» кода UEFI, опасаясь, что это замедлит время загрузки.
Тем не менее, вероятно, утверждал, что реализация EBBR добавляет «незначительные» накладные расходы.

EBBR также отличается от UEFI тем, что он написан с учетом встроенных ограничений и реальных практик.
«Стандартный UEFI говорит, что если ваше хранилище находится на eMMC, то микропрограммное обеспечение не может быть загружено туда, но EBBR достаточно гибок, чтобы можно было выполнять оба действия на одном носителе», - сказал Вероятно.
«Мы поддерживаем ограниченный доступ к оборудованию во время выполнения и ограниченный доступ к переменным, чтобы иметь дело с такими вещами, как механика разбиения устройств». Кроме того, спецификация достаточно гибкая, что «вы все равно можете выполнять свои собственные действия в рамках стандарта, не нарушая поток. »

EBBR v1.0 и выше

Когда Arm первоначально выпустила свое первоначальное предложение по универсальной загрузке, «никто не был заинтересован», сказал Вероятно.
Компания вернулась со вторым предложением EBBR, которое было запущено как проект с открытым исходным кодом с лицензией CC-BY-SA и страницей GitHub.
Крупные дистрибутивы Linux начали интересоваться.

Arm рассчитывает на дистрибутивные проекты, чтобы оказать давление на производителей полупроводников и плат.
Уже несколько производителей чипов, включая ST, TI и Xilinx, проявили интерес.
«Любая плата, которая поддерживается в магистрали U-Boot, должна работать», - сказал Вероятно.
«Distros начнет настаивать на этом, и, вероятно, это станет требованием через год или два».

Предстоящий выпуск v1.0 будет доступен в образах серверов для Fedora, SUSE, Debian и FreeBSD, которые будут загружаться без изменений в основной загрузке U-Boot.
Спецификация изначально работает на 32- и 64-битных устройствах Arm и поддерживает управление питанием ACPI и дерево устройств Linux.
Требуется технология Arm PSCI (интерфейс координации состояния питания) на 64-разрядных устройствах Arm.
Спецификация v1.0 предоставляет руководство по хранению и руководство по услугам во время выполнения, и оно может включать модель QEMU.

В будущих выпусках будут рассмотрены вопросы безопасной загрузки, капсульные обновления, больше встроенных сценариев использования, лучшее соответствие UEFI и улучшенное представление не в Linux, сказал Вероятный.
Другие цели включают функции безопасности и стандартную платформу тестирования.

«Это все решаемые проблемы», - сказал Скорее всего.
«Нет технических барьеров для стандартизации загрузки».

Вы можете посмотреть полную презентацию здесь:

EBBR: стандартная загрузка для встроенных платформ

Эта статья защищена авторским правом © 2018 Linux.com и была первоначально опубликована здесь .
Он был воспроизведен этим сайтом с разрешения его владельца.
Пожалуйста, посетите Linux.com для получения последних новостей и статей о Linux и open source.