OpenEmbedded руководство пользователя

Команда OpenEmbedded

Этот документ распрастраняется на условиях лицензии Creative Commons Attribution. Ознакомиться с текстом лицензии можно или по ссылке http://creativecommons.org/licenses/by/2.0/ или отправив письмо по адресу: Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA для получения печатной копии.


Содержание

1. Введение
Обзор
История появления
2. Первые шаги
Структура каталогов OpenEmbedded
Получение BitBake
Получение BitBake при помощи Subversion
Обновление BitBake
Получение OpenEmbedded
Получение OpenEmbedded при помощи Git
Обновление OpenEmbedded
Изменение используемой ветки
Настройка OpenEmbedded
Настройка окружения
Локальные настройки
Сборка приложений
Полезные рецепты целей
3. Метаданные
Размещение файлов
Синтаксис
Классы
Создание файлов метаданных (добавление рецептов)
4. Специальные возможности
Именование пакетов согласно политике Debian
Работа с разделяемыми библиотеками (shlibs)
Коллекции BitBake
Task-base
Переопределения
5. Часто используемые приемы и цели
Создание нового дистрибутива
Добавление новой платформы
Добавление нового рецепта
Сборка исходных кодов из репозиториев
Создание нового образа
Использование готового инструментария сборки
Инструментарий сборки
Готовые библиотеки
Настройка OpenEmbedded
Полезные приемы
Возможные проблемы
Использование нового формата пакетов
6. Сравнение
buildroot
crosstool
Самостоятельная сборка
7. Использование bitbake и OpenEmbedded
Введение
Настройка
Рабочая область
Рабочий каталог (tmp/work)
Задачи
Работа с рецептом
Интерактивный bitbake
Devshell
devshell через подключение
devshell дополнение
Работа с devshell
Применение патчей и управление ими
8. Рецепты
Введение
Синтаксис рецептов
Именование рецептов: Названия, версии и релизы
Переменные
Заголовок
Исходный код: Загрузка, применение патчей и дополнительные файлы
Директории: Что, где и как
WORKDIR: Рабочая директория
S: Распакованный исходный код
D: Директория назначения
"Staging" директории
FILESPATH/FILESDIR: Поиск локальных файлов
Базовые примеры
Hello world
Основанный на autotools пакет
Зависимости: Что нужно для сборки и/или запуска пакета?
Методы: Встроенные методы для облегчения процесса сборки
Упаковка: Определение пакетов и их содержимого
Философия
Пакеты и файлы по умолчанию
Символы подстановки
Проверка пакетов
Исключение файлов
Именование в стиле Debian
Пустые пакеты
Задачи: Играем с задачами
Классы: Выделение общей функциональности
"Staging": Делаем заголовочные файлы и библиотеки доступными для сборки
Autoconf: Все о autotools
Скрипты установки: Запуск скриптов при установке и/или удалении пакета
Конфигурационные файлы
Отношения между пакетами
Fakeroot: Что можно сделать с необходимостью "root" доступа
Native: Пакеты для хоста
Разработка: Стратегии написания рецептов
Продвинутая работа с версиями: Что делать с rc и pre версиями
Require/include: Переиспользование содержимого рецептов
Python: Добавление продвинутой функциональности
Указание предпочтительных версий пакета
Скрипты инициализации: Как управлять демонами
Альтернативы: Как обрабатывать одну и ту же команду в нескольких пакетах
Пример альтернативных команд
Использование update-alternatives
Изменчивые файлы: Как работать с /var директрией
Описание изменчивых файлов
Журналирование и файлы журналов
Summary
Разное
9. Справочник
Класс autotools
oe_runconf / autotools_do_configure
Предустановка переменных autoconf (site файл)
Класс binconfig
Directories: Installation variables
Directories: Staging variables
Класс distutils
fakeroot (device node handling)
How fakeroot works
Root filesystem, images and fakeroot
Recipes and fakeroot
Класс image
Обработка специальных файлов (fakeroot)
Файлы устройств (/dev)
Типы образов
Источники пакетов
Image types
Defining images
Available image types
Custom image types
pkgconfig class
rootfs_ipkg class
SECTION variable: Package category
siteinfo class
CONFIG_SITE: The autoconf site files
SRC_URI variable: Source code and patches
http/https/ftp (wget)
file: for patches and additional files
cvs
svn
git
Mirrors
Manipulating SRC_URI
Source distribution (src_distribute_local)
update-alternatives class
Naming of the alternative commands
How alternatives work
The update-alternatives command
Priority of the alternatives
Tracking of the installed alternatives
Using the update-alternatives class
update-rc.d class
Multiple update-rc.d packages