解决 plymouth 和 gdm-login 启动阶段之间的黑色文本和空白屏幕问题

解决 plymouth 和 gdm-login 启动阶段之间的黑色文本和空白屏幕问题

在 Ubuntu 18.04.2 中,我想从 Grub2 启动到 GDM 登录屏幕出现时显示一致的背景图像。

我已经自定义了 ubuntu-logo plymouth 主题以显示我想要的背景图像。所有必要的步骤均按照@杰克已经完成,并进行了测试。甚至执行了@Jake 描述的测试程序。但是,plymouth 主题就是没有出现。在 Grub2 和 GDM 登录阶段之间,每次系统启动时我仍然会遇到 6-7 秒的黑屏。

我该怎么做才能发现这个黑屏的问题?我该如何解决这个缺失启动画面的问题?系统使用 NVidea 驱动程序版本:418.56。

备注:系统能够启动并在 GDM 登录屏幕登录。

更新 1:

我提出以下修正案来尝试解决我的问题:

  1. 我在默认的 Grub2 文件中添加了以下命令/etc/defaults/grub

    GRUB_GFXMODE=1920x1080x32 GRUB_GFXPAYLOAD_LINUX="keep"

    根据GRUB_GFXPAYLOAD_LINUX,该值保留了Linux内核启动时"keep"使用的图形模式设置。GRUB_GFXMODE

    1920x1080x32之所以选择分辨率,是GRUB_GFXMODE因为它是 Grub2 检测到的视频驱动程序中可用的最高分辨率,它是EFI GOP 驱动程序

    为了获取 Grub2 检测到的可用分辨率,在启动阶段的 Grub2 菜单中,我按下了键盘上的“c”键。然后在 grub> 提示符下,我输入了命令videoinfo(见下文视频信息);该命令vbeinfo在 Grub2 中不存在。

  2. 我创建了一个启动文件,并使用此终端命令设置 FRAMEBUFFER:

    echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash

  3. 由于涉及到启动图像,我执行了配置设置(显示启动画面)在此Ubuntu 维基

  4. 运行终端命令sudo update-initramfs -usudo update-grub

参考

视频信息:

grub> videoinfo
List of supported video modes:
Legend: mask/position=red,green,blue,reserved
Adapter 'Bochs PCI Video Driver':
  No info available
Adapter 'Cirruls CLGD 5446 PCI Video Driver':
  No info available
Adapter 'EFI GOP Driver':
* 0x000 1920 x 1080 x 32 (7680)  Direct color, mask: 8/8/8/8  pos: 16/8/0/24
  0x001  640 x  480 x 32 (2560)  Direct color, mask: 8/8/8/8  pos: 16/8/0/24
  0x002  800 x  600 x 32 (3200)  Direct color, mask: 8/8/8/8  pos: 16/8/0/24
  0x003 1024 x  768 x 32 (3200)  Direct color, mask: 8/8/8/8  pos: 16/8/0/24
  0x004 1280 x  800 x 32 (5120)  Direct color, mask: 8/8/8/8  pos: 16/8/0/24
  0x005 1280 x 1024 x 32 (5120)  Direct color, mask: 8/8/8/8  pos: 16/8/0/24
  0x006 1440 x  900 x 32 (5760)  Direct color, mask: 8/8/8/8  pos: 16/8/0/24
  0x007 1400 x 1050 x 32 (5600)  Direct color, mask: 8/8/8/8  pos: 16/8/0/24
  0x008 1680 x 1050 x 32 (6720)  Direct color, mask: 8/8/8/8  pos: 16/8/0/24
  EDID version: 1.3
    Preferred mode: 1920x1080
grub>

问题:

在我多次重启检查期间,好消息是我现在能够看到我实现的普利茅斯飞溅。然而,坏消息是plymouth 启动画面不会一直持续到 GDM 登录屏幕出现;在 GDM 登录屏幕出现之前,启动画面仍然首先出现黑色文本屏幕(参见第一次重启和后续重启的下图),然后是完全黑屏。出现大约 5 到 10 秒。此外,在我进行了上述修改后,在第一次重启时,普利茅斯飞溅出现的时间最长。在第二次和后续重启时,飞溅出现的时间缩短了。奇怪...

第一次重启(左)和后续重启(正确的)

第一次启动 第二次启动

问题:我该如何避免/克服在 plymouth-splash 和 gdm-login 阶段之间出现的黑色文本屏幕和黑色空白屏幕?启动序列中是否有另一个阶段可以实现我尚未注意到的背景图像?到目前为止,我只知道需要在 grub、plymouth 和 gdm 阶段放置背景图像,并且我已经执行了这些设置。

更新 2:

我想在这里分享我使用GRUB_GFXPAYLOAD_LINUX="keep"Grub2 处理 Linux 内核时发现的问题,这些值包括:、、、、、、、和ro。对于每种情况,我记录了从我在 Grubmenu->pressed-key-“e”环境中按下 F10 键之后到出现 GDM 登录屏幕的启动事件,并进行了三次相同的视频测量。报告时间的精度为1秒。报告的时间受到 Seagate 的 Firecuda 内置 2.5 英寸 SATA3 HDD 性能的限制,不适用于安装在 SSD 上的操作系统。ro splashro nomodesetro quietro quiet splashro quiet splash$vt_handoffro splash $vt_handoff

这里给出了我的测量结果的摘要。结果

它们的累计时间图表如下所示。请注意,当两个事件之间的曲线为水平时,表示左侧的事件没有发生。累计计时

主要发现:

  1. 使用 $vt_handoff 允许从 Grub Menu 阶段到 Plymouth Splash 阶段不间断地显示 Grub 背景图像。
  2. ro splash $vt_handoff使用和的性能ro quiet splash $vt_handoff相似,只是前者比后者稍微快一点(在我的情况下快 1 秒)。
  3. ro使用或可实现最短 20 秒的启动时间ro splash $vt_handoff。当需要显示背景图像时,后者最为合适。

评论:

我的设置目前仍然受到 2 个现象的困扰。

  1. 在出现 GDM-Login 屏幕之前,出现黑屏,持续 8 到 10 秒,并且
  2. 在 Plymouth Splash 之后或之前提到的黑屏出现后,启动日志会持续 1 秒。即使quiet使用了该值,它也会显示出来。

我怀疑这两个问题与 Nvidia 驱动程序和 Grub 之间的通信有关,或者与在各个虚拟屏幕之间转换时的时间问题有关。了解这些现象的人能否建议我如何克服/调查它们?谢谢。

答案1

添加内核参数loglevel=3解决了我的 bootlog 问题。您可能需要根据遇到的具体问题降低 loglevel 的值。遗憾的是,这对空白屏幕没有任何作用。

相关内容