psplash图像未出现(yocto和qemu)

时间:2018-10-24 12:37:27

标签: linux yocto

我正在尝试使用yocto做我的第一步。 使用psplash时,我仅在关闭系统时才能看到yocto-splashscreen。不是在系统启动时。

为此,我在Virtual Box(oracle)中使用Ubuntu 18.10。 我使用以下命令来构建图像:

~$ 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 splash screen not appearing

我已经尝试在IMAGE_INSTALL_append = " psplash"中添加local.conf,但是没有效果。

您有什么想法吗?

2 个答案:

答案 0 :(得分:0)

Screenshot 在这里,您可以看到描述的启动顺序

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)

答案 1 :(得分:0)

我只是遇到了同样的问题。显然yocto会创建一个文件/etc/rc.d/S00psplash.sh。 S00表示在加载所需的图形驱动程序之前,该过程在引导过程开始时立即执行。我将其更改为S40并成功了。尚不确定如何在yocto内部解决此问题。您可能还需要添加到local.conf中:
DISTRO_FEATURES_append =“ directfb”#(不确定是否确实需要这样做)

IMAGE_FEATURES_append =“ splash”#(您的图片可能已启用)
如果不起作用,请报告
最好的问候〜