Настройка загрузочной заставки в Yocto

Моим первым желанием как новичка в Yocto, как только мне удалось собрать свой первый образ Linux, было заменить логотип Yocto на загрузочной заставке на свой собственный логотип. Из этой, казалось бы, простой задачи мне удалось узнать много нового о Bitbake.

Стандартная заставка Yocto отображается с помощью рецепта под названием psplash. Этот рецепт включен в каталог исходников Poky и находится по адресу meta/recipes-core/psplash.

Отрисованное изображение логотипа Yocto находится в meta/recipes-core/psplash/files/psplash-poky-img.h в виде заголовочного файла.

Существует несколько способов изменить логотип psplash. Ниже перечислены некоторые из них:

1. Заменить psplash-poky-img.h на файл .png.

Этого можно добиться, заменив файл заголовка изображения psplash-poky-img.h в каталоге files на логотип в формате png. Затем добавьте путь к логотипу в SRC_URI через SPLASH_IMAGES, изменив назначение переменной:

С

SPLASH_IMAGES = "file://psplash-poky-img.h;outsuffix=default"
Войти в полноэкранный режим Выйти из полноэкранного режима

на

SPLASH_IMAGES = "file://my-logo-image.png;outsuffix=default"
Войти в полноэкранный режим Выйти из полноэкранного режима

предполагая, что в данном случае ваше изображение будет называться my-logo-image.png.

Когда изображение будет запечено, новый логотип будет добавлен в загрузочную заставку.

Этот подход очень прост, но недостатком является то, что модификации производятся в исходных файлах Poky, что не является хорошим подходом.

2. Создать рецепт для расширения psplash

Правильной альтернативой является создание нового рецепта, который будет добавлять те же изменения, о которых говорилось в первом подходе выше, используя файл .bbappend.

Рецепт будет включать psplash_%.bbappend, который в данном случае будет содержать

SPLASH_IMAGES:forcevariable = "file://my-logo-image.png;outsuffix=default"
Войти в полноэкранный режим Выйти из полноэкранного режима

Переменная :forcevariable важна для предотвращения переопределения логотипа машиной, как, например, в случае слоев raspberry pi.

Кроме того, изображение логотипа помещается в каталог files, расположенный в той же папке, что и файл psplash_%.bbappend. Затем каталог files включается в SRC_URI пути psplash путем добавления следующей строки в файл psplash_%.bbappend.

FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
Вход в полноэкранный режим Выйти из полноэкранного режима

Не забудьте сделать слой, содержащий этот рецепт, более приоритетным (с помощью переменной BBFILE_PRIORITY), чем любой другой слой, предоставляющий или переопределяющий рецепт psplash.

3. мета-сплеш

meta-splash — это слой, созданный с использованием второго подхода.

При использовании meta-splash все, что вам нужно сделать, это:

  1. Клонировать слой meta-splash в своем проекте Poky: git clone https://github.com/hamzamac/meta-splash.git.

  2. Заменить стандартное изображение logo.png в meta-splash/recipes-core/psplash/files на ваше изображение логотипа с именем logo.png (имя можно настроить в customize.bb).

  3. Запеките ваше изображение

Вот и все.

Чтобы настроить цвета и прогресс-бар, ознакомьтесь с README мета-сплеша

Оцените статью
devanswers.ru
Добавить комментарий