我正在考虑购买一台戴尔 XPS 15 笔记本电脑。这台笔记本电脑配有一块 Nvidia 420m 显卡,应该可以与 Linux 配合使用,但我一直读到 Nvidia Optimus 技术在 Linux 上不受支持。我并不真的想从 Nvidia 切换到 Intel 以节省电量,但需要知道如果我安装了 Ubuntu,Nvidia 显卡实际上可以工作。
如果有人有使用带有 Optimus 技术的 Nvidia 显卡的经验,或者更好的是,有这种配置的笔记本电脑(带有 1GB NVIDIA® GeForce® GT 420M 的 Dell XPS 15)的话,那就太好了。
阻碍人们采用 Linux 的一个主要问题就是这种硬件问题。我是 Ubuntu 的长期用户和支持者,我不能承受这样的购买失误。我不想花 500 多英镑却发现没有图形加速,因为 Windows 7 不是一个选择。
答案1
即使驱动程序下载页面上的“支持的产品”选项卡说支持 GT420M,Optimus 变体是不是支持。从“附加信息”选项卡中:
某些采用受支持的 GPU 的设计可能与 Nvidia Linux 驱动程序不兼容:特别是,如果无法禁用硬件中的集成显卡,则带有可切换(混合)或 Optimus 显卡的笔记本电脑和一体机台式机设计将无法工作。
这种 Optimus 设计意味着独立 Nvidia 显卡连接到集成 Intel GPU,并且根本不连接到显示器。一些混合显卡笔记本电脑仍允许您在 BIOS 中选择 Nvidia 显卡,但大多数现代 Optimus 笔记本电脑没有此选项。
我是根据自己的经验说的,我有一台 GT425M 和一台 i5-460M 处理器。如果没有 BIOS 或硬件设置来切换/禁用显卡,那你就是在浪费钱。XPS 15 系列似乎没有这些功能。虽然您可以使用英特尔显卡,但您可能也想使用 Nvidia 显卡,因为您已经为此付费了,但目前还无法直接使用。
你最好找一台没有 Optimus 的笔记本电脑。Optimus 很烂,而且 Nvidia 拒绝为 Linux 提供更好的支持。如果你喜欢冒险,想买一台这样的笔记本电脑,请访问Linux 混合图形博客并订阅其Launchpad 邮件列表. 参观他们的维基百科了解使这种卡(希望)工作的各种方法。一种方法称为熊蜂它允许您在 nvidia 卡上渲染程序。我目前推荐它而不是其他解决方案(披露:我是它的开发人员)。
Ubuntu 12.10 Quantal 将首次推出真正支持混合显卡笔记本电脑的版本,称为 PRIME。该版本处于高度实验性阶段,尚在开发中,对许多人来说可能还不够稳定。不过,只有开源显卡驱动程序支持此功能如果工作量不大的话,Nvidia 未来也可能会发布支持。这一页跟踪对 Quantal 的混合图形支持,这是 Raring 的蓝图。
如果你已经从 nvidia.com 安装了驱动程序
你安装驱动程序犯了一个大错误直接地来自 nvidia.com。如果您想要更新的驱动程序,请添加ubuntu-x-swat/x-updates
PPA,因为它们将以某种方式安装 nvidia 驱动程序,以使您的 Optimus 系统不会死机。
从 nvidia.com 安装 nvidia 驱动程序后,您可能会遇到所有图形效果丢失、黑屏或图形性能非常缓慢的情况。卸载说明:
- Shift在启动前按住 并选择恢复选项,进入恢复模式
- 在下面的菜单中,选择
netroot
。 卸载 nvidia:
nvidia-uninstall
如果有的话,删除 nvidia 生成的配置文件:
rm /etc/X11/xorg.conf
重新安装 GL 的 Mesa 包:
apt-get --reinstall install libgl1-mesa-glx
完成后,重新启动:
reboot
大黄蜂安装说明
如果你之前安装过 Bumblebee 或 Ironhide,请务必查看http://wiki.bumblebee-project.org/Upgrading-on-Ubuntu
自 Bumblebee 3.0“Tumbleweed”版本以来,它可以安全地禁用 Nvidia 卡节省电力(新闻稿)。您还可以使用独立卡运行程序以获得更好的性能。安装说明:
启用 Universe 和 Multiverse 存储库对于 Nvidia 驱动程序。1.(对于 13.10 Saucy 可选)添加包含最新驱动程序的 PPA,因为存储库中的驱动程序可能已过时:
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
(适用于 13.04 Raring 及更早版本,Saucy 及更高版本不需要)添加稳定的 Bumblebee 版本 PPA:
sudo add-apt-repository ppa:bumblebee/stable sudo apt-get update
使用专有 Nvidia 驱动程序安装 Bumblebee:
sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic
- 重新启动或重新登录以应用组更改
如果您现在想在 nvidia 卡上运行程序,请使用该optirun
程序:
optirun firefox &
如果您只对节省电量感兴趣,请将步骤 4 中的最后一条命令替换为:
sudo apt-get install --no-install-recommends bumblebee linux-headers-generic
稍后,您仍可以通过安装来使用 NVIDIA bumblebee-nvidia
。如果您想使用 32 位程序,您仍可以使用 安装所需的库sudo apt-get install virtualgl-libs-ia32
。您有bbswitch
添加linux-headers-generic,否则无法构建省电模块。
除了 virtualgl,您还可以尝试primus
实现更好的性能。包名称为primus
,您可以使用:
primusrun glxgears
# alternative that is nearly the same:
optirun -b primus glxgears
(注意:在询问 60 fps 限制之前,请阅读常见问题解答。
也可以看看https://wiki.ubuntu.com/Bumblebee
笔记:
- 手动使用
acpi_call
已被弃用。默认情况下,它不会在暂停后继续存在。 - 不要使用
ppa:mj-casalogic/bumblebee
MrMEEE/bumblebee-Old-and-abandoned git,它不再维护并且包含很多错误。 - Martin Juhl 将原始 Bumblebee 拆分为 Ironhide,但我认为不应该使用它,因为原始 Bumblebee 的设计缺陷仍然存在,并且“电源管理”功能不稳定(使用了错误的方法 _ON 和 _OFF)。安装仍然很乱,删除后您的安装可能会中断。
如果你不想使用 nvidia 卡或 Bumblebee
如果您意外安装了 nvidia 驱动程序(即使用 jockey),您有两种选择:
- 卸载驱动程序(包
nvidia-current
) - 按照以下说明设置默认的 OpenGL 库此错误报告
答案2
自 Ubuntu 12.10 起更新:
支持混合图形所需的所有图形堆栈部分都进入了 12.10;Quantal Quetzal 具有支持混合图形的基础设施 - 当外部显示器只能由独立芯片驱动时,既可以扩展显示,也可以在独立芯片上运行应用程序并将其显示在集成 GPU 上。
不过,有两个警告,一个大,一个小。
一个小问题是没有 GUI 支持——没有明显的方法可以在独立 GPU 上运行应用程序。您可以通过DRI_PRIME=1
在启动应用程序之前设置环境变量来做到这一点。
主要需要注意的是,这仅适用于免费驱动程序 - nouveau
、radeon
和intel
。Nvidia 现已表示有兴趣在 Linux 上支持混合图形,但dma-buf
他们需要使用的内核符号标记为 GPL,他们不会使用。
此外,混合支持仅经过了轻度测试,仍有一些部分有待实现,例如跨 GPU 同步以防止撕裂。
Ubuntu 12.04 LTS 的状态:
nVidia 的官方立场是,他们没有计划在 Linux 上支持 Optimus——我们的图形堆栈在设计时假设只有一张卡驱动给定的显示器,而且这并不容易解决。
戴夫·艾尔利在 X 服务器和内核中已经做了很多工作来解决这个问题,并且很可能将基于drm-buf
ARM 世界通过 Linaro 所做的工作。一旦这一切启动并运行——似乎还需要 6 个月到一年的时间——就有可能正确地实现混合图形。到那时,nVidia可能重新考虑在 Linux 上支持 Optimus,因为它不再是一个巨大的技术混乱¹。
在支持混合显卡方面现在, 这熊蜂project 做了类似的事情。它本质上在 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 上使用。
¹:AMD 的fglrx
驱动程序对混合显卡有一定的支持。它似乎通过伪装成 X 服务器并加载 Intel 驱动程序本身来实现这一点。这不是一个干净的解决方案 ☺。
答案3
您的笔记本电脑nvidia——Optimus启用。这是一种双显卡配置,可以节省电量。目前 nvidia 在 linux 中不提供对这项技术的任何支持。因此在 linux 中两个显卡都打开,这导致电池消耗大和过热。如需更多详细信息,请阅读下面列出的链接。
在 optimus 技术下,英特尔显卡始终处于开启状态。当您使用 GT540M 时,GT540M 生成的图像实际上是通过英特尔显卡传输的。
Linux 中可用的选项
关闭 nvidia GT540M 并仅使用英特尔。仅在需要时使用带有特殊命令的 Nvidia 卡。Also never install nvidia-drivers alone.
安装说明熊蜂关闭独立 GPU 并仅在需要时启用
在终端中输入以下内容,
sudo add-apt-repository ppa:bumblebee/stable
然后
sudo apt-get update
要使用专有 nvidia 驱动程序安装 Bumblebee:
sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic
重启。
如果你只是想禁用 nvidia 卡,无需学习以下内容
使用说明:
要使用 nvidia 卡运行程序,请使用optirun
终端中的前缀命令。就像使用 nvidia 卡类型运行一样glxspheres
。但是也存在 gui 方法。
optirun glxspheres
要运行 Firefox,请输入:
optirun firefox &
笔记:如果您打算运行 Wine 等 32 位程序并使用 Ubuntu 11.10 Oneiric 或更高版本,请使用以下命令安装 32 位库:
sudo apt-get install virtualgl-libs:i386 libgl1-mesa-glx:i386 libc6:i386
相关问题:
答案4
目前熊蜂支持 nVidia Optimus。
我有一台戴尔 Latitude E6520,配备 Intel Core i5(内置 Intel 显卡)和 nVidia 420M 显卡。您可以使用optirun
(optirun programname
在终端中输入以启动programname
)运行程序,然后它就可以使用 nVidia 显卡。
我还没有尝试过使用 CUDA 程序。