Обычное дело: мы используем cookie. Здесь можно узнать зачем
Хорошо

Адаптация U-Boot для запуска Astra Linux на Rock Pi 4B+

В этом проекте мы помогли заказчику заложить технологическую основу для локализации производства одноплатных компьютеров Rock Pi 4B+. Наша команда адаптировала загрузчик U-Boot для запуска Astra Linux на целевой аппаратной платформе. Мы также подготовили Docker-окружение и GitLab CI/CD pipeline, чтобы заказчик мог самостоятельно собирать загрузчик из исходных файлов.
Поддержка Astra Linux на Rock Pi 4B+
Автоматизированный процесс сборки
Возможность самостоятельной модификации и сборки

Введение

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

Запрос

К нам обратился российский разработчик и производитель аппаратных решений для промышленной автоматизации и диспетчеризации. Среди направлений его деятельности – импортозамещение оборудования. Поэтому в рамках одного из проектов компании требовалось локализовать производство одноплатных компьютеров, которые планировалось использовать в специализированных промышленных модулях.
Провести аудит конструкторской документации на одноплатные компьютеры (Rock Pi 4B+) и вынести заключение об их пригодности для локального производства.
Доработать загрузчик U-Boot для запуска на целевой платформе российской ОС Astra Linux.
Предоставить заказчику инфраструктуру, необходимую для самостоятельной сборки U-Boot.

Задачи

Решение

Одноплатный компьютер Rock Pi 4B Plus

Аудит конструкторской документации

Компания приобрела у производителя оригинального одноплатного компьютера на базе чипа Rockchip RK3399 права, необходимые для локализации производства данного продукта. Разработчик выслал файлы, необходимые для производства и поддержки продукта. На этом этапе заказчик поручил команде “КЕДР Солюшенс” провести аудит этой документации.

В рамках данной задачи мы проверили:
  • полноту предоставленных файлов;
  • возможно ли открывать и вносить изменения в исходный проект в среде Altium Designer;
  • есть ли ошибки в проекте;
  • можно ли корректно формировать из проекта производственные файлы;
  • соответствует ли предоставленная документация фактическому образцу устройства.

В заключении мы высказали несколько замечаний. В частности, в проекте отсутствовал документ с информацией о стеке слоев печатной платы, необходимый для производства устройства. Кроме того, спецификация BoM содержала неполную информацию об используемых компонентах. Аудит также выявил проблемы с совместимостью файлов проекта с актуальной версией Altium Designer.

Доработка загрузчика U-Boot под ОС Astra Linux

Команда должна была адаптировать U-Boot для запуска Astra Linux на целевой плате.
U-Boot – это загрузчик с открытым исходным кодом, который выполняется на ранних этапах загрузки системы. Он готовит аппаратную платформу к запуску ОС. В зависимости от платформы загрузочный процесс может включать несколько последовательных этапов:

  • инициализацию оборудования, необходимого для дальнейшей загрузки;
  • инициализацию оперативной памяти и других компонентов;
  • поиск и загрузку ядра ОС;
  • передачу управления ядру ОС.

Загрузчик не является полностью универсальной программой: для корректной работы с платформой ему нужны сведения об оборудовании и соответствующие драйверы. Чтобы Astra Linux запустилась на целевой плате, нужно было адаптировать конфигурацию U-Boot под целевую аппаратную платформу.

Мы разделили работу на два шага.
  • Проверка платы и сборка собственного U-Boot для Ubuntu
    Сначала мы взяли готовый образ Ubuntu для Rock Pi 4B+, загрузили его на одноплатный компьютер и убедились, что устройство работает. Так мы исключили проблемы с аппаратным обеспечением.

    Затем команда собрала собственный U-Boot из исходных файлов, подменила им штатный загрузчик в образе Ubuntu и загрузила ОС на плату. Ubuntu здесь выступает в качестве удобной контрольной среды: если ОС запускается на устройстве после замены штатного загрузчика на собственный, значит, он собран правильно.
  • Сборка U-Boot для Astra Linux
    Успешно проверив собственный U-Boot на Ubuntu, мы перешли к целевой ОС. Чтобы обеспечить взаимодействие с Rock Pi 4B+, мы изменили конфигурацию загрузчика:

    • изменили исходные DTS-файлы, описывающие аппаратную конфигурацию, и скомпилировали соответствующие DTB-файлы;
    • настроили конфигурацию сборки.

    На выходе мы получили два файла – u-boot.itb и idbloader.img. Затем мы подменили ими штатный загрузчик из готового образа ОС, предоставленного разработчиком Astra Linux, и успешно запустили систему на плате.

Подготовка инфраструктуры для самостоятельной сборки U-Boot

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

Поэтому мы подготовили и передали клиенту всю необходимую инфраструктуру, а именно Docker-образ с окружением для сборки U-Boot, инструкцию по его применению для получения нужных артефактов, а также конфигурацию GitLab CI/CD pipeline для автоматизации сборки загрузчика.

Выполненные работы

  • Аудит конструкторской документации для проверки ее соответствия требованиям производства.
  • Сборка собственного U-Boot, позволяющая запускать Astra Linux на плате Rock Pi 4B+.
  • Подготовка и передача инфраструктуры для самостоятельной сборки бинарных файлов загрузчика из исходных файлов.

Использованные технологии

Altium Designer
для проверки конструкторской документации.
VSCode
для внесения правок в исходные файлы U-Boot.

Итоги

Заказчик получил сборку загрузчика U-Boot, адаптированную под целевое аппаратное обеспечение и позволяющую запускать российскую ОС Astra Linux на целевой платформе.

Благодаря нашему участию в проекте клиент:

  • смог выявить и снизить риски, связанные с локализацией серийного производства устройства;
  • повысил степень локализации продукта, что создает основу для его дальнейшего развития и производства в России;
  • получил возможность самостоятельно модифицировать и пересобирать U-Boot для своих одноплатных компьютеров благодаря переданным исходникам, Docker-окружению и GitLab pipeline.
Связаться с нами
Оставьте контактные данные, и мы свяжемся с вами в ближайшее время