Nvidia GTX 960M 与 Bumblebee 在 debian 测试中

Nvidia GTX 960M 与 Bumblebee 在 debian 测试中

我有配备 NVIDIA GTX 960M(Optimus 技术)的华硕 N552VW-FY136T。无需安装 bamblebee 或任何其他特定驱动程序,我就可以登录(我使用的是 cinnamon)并正常使用计算机(我必须将 nouveau 模块列入黑名单,因为它有时会减慢启动过程),我想是因为它正在进行软件渲染。事实上,如果我输入命令:

glxinfo | grep OpenGL

我得到:

OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2) 
OpenGL core profile version string: 4.3 (Core Profile) Mesa 12.0.4
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 12.0.4
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 12.0.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:

我尝试使用免费的 nouveau 驱动程序安装 Bamblebee:

sudo apt-get install bumblebee primus

然后我重新启动,但它不起作用,笔记本电脑无法启动。所以我开始进入恢复模式,删除了 nouveau 和 bumblebee,将 nouveau 模块列入黑名单并安装了 bumblebee-nvidia:

sudo apt-get install bumblebee-nvidia primus

计算机启动没有问题,但是登录后,风扇开始以最大速度运转,如果我打开外壳并再次键入:

glxinfo | grep OpenGL

电脑死机了,我必须手动关闭电脑!

我不知道还能尝试什么,有什么想法吗?有人有同样的问题吗?

答案1

我一直很幸运地在我的机器上运行 Nvidia 专有驱动程序。

Nvidia驱动安装:

可以从这里下载最新的驱动程序(http://www.nvidia.com/Download/index.aspx),但通常除非您有特定原因需要使用最新的驱动程序,否则使用您的发行版中包含的驱动程序总是更容易(sudo apt-get install nvidia-driver例如在 debian 中)。

(然而,在撰写本文时,最新的驱动程序版本 (375) 对“Prime Sync”功能进行了一些重大修复 - 消除屏幕撕裂和正确处理外部屏幕 - 这使得最新的驱动程序更加强大在您的情况下很有价值。)

请注意,如果您选择从 Nvidia 网站进行二进制安装,您将拥有最新 CUDA 支持等功能,但每次更新内核时都需要重新安装驱动程序。因此,如果您选择这种方式,请将 Nvidia 驱动程序的安装程序脚本保存在易于查找的位置。

确保 nouveau 没有运行

如果 Nouveau 运行,它将占据您的显卡的所有权,并且 nvidia 驱动程序将无法运行。由于nouveau模块是Linux默认自带的,所以你无法卸载它,但你可以将其列入黑名单。第一步是将行添加blacklist nouveau到文件中/etc/modprobe.d/blacklist.conf。第二步是运行sudo update-initramfs -u(在 debian/ubuntu 中)。此步骤将黑名单配置更改传播到 grub 引导序列或其他内容中。

请注意,bumblebee、bbswitch 和 primus 仅适用于 nouveau,应将其卸载。有关更多详细信息,请参阅帖子末尾的编辑。

配置 Nvidia 驱动程序以在 Prime Sync 模式下工作

Nvidia Optimus 笔记本电脑有两个显卡:连接到屏幕的英特尔集成显卡和不连接到屏幕的 Nvidia 独立显卡(尽管通常连接到外部输出)。因此,您需要配置 Nvidia 卡来生成图形,但将它们传递给 Intel 卡以显示在屏幕上。

尝试将您更改/etc/X11/xorg.conf为以下内容(替换为显卡的 PCI BusID,通常为"PCI:1:0.0",带引号):

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "<BusID for NVIDIA device here>"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

然后,在 X 服务器启动后,您需要运行两个命令,然后才能实际使用 X 服务器(因此将它们放在自动运行的文件中):

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

我使用 手动从命令行启动我的 x 服务器startx,因此我将这些命令放在我的~/.xinitrc配置文件中。如果您启动到图形环境,您可能可以将它们放入/etc/X11/xinit/xinitrc.我自己从来没有尝试过。

信息来自 Nvidia 在线文档(http://us.download.nvidia.com/XFree86/Linux-x86/375.20/README/randr14.html


额外信息

我在这里描述的步骤使用 Nvidia 的专有驱动程序,使用所谓的“Prime Sync”功能。它在 GPU 上渲染所有图形,但将它们通过缓冲区推送到英特尔集成 GPU 进行实际显示。这个 Prime Sync 系统根本不是大黄蜂的补充。请注意,Debian 说明可能仍然是正确的,因为它们没有设置 Nvidia Prime 同步功能。我对他们建议的方式不太熟悉。我通常来自“最新的专有驱动程序是最好的”,因为我通常希望在相当新的 GPU 硬件上运行最新的 CUDA。我向您建议此策略是因为您在开源驱动程序设置方面遇到了问题。

另外值得一提的是 bbswitch 程序,它不关心显示器或驱动程序,它只是打开和关闭 Nvidia GPU。它根本不应该与 Nvidia 的 Prime Sync 功能一起使用,因为使用 Prime Sync,关闭 GPU 意味着您没有更多的图形:(

相关内容