当前位置: 首页>>技术教程>>正文


Ubuntu 是否支持采用 Optimus 技术的 NVIDIA GeForce?

, , ,

问题描述

我正在考虑购买戴尔 XPS 15 笔记本电脑。笔记本电脑有一个 Nvidia 420m 卡,应该可以在 Linux 上使用,但我一直在读到 Nvidia Optimus 技术在 Linux 上不受支持。我对从 Nvidia 切换到 Intel 以节省电量并不感兴趣,但我需要知道如果我安装了 Ubuntu,Nvidia 卡实际上可以工作。

如果任何人有使用带有 Optimus 技术的 Nvidia 卡的经验,或者甚至更好的确切笔记本电脑(带 1GB NVIDIA\xae GeForce\xae GT 420M 的戴尔 XPS 15),那就太好了。

阻碍人们采用 Linux 的一个主要问题是这种硬件问题。\n我是 Ubuntu 的长期用户和支持者,我不能在这样的购买中犯错误。\n我不想花 \ xa3500+ 发现我没有图形加速,因为 Windows 7 不是一个选项。

最佳方案

即使 Supported Products tab on the driver download page 表示支持 GT420M,也不支持 Optimus 变体。从附加信息选项卡:

\\n

Some designs incorporating supported GPUs may not be compatible with the Nvidia Linux driver: in particular, notebook and all-in-one desktop designs with switchable (hybrid) or Optimus graphics will not work if means to disable the integrated graphics in hardware are not available.

\\n

这种 Optimus 设计意味着独立的 Nvidia 卡被连接到集成的英特尔 GPU 中,并且它根本没有连接到显示器。一些混合图形笔记本电脑仍然允许您在 BIOS 中选择 Nvidia 卡,但大多数现代 Optimus 笔记本电脑没有此选项。

根据经验,我有一个 GT425M 和一个 i5-460M 处理器。如果没有用于切换/禁用卡的 BIOS 或硬件设置,那么您就是在浪费钱。 XPS 15 系列似乎没有任何这些功能。虽然您可以使用 Intel 显卡,但您可能还想使用 Nvidia 显卡,因为您已经为它付费,但目前无法直接使用。

你最好找另一台没有 Optimus 的笔记本电脑。 Optimus 很垃圾,Nvidia 拒绝为 Linux 提供更好的支持。如果您喜欢冒险并购买这样的笔记本,请访问 Linux Hybrid Graphics blog 并订阅其 Launchpad mailing list。访问他们的 wiki 了解各种方法来让这样的卡(希望如此)工作。一种方法称为 Bumblebee,它允许您在 nvidia 卡上呈现程序。我目前推荐它而不是其他解决方案(披露:我是它的开发人员)。

Ubuntu 12.10 Quantal 将附带第一批真正支持混合图形笔记本电脑的版本,称为 PRIME。这是高度实验性和开发中的,可能对许多人来说不够稳定。只有开源图形驱动程序支持这一点,尽管 Nvidia may release support in the future too if it is not too much work for themThis page 跟踪对 Quantal these are the blueprints for Raring 的混合图形支持。

如果您从 nvidia.com 安装了驱动程序

您直接从 nvidia.com 安装驱动程序是一个巨大的错误。如果您想要更新的驱动程序,请添加 ubuntu-x-swat/x-updates PPA,因为它们将以这样的方式安装 nvidia 驱动程序,您的 Optimus 系统不会死机。

从 nvidia.com 安装 nvidia 驱动程序后,您可能会遇到所有图形效果丢失、黑屏或图形性能非常慢的情况。卸载说明:

  1. 在启动并选择恢复选项之前按住 Shift 以启动进入恢复模式

  2. 在以下菜单中,为 netroot 选择。

  3. 卸载英伟达:

    \n

    nvidia-uninstall\n
  4. 删除 nvidia 生成的配置文件(如果有):

    \n

    rm /etc/X11/xorg.conf\n
  5. 为 GL 重新安装 Mesa 包:

    \n

    apt-get --reinstall install libgl1-mesa-glx\n
  6. 完成后,重新启动:

    \n

    reboot\n

大黄蜂的安装说明

如果之前安装过Bumblebee或Ironhide,一定要查看http://wiki.bumblebee-project.org/Upgrading-on-Ubuntu上的说明

