// 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 года поддерживаются:

Кодовое имяВерсияВыпускПоддержка доТип
Wrynose6.0апрель 2026апрель 2030LTS
Scarthgap5.0апрель 2024апрель 2028LTS

Следующий выпуск, 6.1 Blacksail, запланирован на октябрь 2026 года с поддержкой на шесть месяцев. Для продукта, который будет жить годами, выбирают LTS-ветку и все слои той же ветки: слои от разных версий между собой не совместимы.

Первая сборка

Минимальный путь — по руководству Quick Build из документации Yocto. Сборка требовательна к ресурсам: документация называет не меньше 140 ГБ свободного места на диске и рекомендует 32 ГБ оперативной памяти. Нужен поддерживаемый дистрибутив Linux, Git, Python 3.9 и новее, gcc 10.1 и новее, плюс набор пакетов, который перечислен в руководстве для каждого дистрибутива.

Текущая версия руководства использует утилиту bitbake-setup:

bash
python3 -m venv --clear ./bitbake-setup-venv
. ./bitbake-setup-venv/bin/activate
pip install bitbake-setup
bitbake-setup init

Дальше окружение сборки активируется скриптом init-build-env из созданного каталога, по умолчанию целевая машина — эмулятор qemux86-64, и собирается образ:

bash
bitbake core-image-minimal
runqemu snapshot

core-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)

Или оставьте заявку здесь:

Подтвердите, что вы не бот.

Написать и получить быстрый ответ