OTA Updates для Embedded Linux — Часть 2: Оценка готовых платформ обновления
В первой статье мы покрыли фундаменты и реализацию OTA систем обновлений для Embedded Linux. Эта часть оценивает популярные, готовые open-source платформы, которые можно интегрировать в ваш проект сегодня.
Mender
Mender доставляет полированный, out-of-the-box опыт. Он использует dual-rootfs стратегию, похожую на описанную ранее, и тесно интегрируется с U-Boot, обеспечивая бесшовный rollback если образ не загружается.
Начало работы просто благодаря четкой, пошаговой документации. Reference сборки для Raspberry Pi и BeagleBone Black иллюстрируют усилия, необходимые для адаптации решения к вашему железу.
В моем опыте, интеграция заняла примерно три дня. Процесс включал минорные правки Yocto (Morty) сборки и требовал знакомства с OpenEmbedded и U-Boot для правильной конфигурации dual-boot механизма.
После сборки Mender выдает «sdimg» файл, содержащий загрузчик и файловую систему, который затем пишется во флеш. Он также производит «artifacts», бандлящие новый образ файловой системы с метаданными.
Artifacts могут быть установлены вручную через mender CLI, или загружены на backend сервер через веб-интерфейс для автоматизированного развертывания на целевых юнитах.
Backend management console построен на Docker, упрощая первоначальное развертывание. Веб UI позволяет мониторить все полевые устройства и пушить обновления индивидуальным юнитам или группам.
кликните для увеличения
Рисунок 1: Кастомный веб-интерфейс Mender для пуша обновлений (Источник: Mender)
Большая часть Mender написана на Go, поэтому некоторые знания Go желательны для долгосрочного обслуживания. Пока Go еще не повсеместна в embedded разработке, ее принятие растет.
Однако Mender привязывает вас к одному boot устройству (например, /dev/mmcblk0) и предполагает специфические bootloader и kernel конфигурации, такие как поддержка определенных файлов систем. Он также мандирует systemd, что может исключить проекты, полагающиеся на альтернативные init системы.
SWUpdate
SWUpdate предлагает высококонфигурируемый фреймворк. Его конфигурация использует знакомый kconfig синтаксис, позволяя разработчикам адаптировать систему к своим нуждам.
Ключевые возможности включают поддержку множественных bootloaders (U-Boot, GRUB, EFI Boot Guard), подписание и верификацию образов с публичным ключом, и опциональное симметричное шифрование payloads.

Рисунок 2: Система конфигурации SWUpdate (Источник: SWUpdate)
Встроенный
- Выбор правильного AWS сервиса оркестрации контейнеров для вашего бизнеса
- Отладка в встраиваемых системах: типы, техники и инструменты для надёжного ПО
- Как встроенные системы двигают инновации в современном автомобиле
- Встроенные системы: определение, архитектура и реальные применения
- ST Microelectronics демонстрирует 28 нм FD-SOI MCU с встроенным PCM для powertrain, ADAS и электрификации
- Cervoz ультра-тонкие M.2 NVMe SSD: высокопроизводительное хранение для промышленных пограничных приложений
- Проектирование точных приводов двигателей для передовых робототехнических систем
- Топ-10 IDE для C# на Windows, macOS и Linux — обзор 2021
- Преимущества встроенных технологий в модульном проектировании
- Выбор правильной 3D-системы зрения для потребностей промышленной автоматизации