从 Bumblebee 版本 3.0 “Tumbleweed” 开始,它可以安全地禁用 Nvidia 卡以节省电量 (press release)。您还可以使用独立卡运行程序以获得更好的性能。安装说明:

  1. Enable the Universe and multiverse repository 用于 Nvidia 驱动程序。\n1.(13.10 Saucy 可选)添加包含最新驱动程序的 PPA,因为存储库中的驱动程序可能已过时:

    \n

    sudo add-apt-repository ppa:ubuntu-x-swat/x-updates\n
  2. (对于 13.04 Raring 及更早版本,Saucy 及更高版本不需要)添加稳定的 Bumblebee 版本 PPA:

    \n

    sudo add-apt-repository ppa:bumblebee/stable\nsudo apt-get update\n
  3. 使用专有的 Nvidia 驱动程序安装 Bumblebee:

    \n

    sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic\n
  4. 重新启动或 re-login 以应用组更改

如果您想现在在 nvidia 卡上运行程序,请使用 optirun 程序:

optirun firefox &

如果您只对节能感兴趣,请将步骤 4 中的最后一个命令替换为:

sudo apt-get install --no-install-recommends bumblebee linux-headers-generic

稍后,您仍然可以通过安装 bumblebee-nvidia 来使用 NVIDIA。如果您想使用 32 位程序,您仍然可以使用 sudo apt-get install virtualgl-libs-ia32 安装所需的库。必须添加linux-headers-generic,否则无法搭建省电模块bbswitch

除了 virtualgl,您还可以尝试 primus 以获得更好的性能。包名称为 primus,您可以使用:

primusrun glxgears
# alternative that is nearly the same:
optirun -b primus glxgears

(注意:在询问 60 fps 限制之前,请阅读 its FAQ 。)

另见 https://wiki.ubuntu.com/Bumblebee

笔记:

  • 手动使用 acpi_call 已弃用。默认情况下,它不会在挂起后继续存在。

  • 不要使用 ppa:mj-casalogic/bumblebee 或 MrMEEE/bumblebee-Old-and-abandoned git,它不再维护并且包含很多错误。

  • Martin Juhl 将原始的 Bumblebee 分叉到 Ironhide,但在我看来不应该使用它,因为原始 Bumblebee 的设计缺陷仍然存在并且 “power management” 功能不稳定(使用了错误的方法,_ON 和 _OFF)。安装仍然一团糟,删除后您的安装可能会损坏。

如果您不想使用 nvidia 卡或 Bumblebee

如果您不小心安装了 nvidia 驱动程序(即使用 jockey),您有两种选择:

  • 卸载驱动程序(包 nvidia-current )

  • 按照 this bugreport 中的描述设置默认的 OpenGL 库

次佳方案

从 Ubuntu 12.10 开始更新:

支持混合图形所需的所有图形堆栈都已进入 12.10; Quantal Quetzal 拥有支持混合图形的基础设施——既可以在外部显示器只能由独立芯片驱动时扩展显示,也可以在独立芯片上运行应用程序并在集成 GPU 上显示它们。

但是,有两个警告,一个大,一个小。

一个小警告是没有 GUI 支持——没有明显的方法可以在独立的 GPU 上运行应用程序。您可以通过在启动应用程序之前设置 DRI_PRIME=1 环境变量来执行此操作。

主要警告是这仅适用于免费驱动程序 – nouveauradeonintel。 Nvidia 现在表示有兴趣在 linux 上支持混合图形,但是他们需要使用的 dma-buf 内核符号被标记为 GPL,他们不会使用。

此外,混合支持仅进行了少量测试,还有一些部分有待实施,例如跨 GPU 同步以防止撕裂。

Ubuntu 12.04 LTS 的状态:

nVidia 的官方立场是他们没有在 Linux 上支持 Optimus 的计划——我们的图形堆栈是在假设只有一张卡驱动给定显示器的情况下设计的,这并不容易解决。

Dave Airlie 已经在 X 服务器和内核中做了很多工作来解决这个问题,并且很可能会重新基于 drm-buf 工作,而 drm-buf 工作主要来自 ARM 世界,通过 Linaro。一旦这一切都启动并运行——这似乎需要 6 个月到一年的时间——就可以正确地进行混合图形。到那时,nVidia 可能会重新考虑在 Linux 上支持 Optimus,因为实施\xb9 不再是一个巨大的技术混乱。

在现在支持混合图形方面,Bumblebee 项目按照这些思路做了一些事情。它本质上是在 nVidia 卡上运行第二个 X 服务器,并在渲染输出中进行复制。这并不像听起来那么糟糕——这基本上也是 nVidia 卡在 Windows 7 下所做的,只是有一点硬件支持。

Ubuntu X 团队不打算支持 Bumblebee 或 Ironhide(Bumblebee 的一个分支)。

如果您的系统有一个 BIOS 选项可以在 Intel 和 nVidia 卡之间切换,那么您可以在它们之间进行选择。

