0

i'm trying to make my first steps with yocto. While using psplash i can see the yocto-splashscreen only while shutting down the system. Not while the system is booting up.

For this i'm using a Ubuntu 18.10 in a Virtual Box (oracle). I build the image with this commans:

~$ 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

insert at the end of file:

BB_NUMBER_THREADS = “8”
PARALLEL_MAKE = “-j 4”
IMAGE_INSTALL_append = “ psplash”
INHERIT_remove = “uninative”

build with:

~/poky/build$ bitbake core-image-minimal

run the image with:

runqemu qemux86

While booting up i noticed the following two messages:

framebuffer /dev/fb0 not detected
Boot splashscreen disabled

I found this question: yocto splash screen not appearing

I already try to add IMAGE_INSTALL_append = " psplash" in the local.conf but no effect.

Do you have some ideas?

  • Maybe the `/dev/fb0` appears too late (i.e. the graphics driver is a module)? – Tomas Novotny Oct 24 '18 at 13:20
  • This is possible. a few lines after this message i get some lines with "uvesafb". I guess this is the responsible package? I tryed to get out the whole boot sequence, but i don't know how this works. I Found a possibility with "tail -n 100 /var/log/dmesg" but there are not all the lines – Matthias B Oct 24 '18 at 18:51

2 Answers2

0

Screenshot Here you can see the described boot-sequence

framebuffer /dev/fb0 not detected
Boot splashscreen disabled

comes from the psplash-init file

#!/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 &

So the try to show the splashscreen (lines 6-7 in screenshot) occures before the framebuffer is loaded (from line 13 ...) Is this right?

I'm wondering about the message "Please wait: booting...." Do we talk about different bootsteps? (like bootloader-boot and linux-boot)

0

I just had the same problem. Apparently yocto would create a file /etc/rc.d/S00psplash.sh . S00 means this is executed right at the beginning of the boot process, before the required graphics drivers are loaded. I changed it to S40 and it worked. Not sure yet how to fix this inside yocto. You might also need to add to your local.conf:
DISTRO_FEATURES_append = " directfb" # (not sure whether this is really required)
and
IMAGE_FEATURES_append = " splash" # (this might already be enabled for your image)
If it does not work please report back
Best regards ~

MAPster
  • 68
  • 6
  • Please also note that to my knowledge Ubuntu 18.10 is not officially supported by the yocto project. – MAPster Mar 15 '19 at 08:23
  • it is definitly a step into the right direction, so thx for your help! The /etc/rc.d/S00psplash.sh was in /etc/rcS.d/. With changing these things the splash image comes up – Matthias B Mar 21 '19 at 14:38
  • Any chance you were booting in legacy mode ? I just switched from legacy to uefi because I had to do some partitioning of my image and the bootsplash works out of the box. (using the .wic image) – MAPster May 24 '19 at 07:45