// Engineering Log
Yocto Project: как собрать собственный Linux для устройства
Опубликовано 22.09.2026
// Быстрый маршрут
Эта статья относится к теме Серверы и инфраструктура.
Yocto Project — открытый проект, который помогает собирать собственные системы на Linux для встраиваемых устройств, независимо от архитектуры процессора. Это не дистрибутив, а набор инструментов и метаданных: из исходных кодов собирается образ, в котором ровно те пакеты, ядро и настройки, которые нужны конкретному устройству — контроллеру, терминалу, шлюзу, медиаприставке.
Из чего состоит
- BitBake — планировщик и исполнитель задач. Он читает рецепты и конфигурацию, строит дерево зависимостей и выполняет сборку, во многом похоже на
make. - OpenEmbedded — система сборки, которая с помощью BitBake собирает пакеты и образ целиком.
- Рецепты (файлы
.bb) — описание сборки одного компонента: откуда взять исходники, какие наложить патчи, от чего он зависит, как его компилировать. - Слои — наборы рецептов и настроек, названия которых обычно начинаются с
meta-. Слои подключаются по мере надобности: поддержка платы, графическая подсистема, свои приложения. - BSP-слой (Board Support Package) — слой с настройками под конкретное железо, например
meta-raspberrypiдля плат Raspberry Pi. - Poky — эталонная сборка Yocto. Документация прямо предупреждает: в исходном виде её нельзя использовать как готовый продукт, это отправная точка.
Релизы и поддержка
По вики проекта на сентябрь 2026 года поддерживаются:
| Кодовое имя | Версия | Выпуск | Поддержка до | Тип |
|---|---|---|---|---|
| Wrynose | 6.0 | апрель 2026 | апрель 2030 | LTS |
| Scarthgap | 5.0 | апрель 2024 | апрель 2028 | LTS |
Следующий выпуск, 6.1 Blacksail, запланирован на октябрь 2026 года с поддержкой на шесть месяцев. Для продукта, который будет жить годами, выбирают LTS-ветку и все слои той же ветки: слои от разных версий между собой не совместимы.
Первая сборка
Минимальный путь — по руководству Quick Build из документации Yocto. Сборка требовательна к ресурсам: документация называет не меньше 140 ГБ свободного места на диске и рекомендует 32 ГБ оперативной памяти. Нужен поддерживаемый дистрибутив Linux, Git, Python 3.9 и новее, gcc 10.1 и новее, плюс набор пакетов, который перечислен в руководстве для каждого дистрибутива.
Текущая версия руководства использует утилиту bitbake-setup:
python3 -m venv --clear ./bitbake-setup-venv
. ./bitbake-setup-venv/bin/activate
pip install bitbake-setup
bitbake-setup initДальше окружение сборки активируется скриптом init-build-env из созданного каталога, по умолчанию целевая машина — эмулятор qemux86-64, и собирается образ:
bitbake core-image-minimal
runqemu snapshotcore-image-minimal — минимальный образ, который только загружается и даёт консоль. В руководстве для первой сборки приводится более полный core-image-sato с графической оболочкой. Первая сборка идёт несколько часов, повторные — заметно быстрее благодаря кешу.
Сборка для реального устройства
Для конкретной платы подключается её BSP-слой. Для Raspberry Pi это meta-raspberrypi: он зависит от BitBake, OpenEmbedded-Core и meta-yocto, а README слоя предлагает самый короткий путь — утилиту kas, которая по одному YAML-файлу скачивает нужные слои и запускает сборку. Готовый образ записывается на карту памяти утилитой bmaptool. Важно брать ветку слоя, совпадающую с веткой Yocto.
Где Yocto полезен
- Серийные устройства. Каждый экземпляр получает одинаковую, воспроизводимую систему.
- Контроль над составом. В образе нет лишних пакетов, а значит меньше размер, быстрее загрузка и меньше поверхность атаки.
- Лицензии и аудит. Система сборки знает лицензию каждого компонента, что упрощает проверку перед выпуском продукта.
- Долгая поддержка. LTS-ветка на четыре года позволяет планировать обновления на весь срок жизни устройства.
Когда Yocto не нужен
- Для сервера или рабочей станции: обычный дистрибутив вроде Debian проще и привычнее.
- Для прототипа из одного-двух устройств: быстрее взять готовый образ для платы, например Raspberry Pi OS.
- Если в команде нет времени на освоение: у Yocto высокий порог входа, первая рабочая сборка своего образа может занять недели.
- Для роутера или межсетевого экрана: готовые системы — OpenWrt, OPNsense — решают эти задачи без собственной сборки.
Yocto окупается, когда устройство выпускается серией, живёт годами и должно работать на точно известном наборе программ.
// Похожая задача
Если у вас похожая ситуация
Эта статья относится к одной из рабочих тем. Можно продолжить чтение по теме, перейти на главную, чтобы понять, чем я занимаюсь, или сразу открыть услуги.
Тема статьи
Серверы и инфраструктура
VPS, Linux, веб-стек, миграции, хостинг, базы данных и базовая эксплуатация.
Часто с этим приходят
- Перенести сайт или сервис на новый сервер
- Настроить Linux, Nginx, базу данных и бэкапы
- Разобраться, почему всё работает нестабильно
// Следующий шаг
Если вам нужна не только статья, а помощь по этой теме, удобнее сразу перейти в услугу. Главная и подборка материалов остаются рядом.
Открыть услуги// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
Написать в TelegramОтвечаю в течение рабочего дня (03:00–13:00 GMT)
Или оставьте заявку здесь:
// Related