在 Ubuntu 18.04.2 中,我想从 Grub2 启动到 GDM 登录屏幕出现时显示一致的背景图像。
我已经自定义了 ubuntu-logo plymouth 主题以显示我想要的背景图像。所有必要的步骤均按照@杰克已经完成,并进行了测试。甚至执行了@Jake 描述的测试程序。但是,plymouth 主题就是没有出现。在 Grub2 和 GDM 登录阶段之间,每次系统启动时我仍然会遇到 6-7 秒的黑屏。
我该怎么做才能发现这个黑屏的问题?我该如何解决这个缺失启动画面的问题?系统使用 NVidea 驱动程序版本:418.56。
备注:系统能够启动并在 GDM 登录屏幕登录。
更新 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 中不存在。我创建了一个启动文件,并使用此终端命令设置 FRAMEBUFFER:
echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash
由于涉及到启动图像,我执行了配置设置(显示启动画面)在此Ubuntu 维基。
运行终端命令
sudo update-initramfs -u
:sudo 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 splash
ro nomodeset
ro quiet
ro quiet splash
ro quiet splash
$vt_handoff
ro splash $vt_handoff
它们的累计时间图表如下所示。请注意,当两个事件之间的曲线为水平时,表示左侧的事件没有发生。
主要发现:
- 使用
$vt_handoff
允许从 Grub Menu 阶段到 Plymouth Splash 阶段不间断地显示 Grub 背景图像。 ro splash $vt_handoff
使用和的性能ro quiet splash $vt_handoff
相似,只是前者比后者稍微快一点(在我的情况下快 1 秒)。ro
使用或可实现最短 20 秒的启动时间ro splash $vt_handoff
。当需要显示背景图像时,后者最为合适。
评论:
我的设置目前仍然受到 2 个现象的困扰。
- 在出现 GDM-Login 屏幕之前,出现黑屏,持续 8 到 10 秒,并且
- 在 Plymouth Splash 之后或之前提到的黑屏出现后,启动日志会持续 1 秒。即使
quiet
使用了该值,它也会显示出来。
我怀疑这两个问题与 Nvidia 驱动程序和 Grub 之间的通信有关,或者与在各个虚拟屏幕之间转换时的时间问题有关。了解这些现象的人能否建议我如何克服/调查它们?谢谢。
答案1
添加内核参数loglevel=3
解决了我的 bootlog 问题。您可能需要根据遇到的具体问题降低 loglevel 的值。遗憾的是,这对空白屏幕没有任何作用。