Мы используем файлы cookie. Продолжая использование сайта, вы соглашаетесь с этим.
OK

Yocto BSP для промышленного контроллера: принципы построения платформы, готовой к сертификации

При разработке BSP (Board Support Package) для промышленных контроллеров — ПЛК, программируемых реле, шлюзов и других embedded-устройств — основной целью является не просто получение работоспособного Linux-образа. Значительно важнее создать детерминированную, воспроизводимую, сертифицируемую и пригодную для долгосрочной поддержки платформу. Именно такой подход позволяет гарантировать одинаковый результат сборки, контролировать состав программного обеспечения, своевременно устранять уязвимости и выполнять требования отраслевых стандартов, таких как IEC 62443.

Первым этапом становится разработка собственного BSP-слоя, который описывает аппаратную платформу. В структуре слоя определяются параметры целевой платы, архитектуры процессора, карты памяти, периферийных интерфейсов, загрузчика и конфигурации машины и закладывается фундамент всей программной платформы. Следующий шаг — адаптация ядра Linux. Для промышленных устройств этот процесс редко ограничивается выбором стандартного linux-yocto. Как правило, используются собственные конфигурации, учитывающие особенности ARM- или RISC-V-платформ, требования реального времени и состав аппаратуры. Применяется PREEMPT_RT, идет отключение неиспользуемых драйверов (например, графической подсистемы), оптимизация конфигурации ядра и подготовка его к дальнейшей сертификации.

Не менее важную роль играет загрузочная цепочка. Современный промышленный BSP предполагает использование U-Boot с поддержкой Verified Boot и FIT-образов. В дальнейшем этот механизм может быть дополнен аппаратным корнем доверия, безопасным хранением ключей и средствами восстановления после неудачного обновления прошивки. После сборки образ проходит обязательную валидацию: сначала выполняется сборка минимального образа средствами BitBake, затем формируется промышленная конфигурация и проводится проверка как в эмуляторе QEMU, так и на реальном оборудовании с контролем загрузки, сетевого взаимодействия, работы накопителей, часов реального времени и других аппаратных компонентов.

Состав программного обеспечения в промышленном BSP также строится по принципу минимализма. Базовый слой включает только необходимые системные компоненты: systemd или альтернативные системы инициализации для legacy-проектов, защищенные SSH-серверы, средства синхронизации времени, журналирования и сетевого администрирования. Поверх него добавляется промышленный стек, включающий библиотеки и сервисы для OPC UA, Modbus, MQTT, SNMP, инструменты тестирования систем реального времени и, при необходимости, интерпретатор Python с ограниченным набором библиотек. Для обеспечения безопасности используются watchdog, TPM, средства шифрования и контроля процессов. Все пакеты фиксируются непосредственно в конфигурации сборки через IMAGE_INSTALL и PACKAGECONFIG, а лишние компоненты исключаются посредством DISTRO_FEATURES. 
Неотъемлемой частью разработки становится полностью автоматизированный процесс сборки. Современный BSP существует внутри CI/CD-конвейера, где используются kas или CROPS для воспроизводимого окружения, а GitLab CI либо Jenkins выполняют оркестрацию процесса. Пайплайн включает параллельную сборку различных аппаратных конфигураций, запуск встроенных тестов Yocto, генерацию образов загрузчика, ядра и файловой системы, а также аппаратные испытания через LAVA или Robot Framework. Каждый выпуск сопровождается вычислением контрольных сумм, подписанием артефактов и сохранением всей информации о сборке, благодаря чему возврат к любой предыдущей версии занимает считанные минуты.

Отдельного внимания заслуживает безопасность цепочки поставки программного обеспечения. Yocto предоставляет встроенные механизмы контроля уязвимостей, однако они требуют явной настройки. Использование cve-check позволяет автоматически анализировать рецепты на наличие известных CVE еще во время сборки, а механизм хеширования гарантирует пересборку пакетов при изменении исходного кода или патчей. После формирования образа дополнительно выполняется анализ состава файловой системы средствами Syft, Grype или ScanCode Toolkit с автоматической генерацией SBOM в форматах SPDX или CycloneDX. 

Если обобщить, то промышленный BSP на базе Yocto строится вокруг трех ключевых принципов: фиксированного и минимального состава программного обеспечения, полностью автоматизированного воспроизводимого процесса сборки и непрерывного контроля безопасности программной цепочки. 

ЦПР РТСофт создает промышленный софт, который решает актуальные производственные и экономические вызовы вашего предприятия. Наши сильные стороны — глубокая экспертиза в энергетике, металлургии и нефтехимии, а также проектирование и внедрение эффективных программных решений для крупных промышленных компаний. Нужна интеграция разнородных систем управления, переход на открытые стандарты или обеспечение совместной работы оборудования разных производителей? Напишите нам на info@list.dev.rtsoft.ru, и мы предложим действенный способ решения вашей задачи.

Наши статьи: