减少 Linux 启动期间的视频模式切换

zwo*_*wol 12 linux boot graphics-card grub

当我启动只有 Linux 的台式计算机时,视频模式和/或控制台字体会切换四次:

  • 当 GRUB 启动时,它会从 80x25 文本切换到图形模式,以便在菜单后面绘制漂亮的背景;
  • 在我从菜单中选择一些内容后,GRUB 会返回到 80x25 文本;
  • 当我的显卡的 KMS 驱动程序加载时,它会切换到分辨率更高的文本模式(我不知道这是不是硬件文本模式);
  • 最后 X 启动,它进入图形并保持这种状态。我认为这最后一个开关不会改变视频模式的分辨率,只会改变图形。

我想尽可能多地摆脱这些模式切换。理想情况下,当 GRUB 从 BIOS 接管时,它将直接进入 KMS 驱动程序选择的相同高分辨率文本模式,并且显示器将保持该模式直到 X 启动并显示图形。我的印象是,通过使用内核命令行和/或 GRUB 控制台模块加载参数可以做到这一点,但我不知道细节。

GRUB 1.98+20100706,使用 Nouveau 视频驱动程序的内核 2.6.32.15。发行版是 Debian 不稳定的。请不要回答任何涉及重新编译任何内容或拼凑前沿内核/驱动程序组合的答案,我不太关心这个,不会遇到那么多麻烦。

编辑:东武建议设置GRUB_GFXMODE为显示器的全像素分辨率,并GRUB_GFXPAYLOAD_LINUX=keep避免菜单消失后的模式切换。这确实是我想要的一部分,但总体上变得更糟。菜单后没有模式切换,但屏幕重绘仍然非常缓慢(我可能应该放弃 GRUB 的 gfxmode,它在 1920x1200 时太慢了)。更严重的是,当 nouveaufb 加载时,现在有一个模式切换,以及有趣的错误消息dmesg

[    5.923798] [drm] nouveau 0000:02:00.0: allocated 1920x1200 fb: 0x40250000, bo ffff8801ba5f4600
[    5.923802] fb: conflicting fb hw usage nouveaufb vs EFI VGA - removing generic driver
[    5.923821] [drm] nouveau 0000:02:00.0: PFIFO_INTR 0x00000010 - Ch 1
("PFIFO_INTR" message repeats 400+ times)
[    5.925609] Console: switching to colour dummy device 80x25
[    5.925802] Console: switching to colour frame buffer device 240x75
Run Code Online (Sandbox Code Playgroud)

Dae*_*yth 0

您可以在 GRUB 之后立即激活 KMS,这通常会在内核命令行中包含一个用于打开它的参数。对于英特尔来说,它是i910.modeset=1,但除此之外,您还必须检查您的发行版的相关文档。