Всех приветствую.
Хотел обсудить один вопрос. А именно система для сборки прошивок.
Есть много приборов где есть прошивка на базе линукса. У приборов есть архитектура проца (например 3 разных). Разные версии железа. Разный функционал. Есть варианты, когда один и тот же функционал может быть реализован на разном железе. А бывает что на одном железе делают разный функционал (да, это про fpga).
И вот, для всего этого зоопарка нужно нечто, что позволит быстро и без проблем собирать прошивки.
Как я себе это вижу.
Есть набор исходников разных версий: загрузчик, ядро, библиотеки, модули ядра, всякие программы обеспечивающие функционирование по назначению.
Есть некий прибор с заданной архитектурой, версией железа и потребным функционалом. Пишем некий конфиг, в котором указываем, какие компоненты нам нужны, каких версий и т.д. Из исходников собираются нужные бинарники нужных версии, конфигурации и архитектуры. Все это складывается в какие-то пакеты и хранятся в системе управления пакетами. Потом говорим, чтобы по вышеупомянутому конфигу собралась прошивка из указанных пакетов. Ну типа сделали образ рутфс, и туда все нужные пакеты развернулись (может даже с зависимостями).
Получается, что прошивка собирается из этих бинарных пакетов. Если надо что-то поменять в прошивке. Собираем новую версию какого-то пакета и потом заново прошивку.
Я не все потребности озвучил, но это пока самые главные.
Резюмирую немного главное:
- сборка из исходников с заданной версией, архитектурой, конфигом
- сборка из git репы, с заданным тегом, архитектурой, конфигом
- хранение в централизованном хранилище
- централизованное хранение конфигов для сборки прошивки из пакетов для железки и ее версии
- сборка любой версии прошивки в любой момент из пакетов
И вот теперь вопрос. А что в мире уже придумали на такой случай?
Что я уже видел-гуглил.
- билдрут - простяцкая, быстрая, очень скудный функционал.
- йокто - монструозная, нужно разбираться, но очень гибкая и в целом похоже то, что надо (концепция слоев, рецепты, метаданные и т.д.). Неясно насчет пакетирования и хранения.








