Обновления OTA для Embedded Linux, часть 2 - Сравнение стандартных систем обновлений
В предыдущей статье мы обсудили основы и реализацию систем обновления Embedded Linux. Здесь мы обсуждаем ряд готовых систем обновления с открытым исходным кодом, которые доступны для интеграции с вашим проектом Embedded Linux уже сегодня.
Mender
Эта система обновлений выглядит очень профессиональной и удобной сразу после установки. Он использует систему обновления с двумя rootfs, очень похожую на ту, что была описана в предыдущей статье. Он тесно интегрируется с U-Boot, чтобы обеспечить откат в случае незагружающегося образа.
Начать работу с Mender довольно просто, так как есть хорошая четкая пошаговая документация о том, как настроить и интегрировать различные компоненты. Они предоставляют эталонные реализации на популярных платформах, таких как Raspberry Pi и BeagleBone Black, они могут дать вам представление о том, какой объем работы требуется, чтобы заставить его работать на вашей платформе.
Я обнаружил, что на интеграцию и начало работы ушло около трех дней. Было внесено много небольших изменений, чтобы заставить его работать с моей настройкой сборки Yocto (на основе Морти). Для решения этих проблем требуется некоторый опыт OpenEmbedded. Для правильной интеграции механизма двойной загрузки необходим опыт работы с U-Boot.
В конце он выводит «sdimg», содержащий загрузчик и файловую систему, который необходимо каким-то образом записать во флеш-память. Как вы это делаете, зависит от вашего целевого оборудования. Он также выводит так называемые «артефакты», которые содержат новый образ файловой системы и различные метаданные.
Артефакты могут быть установлены с помощью инструмента командной строки Mender для ручной установки (которая затем теоретически может быть расширена до автоматической установки с USB-накопителя). Артефакты также могут быть загружены в веб-службу внутреннего обновления через веб-интерфейс, и отсюда они могут быть перенесены на отдельные блоки.
Веб-интерфейс, управляющий внутренним сервером обновлений, хорошо продуман и прост в использовании. Настройка выполняется с помощью Docker, что упрощает первоначальную настройку. Для создания полностью готовой к эксплуатации системы потребуется опыт работы с Docker. В этом веб-интерфейсе вы можете видеть все развернутые в настоящее время устройства в полевых условиях и отправлять обновления на них по отдельности или в группах.
щелкните, чтобы увеличить изображение
Рис. 1. Mender содержит специальный веб-интерфейс для отправки обновлений на устройства (Источник:Mender)
Большинство Mender написано на языке программирования Go. Некоторый опыт в Go потребуется для долгосрочного внедрения и производственных релизов. Хотя этот язык по-прежнему не является распространенным во встроенном мире, в будущем он может получить более широкое распространение.
Вы привязаны к одному жестко запрограммированному загрузочному устройству (например, / dev / mmcblk0), поэтому нет простого способа разрешить загрузку с нескольких носителей. Он также делает много предположений о вашей системе, таких как различные параметры в загрузчике и ядре (например, включая поддержку определенных файловых систем). Что особенно важно, для этого требуется systemd, что может сделать его непригодным для некоторых проектов.
SWUpdate
Эта система обновлений легко настраивается. Вы настраиваете его с помощью системы «kconfig», которая знакома большинству разработчиков Embedded Linux. Вот несколько примеров параметров конфигурации:он поддерживает несколько загрузчиков (U-Boot, GRUB, EFI Boot Guard); он может подписывать и проверять подписанные изображения на основе заданного открытого ключа; он может поддерживать шифрование изображений с использованием шифрования с симметричным ключом.
Рисунок 2:система конфигурации для SWUpdate (Источник:SWUpdate)
Встроенный
- Какая платформа оркестровки контейнеров AWS лучше всего подходит для вашей организации?
- Что такое отладка:типы и методы во встроенных системах
- Роль встроенных систем в автомобилях
- Что такое встроенные системы и их приложения реального времени
- Встроенная память для выборки ST с изменением фазы для автомобильных микроконтроллеров
- Cervoz:ультратонкое хранилище NVMe для встраиваемых промышленных приложений
- Разработка элементов управления двигателями для роботизированных систем
- 10 лучших C# IDE для Windows, Linux, Mac (обновление 2021 г.)
- Преимущества встроенных технологий для модульного проектирования
- Системы трехмерного зрения – какая из них подходит именно вам?