【问题标题】:psplash image does not appear (yocto & qemu)psplash 图像不出现 (yocto & qemu)
【发布时间】:2019-03-28 21:07:26
【问题描述】:

我正在尝试使用 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

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

你有什么想法吗?

【问题讨论】:

  • 也许/dev/fb0 出现得太晚了(即图形驱动程序是一个模块)?
  • 这是可能的。在这条消息之后的几行中,我得到了一些带有“uvesafb”的行。我想这是负责任的包裹?我试图找出整个启动序列,但我不知道它是如何工作的。我发现了“tail -n 100 /var/log/dmesg”的可能性,但并不是所有的行

标签: linux yocto


【解决方案1】:

我也遇到了同样的问题。显然 yocto 会创建一个文件 /etc/rc.d/S00psplash.sh 。 S00 表示这是在启动过程开始时执行的,在加载所需的图形驱动程序之前。我将其更改为 S40 并且它工作。尚不确定如何在 yocto 中解决此问题。您可能还需要添加到 local.conf:
DISTRO_FEATURES_append = "directfb" #(不确定这是否真的需要)

IMAGE_FEATURES_append = " splash" #(这可能已经为您的图像启用)
如果它不起作用,请报告回来
最好的问候~

【讨论】:

  • 另请注意,据我所知,yocto 项目并未正式支持 Ubuntu 18.10。
  • 这绝对是朝着正确方向迈出的一步,感谢您的帮助! /etc/rc.d/S00psplash.sh 在 /etc/rcS.d/ 中。更改这些内容后,就会出现启动画面
  • 您是否有机会以旧模式启动?我刚刚从 legacy 切换到 uefi,因为我必须对我的映像进行一些分区,并且 bootsplash 开箱即用。 (使用 .wic 图像)
【解决方案2】:

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)

【讨论】:

    猜你喜欢
    • 2018-01-29
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 2018-06-17
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    相关资源
    最近更新 更多