Я пытаюсь сделать свои первые шаги с yocto. При использовании psplash я могу видеть экран yocto-splash только при выключении системы. Не во время загрузки системы.
Для этого я использую Ubuntu 18.10 в Virtual Box (oracle). Я создаю образ с помощью этих команд:
~$ sudo apt-get install git python chrpath g++ gawk gcc make texinfo
~$ git clone -b sumo git://git.yoctoproject.org/poky
~$ cd poky/
~/poky$ source oe-init-build-env
~/poky/build$ nano /conf/local.conf
вставить в конец файла:
BB_NUMBER_THREADS = “8”
PARALLEL_MAKE = “-j 4”
IMAGE_INSTALL_append = “ psplash”
INHERIT_remove = “uninative”
строить с:
~/poky/build$ bitbake core-image-minimal
запустите изображение с помощью:
runqemu qemux86
При загрузке я заметил следующие два сообщения:
framebuffer /dev/fb0 not detected
Boot splashscreen disabled
Нашел такой вопрос: Экран-заставка yocto не появляется
Я уже пытаюсь добавить IMAGE_INSTALL_append = " psplash"
в local.conf
, но безрезультатно.
есть предложения?
Это возможно. через несколько строк после этого сообщения я получаю несколько строк с «uvesafb». Думаю, это ответственный пакет? Я попытался удалить всю последовательность загрузки, но не знаю, как это работает. Я нашел возможность с "tail -n 100 / var / log / dmesg", но там не все строки
Скриншот Здесь вы можете увидеть описанную последовательность загрузки
framebuffer /dev/fb0 not detected
Boot splashscreen disabled
происходит из файла psplash-init
#!/bin/sh
### BEGIN INIT INFO
# Provides: psplash
# Required-Start:
# Required-Stop:
# Default-Start: S
# Default-Stop:
### END INIT INFO
echo "########################################################"
if [ ! -e /dev/fb0 ]; then
echo "Framebuffer /dev/fb0 not detected"
echo "Boot splashscreen disabled 1"
exit 0;
fi
read CMDLINE < /proc/cmdline
for x in $CMDLINE; do
case $x in
psplash=false)
echo "Boot splashscreen disabled 2"
exit 0;
;;
esac
done
export TMPDIR=/mnt/.psplash
mount tmpfs -t tmpfs $TMPDIR -o,size=40k
rotation=0
if [ -e /etc/rotation ]; then
read rotation < /etc/rotation
fi
/usr/bin/psplash --angle $rotation &
Таким образом, попытка показать заставку (строки 6-7 на скриншоте) происходит до загрузки фреймбуфера (из строки 13 ...) Это правильно?
Меня интересует сообщение "Подождите: загрузка ...." Мы говорим о разных шагах загрузки? (например, bootloader-boot и linux-boot)
У меня была такая же проблема. Видимо yocto создаст файл /etc/rc.d/S00psplash.sh. S00 означает, что это выполняется в самом начале процесса загрузки, до загрузки необходимых графических драйверов. Я поменял его на S40, и он заработал. Еще не знаю, как исправить это внутри yocto. Вам также может потребоваться добавить в свой local.conf:
DISTRO_FEATURES_append = "directfb" # (не уверен, действительно ли это требуется)
и
IMAGE_FEATURES_append = "splash" # (возможно, это уже включено для вашего изображения)
Если не работает, сообщите об этом
С уважением ~
Также обратите внимание, что, насколько мне известно, Ubuntu 18.10 официально не поддерживается проектом yocto.
это определенно шаг в правильном направлении, так что спасибо за вашу помощь! /Etc/rc.d/S00psplash.sh находился в /etc/rcS.d/. При изменении этих вещей появляется заставка.
Есть ли шанс, что вы загружались в устаревшем режиме? Я просто перешел с устаревшей версии на uefi, потому что мне пришлось немного разбить свой образ на разделы, и bootplash работает из коробки. (с использованием образа .wic)
Может быть,
/dev/fb0
появляется слишком поздно (т.е. графический драйвер - это модуль)?