在 Ubuntu 上安装和配置 Nvidia Optimus 驱动
Nvidia Optimus 是一款利用 双显卡切换 技术的混合 GPU 系统,但长期以来受限于 Linux 系统上的诸多不便与限制。在数年的等待之后,搭载这全新内核的 Ubuntu 14.04 最终实现了非常容易安装的专用驱动的兼容性。这篇文章首先为不熟悉 Nvidia Optimus 的读者简介相关背景,然后展示整个安装过程。对于对 Xorg 有着丰富配置经验的老手,可以直接跳到安装部分。
背景知识
对那些不熟悉 Nvidia Optimus 的读者,在板载 Intel 图形芯片组和使用被称为“GPU 切换”、对需求有着更强大处理能力的 NVIDA 显卡这两者之间的进行切换是很有必要的。
这么做的主要目的是延长笔记本电池的使用寿命,以便在不需要 Nvidia GPU 的时候将其关闭。带来的好处是显而易见的,比如说你只是想简单地打打字,笔记本电池可以撑 8 个小时;如果看高清视频,可能就只能撑 3 个小时了。使用 Windows 时经常如此。
几年前,我买了一台上网本(Asus VX6),犯的最蠢的一个错误就是没有检查 Linux 驱动兼容性。因为在以前,特别是对于一台上网本大小的设备,这根本不会是问题。即便某些驱动不是现成可用的,我也可以找到其它的办法让它正常工作,比如安装专门模块或者使用反向移植。对我来说这是第一次——我的电脑预先配备了 Nvidia ION2 图形显卡。
在那时候,Nvidia 的 Optimus 混合 GPU 硬件还是相当新的产品,而我也没有预见到在这台机器上运行 Linux 会遇到什么限制。如果你读到了这里,恰好对 Linux 系统有经验,而且也在几年前买过一台笔记本,你可能对这种痛苦感同身受。
[Bumblebee][4]项目直到最近因为得到 Linux 系统对混合图形方面的支持才变得好起来。事实上,如果配置正确的话,通过命令行接口(如“optirun vlc”)让你选定的应用程序能利用 Nvidia 显卡功能是可行的,但让 HDMI 一类的功能运转起来就很不同了。(译者注:Bumblebee 项目是把 Nvidia 的 Optimus 技术移到 Linux 上来。)
我之所以使用“如果配置正确的话”这个短语,是因为实际上为了让它发挥出性能来往往不只是通过几次尝试去改变 Xorg 的配置就能做到的。如果你以前没有使用过 ppa-purge 或者运行过“dpkg-reconfigure -phigh xserver-xorg”这类命令,那么我可以向你保证修补 Bumblebee 的过程会让你受益匪浅。
在等待了很长一段时间后,Nvidia 才发布了支持 Optimus 的 Linux 驱动,但我们仍然没有得到对双显卡切换的真正支持。然而,现在有了 Ubuntu 14.04、nvidia-prime 和 nvidia-331 驱动,任何人都可以在 Intel 芯片和 Nvidia 显卡之间轻松切换。不过不幸的是,为了使切换生效,还是会受限于需要重启 X11 视窗系统(通过注销登录实现)。
为了减轻这种不便,有一个小型程序用于快速切换,稍后我会给出。这个驱动程序的安装就此成为一件轻而易举的事了,HDMI 也可以正常工作,这足以让我心满意足了。
安装 Nvidia Optimus 驱动
为了更快地描述这个过程,我假设你已经安装好 Ubuntu 14.04 或者 Mint 17。
作为一名系统管理员,最近我发现 90%的 Linux 操作通过命令行执行起来更快,但这次我推荐使用“Additional Drivers”这个应用程序,你可能使用它安装过网卡或声卡驱动。
注意:下面的所有命令都是在~#提示符下执行的,需要 root 权限执行。在运行命令前,要么使用“sudo su”(切换到 root 权限),要么在每条命令的开头使用 sudo 运行。
你也可以在命令行输入如下命令进行安装:
~# apt-get install nvidia-331 nvidia-settings nvidia-prime
接下来是重启。确保你没有安装类似于 Bumblebee 或其他已加载的 Nvidia 驱动,否则很可能会破坏你的 X11。万一你没有进行全新安装,之前有安装过 Bumblebee 程序,那么在安装 nvidia-331 和 nvidia-prime 前运行下列命令:
~# apt-get purge libvdpau-va-gl1 bumblebee* nvidia*
在 Nvidia 和非 Nvidia 显卡之间切换
你可以通过按下 Alt+F2 或者从命令行键入下列命令实现 Nvidia 和非 Nvidia(如 Intel)显卡之间的切换:
~$ nvidia-settings
注意:~$表示不以 root 用户身份执行。
你也可以使用命令行设置默认使用哪一块显卡:
~# prime-select intel (或 nvidia)
使用这个命令进行切换:
~# prime-switch intel (或 nvidia)
两个命令的生效都需要重启 X11,可以通过注销和重新登录实现。当然重启电脑也行。
对 Ubuntu 用户键入命令:
~# service lightdm restart
对 Mint 用户键入命令:
~# service mdm restart
键入这个命令确认哪一块显卡在运行:
~# prime-select query
最后,你可以通过添加 ppa:nilarimogard/webupd8 来安装叫做 prime-indicator 的程序包,实现通过工具栏快速切换来重启 Xserver 会话。要安装它,只需要运行:
~# add-apt-repository ppa:nilarimogard/webupd8 ~# apt-get update ~# apt-get install mesa-utils prime-indicator
总结
总而言之,这个方法仍不完美,但至少它能简单易用地提供合适的专门驱动支持。很多人不会使用这个安装方法来设置 Bumblebee,因为他们发现使用 Nvidia 驱动会很快耗完电池。对我个人的使用来说,这是一个更好的方法,因为我使用 Nvidia 只为了满足 HDMI 输出,这表示我必须把电脑插上电源才行。不然的话,Intel 的显卡对我的笔记本来说够用了,因为除了频繁地使用 Libreoffice、Chromium 和 Terminator 这几个软件我别无所求。
如果你宁愿选择在默认情况下使用 Intel 显卡,为运行特定的应用程序使用 Nvidia 显卡,你应该去阅读那些 Bumblebee 教程。一旦你得以让 Bumblebee 正常工作起来,我建议你记录下用来配置电脑的命令和过程。因为没有什么比 9 个月之后再来一次全新安装但忘记了上次是如何成功安装更糟糕的事情了。
也可以花时间查看一下这个我偶然发现的 脚本 ,用来方便地在 Bumblebee 和 Nvidia-Prime 之间进行切换,但我必须强调并没有亲自对此进行实验。
最后,我感到非常惭愧,写了这么多才得以为 Linux 上的显卡提供了专门支持,但仍然不能实现双显卡切换,因为混合图形技术似乎是便携式设备的未来。一般情况下,AMD 会发布 Linux 平台上的驱动支持,但我认为 Optimus 是目前为止我遇到过的最糟糕的硬件支持问题。
不管这篇教程对你的使用是否完美,但这确实是利用这块 Nvidia 显卡最容易的方法。你可以试着在 Intel 显卡上只运行最新的 Unity,然后考虑 2 到 3 个小时的电池寿命是否值得权衡。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论