未来,普利茅斯会允许使用专有图形驱动程序获得良好的启动体验吗?

新的图形化引导程序在10.04版中推出(Plymouth),看起来非常棒,但一旦我启用专有驱动程序来控制我的显卡,就会出现一个可怕的闪烁怪物引导体验。如果必须这样做,我可以应对,但我相信这会让新用户望而却步。
据我所知,Plymouth依赖于目前专有驱动程序中尚不可用的功能。我的问题是,这种情况是否可能改变,或者我只能习惯“二选一”(即良好的引导体验或良好的桌面体验,但不能同时拥有)?我们是否可以期望在未来看到Plymouth与专有图形驱动程序友好地合作,还是这完全取决于专有制造商的工作?
5个回答

你正在问一个只能由制造硬件和驱动程序的开发者和决策者真正回答的问题。
最终,这是可以实现的,但需要双方做出一些让步。例如,Nvidia声称他们可以做到,但需要对某些库的许可证进行一些放宽。 来自AaronP的链接(Nvidia员工):
引用: 我上次与负责此事的开发人员交谈时,他们告诉我实施内核模式设置所需的钩子仅导出给GPL模块,因此不能被Nvidia驱动程序使用。另一方面,那是一段时间以前的事情了,我之后就没有再关注过。如果内核开发人员愿意与我们合作,使Nvidia GPU的内核模式设置成为可能,我们将会研究这个问题。 再次提到此处
好吧,让我重新表达一下...根据几个月前我问Dave Airlie时的回答,它是专门设计成与非GPL驱动程序不兼容的。我自己还没有看过代码。
那是两年前的事了...所以,不,这个进展并不特别快。我担心更快的方法可能是让X加载得更快,并使用XSplash。
但是从Nvidia的角度来看,这个功能对他们的用户真正增加了什么?他们会从将400个人小时投入到Xorg开发中获得更多好处,还是从将400个小时投入到使启动序列更漂亮中获得更多好处呢?

1谢谢回复。我完全理解你关于优先考虑人力资源利用的观点。不过,这种情况确实令人遗憾。根据我的经验,除非一个新手对自由开源软件有意识形态上的依附,否则只需要一些小问题就足以让他们望而却步(尤其是当启动界面是他们可能首次看到的东西之一时)。并没有指责任何方向,只是一个谦逊的观察。 - jaminday
如果你不喜欢它的外观,你可以在启动参数中移除splash选项(按住左Shift键进入grub,按e键,删除该选项,按Control+X进行启动)。一个空白屏幕可能看起来更好。 - Oli

这个问题可以通过以下方法解决:

  1. 编辑 /etc/default/grub (按下 Alt-F2 并输入 gksudo gedit /etc/default/grub)
  2. 找到一行看起来像 #GRUB_GFXMODE=640×480 的代码
  3. 删除 '#' 并将分辨率更改为您的屏幕分辨率 (例如,GRUB_GFXMODE=1280x800)
  4. 保存并关闭该文件。
  5. 编辑 /etc/grub.d/00_header (按下 Alt-F2 并输入 gksudo gedit /etc/grub.d/00_header)
  6. 找到一行 gfxmode=${GRUB_GFXMODE}
  7. 在其下添加此行:set gfxpayload=keep
  8. 保存并关闭该文件。
  9. 运行“应用程序”->“附件”->“终端”
  10. 输入 sudo update-grub,如果需要,输入密码并等待完成。

重新启动计算机,现在应该看起来更好,尽管启动速度可能稍微降低。


1这对我来说实际上没有起作用 - 使用Nvidia驱动程序,虽然它增加了我启动时间135秒,但仍然是相同的低分辨率引导序列。 - Marco Ceppi
是的,我见过并尝试过类似的修复方法,但从来没有取得太大的成功 - 通常只会让我的启动体验变得更糟,或者拖慢系统速度,并且回滚起来很麻烦。我想我还是忍受这个华丽的启动界面吧,直到出现一个更优雅的解决方案为止。 - jaminday
虽然我不能说这对其他人无效,但如果你想试一试的话,我只是建议你记下你所做的任何更改,以便必要时可以恢复原样。 - jaminday

Nouveau正在加快与Gallium3D一起实现3D加速以及适当的电源管理。即使GPL-only-symbols问题没有得到解决,nVidia专有驱动程序也不会再独自提供“良好的桌面体验”太久了。

http://nouveau.freedesktop.org/wiki/FeatureMatrix

拥有这样功能的Nouveau意味着3D加速在LiveCD上可以正常工作,启动时间更快,安全性更好,无需驱动程序安装的Ubuntu安装等等。游戏性能可能需要更长时间才能达到。但对于Compiz而言,我会说根据你的nVidia显卡,你应该考虑11.04版本。


谢谢,其实我昨天也刚发现了这个。对我来说效果很好。 - jaminday

我在安装Nvidia驱动程序后遇到了同样的问题。这是一个已知的问题,有一个关于此问题的错误报告:Bug #540801
此错误报告的第2条评论描述了一个对我有效的解决方法:
问题出在图形驱动程序上;在您的系统上,它们加载所需的时间比检查和挂载文件系统所需的时间更长,因此没有理由启动闪屏画面,因为我们已经可以开始X。
在基于HDD的系统上,情况会更糟,因为我们在加载驱动程序之前执行了ureadahead阶段;因此,可能需要很长时间才能显示闪屏。
一个“解决方案”是使用initramfs,并将plymouth作为关键步骤启动:
echo FRAMEBUFFER=y > /etc/initramfs-tools/conf.d/splash update-initramfs -u
但这会导致引导过程中出现显著的延迟,只是为了让剩下的部分显示闪屏画面。
如果你在命令行中以root用户身份运行上述两个命令,并重新启动系统,你应该能够恢复到漂亮的Plymouth启动界面。然而,缺点是系统加载时间会稍微延长,但我认为这是一个小代价。我的系统仍然启动得相当快。
如果Plymouth分辨率过低,也有办法解决:更改启动分辨率(Plymouth)