如果您的系统有硬件多路复用器——因此 nVidia 和 Intel GPU 都连接到输出端——并且 vga_swicheroo 工作,您可以使用该接口在它们之间切换,但前提是您使用的是开源驱动程序。对于 12.04,我们计划确保在这种情况下关闭未使用的 GPU,这应该会延长电池寿命。

如果您的系统没有 BIOS 选项并且没有 vga_switcheroo 知道如何驱动的硬件多路复用器,那么您的 nVidia 卡将无法在 12.04 上使用。

\xb9:AMD 的 fglrx 驱动程序对混合图形有一些支持。它似乎通过伪装成 X 服务器并加载 Intel 驱动程序本身来做到这一点。这不是一个干净的解决方案\u263a。

第三种方案

您的笔记本电脑已启用 nvidia – optimus。它采用双显卡配置以节省电量。目前 nvidia 在 linux 中不提供对这项技术的任何支持。所以在 linux 中,两个显卡都在这导致高电池消耗和过热。有关详细信息,请阅读下面列出的链接。

在 Optimus Tech 中,英特尔图形始终处于打开状态。当您使用 GT540M 时,GT540M 生成的图像实际上是通过 intel 显卡传输的。

Linux 中可用的选项

关闭 nvidia GT540M 并仅使用 intel。仅在需要时使用带有特殊命令的 Nvidia 卡。 Also never install nvidia-drivers alone.

安装 Bumblebee 关闭独立 GPU 并仅在需要时启用的说明

  1. 在终端中输入以下内容,

    \n

    sudo add-apt-repository ppa:bumblebee/stable\n

    \n

    然后

    \n

    sudo apt-get update\n
  2. 要使用专有的 nvidia 驱动程序安装 Bumblebee:

    \n

    sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic\n
  3. 重启。


如果你只是想禁用nvidia卡,不需要学习以下内容

使用说明:

要使用 nvidia 卡运行程序,请在终端中使用 optirun 命令前缀。\n比如使用 nvidia 卡类型运行 glxspheres。但是也存在 gui 方法。

optirun glxspheres

要运行火狐类型:

optirun firefox &

注意:如果您打算运行 32 位程序(如 Wine)并使用 Ubuntu 11.10 Oneiric 或更高版本,请安装 32 位库:

sudo apt-get install virtualgl-libs:i386 libgl1-mesa-glx:i386 libc6:i386

相关问题:

Can’t use nvidia card/driver on optimus notebook

第四种方案

NVIDIA Optimus 在目前的 unix 平台上不受任何支持。

这专门针对在其规格列表中​​注明 OPTIMUS 的任何基于 NVIDIA 的笔记本电脑(移动)系统。您甚至无法在您的 Ubuntu 中使用 NVIDIA 显卡。您将需要使用集成的 Intel 显卡驱动程序(在您的平台支持它们的范围内——Sandy Bridge 支持仍然很薄弱)。

应该注意的是,Optimus 不同于旧的在集成(通常是 Intel)和独立(NVIDIA、ATI)图形系统之间切换的能力。使用 Optimus,集成显卡路径始终处于使用状态,并允许您(另外)在需要时启用独立显卡——目前这需要 Windows 7(afaik,也不适用于 Vista)。

这里有一些参考资料可以帮助您加快速度。

  1. Ubuntu 论坛:nVidia Optimus and Ubuntu explained

  2. phoronix:Will NVIDIA Optimus Inevitably Come To Linux ?\nMichael Larabel 于 2011 年 4 月 25 日发布

提示:我使用带有 525M Optimus 独立显卡的 XPS 15 L502x。


更新:这是 Additional Information 选项卡中 NVIDIA Drivers 270.06 页面的引用。

\\n

Some designs incorporating supported GPUs may not be compatible with the NVIDIA Linux driver: in particular, notebook and all-in-one desktop designs with switchable (hybrid) or Optimus graphics will not work if means to disable the integrated graphics in hardware are not available.

\\n

如果您想从 Linux 驱动 NVIDIA,现在您知道在基于 NVIDIA 的新笔记本电脑规格中寻找什么了。


更新:查看 Bumblebee-Project。\n从那里的 README 开始。

第五种方案

目前有 Bumblebee 支持 nVidia Optimus。

我有一台 Dell Latitude E6520,配备 Intel Core i5(带有 内置 Intel 显卡)和 nVidia 420M 显卡。您可以使用 optirun 运行程序(在终端中键入 optirun programname 以启动 programname ),然后它将能够使用 nVidia 图形。

我还没有用 CUDA 程序试过。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13227.html,未经允许,请勿转载。