已安装 Nvidia 驱动程序,但未使用

已安装 Nvidia 驱动程序,但未使用

我有一台华硕 UL30JT。它采用了 Nvidia Optimus 技术,但我对此并不感兴趣。目前我很少在连接电源的情况下使用这台笔记本电脑。我希望能够播放高分辨率视频、玩游戏和进行一些 OpenCL 编码。

在 BIOS 中我将其切换为仅 NVIDIA(非 Windows 7)。以前,使用 nvidia 驱动程序,这可以正常工作。

升级后一切都崩溃了。我已将 nomodeset 和 blacklist.nouveau=1 添加为内核选项。nvidia 驱动程序安装没有错误。但是找不到/使用它们。

jockey-text -l
kmod:nvidia_310_updates - nvidia_310_updates (Proprietary, Enabled, Not in use)
kmod:nvidia_304_updates - NVIDIA binary Xorg driver, kernel module and VDPAU library (Proprietary, Disabled, Not in use)
kmod:nvidia_313_updates - NVIDIA binary Xorg driver, kernel module and VDPAU library (Proprietary, Disabled, Not in use)
kmod:nvidia_310 - NVIDIA binary Xorg driver, kernel module and VDPAU library (Proprietary, Disabled, Not in use)
kmod:nvidia_304 - NVIDIA binary Xorg driver, kernel module and VDPAU library (Proprietary, Disabled, Not in use)

尝试手动加载模块也会失败。

sudo modprobe nvidia
FATAL: Module nvidia not found.

Xorg.0.log 显示以下内容:

[    12.028] Loading extension GLX
[    12.028] (II) LoadModule: "nvidia"
[    12.037] (WW) Warning, couldn't open module nvidia
[    12.037] (II) UnloadModule: "nvidia"
[    12.037] (II) Unloading nvidia
[    12.037] (EE) Failed to load module "nvidia" (module does not exist, 0)
[    12.037] (==) Matched nvidia as autoconfigured driver 0
[    12.037] (==) Matched nouveau as autoconfigured driver 1
[    12.037] (==) Matched vesa as autoconfigured driver 2
[    12.037] (==) Matched modesetting as autoconfigured driver 3
[    12.038] (==) Matched fbdev as autoconfigured driver 4
[    12.038] (==) Assigned the driver to the xf86ConfigLayout
[    12.038] (II) LoadModule: "nvidia"
[    12.038] (WW) Warning, couldn't open module nvidia
[    12.038] (II) UnloadModule: "nvidia"
[    12.038] (II) Unloading nvidia
[    12.038] (EE) Failed to load module "nvidia" (module does not exist, 0)
[    12.038] (II) LoadModule: "nouveau"
[    12.039] (WW) Warning, couldn't open module nouveau

我已经安装了正确内核的内核头文件。我验证了内核选项在 grub 配置中。我已清除所有 nvidia 软件包并尝试重新安装(多次...)

目前我很茫然。我检查了以下问题: Nvidia 驱动程序安装错误 但那里对我没什么作用。

答案1

好的,我发现了。

我做了完整的apt-get purge nvidia*apt-get dist-upgrade操作。但修复这个问题的方法实际上是将替代方案设置正确。我想这从一开始就有效。所以方法如下:

$ sudo update-alternatives --config x86_64-linux-gnu_gl_conf

  Selection    Path                                       Priority   Status
------------------------------------------------------------
  0            /usr/lib/nvidia-310/ld.so.conf              9702      auto mode
  1            /usr/lib/nvidia-310/ld.so.conf              9702      manual mode
* 2            /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf   500       manual mode

如您所见,对于我来说,此设置是错误的。所以我改用了0,结果发现 PATH 中有很多 nvidia- 实用程序。

如果您使用的不是 64 位,那么请使用 i386 而不是 x86_64。

答案2

安装最新的 nvidia 驱动程序

sudo apt-get install nvidia-313-updates

/etc/X11/xorg.conf通过执行生成

sudo nvidia-xconfig

然后执行

sudo software-properties-gtk它将向你显示一个像这样的窗口

在此处输入图片描述

从列表中选择最新的驱动程序,然后执行

sudo reboot

答案3

对于那些在 Google 黑暗中拍摄时最终进入此线程的人来说,这是因为已加载 nvidia 驱动程序,但 X 中的所有图形都通过 CPU 而不是 GPU。

症状

  • nvidia 驱动程序已正确加载 ( lsmod | grep nvidia)
  • 在 X 下,nvidia-settings报告称访问我的 GTX 680 GPU 没有问题

  • 任何图形密集型程序都会驱动CPU 负载异常高,而不是预期的负载GPU。例如,游戏即使在动画主菜单下也会卡顿glxgears(从mesa-utils软件包中)会使 CPU 负载高达 10%,unigine负载测试会显示 FPS 约为 2 并在第一个场景上锁定。

误导因素是它nvidia-settings没有报告任何访问 GPU 的问题。我按照大多数线程的建议做了(清除并重新安装 nvidia 驱动程序),但没有任何效果。在绝望中,我终于检查了一下Xorg.0.log/var/log原来 X 正在加载它自己的libglx.so模块,而不是 nvidia 的模块。现在我问了正确的问题,我得到了正确的答案(Xorg 加载错误的 libglx.so)。

解决方案

最初Files我的部分/etc/X11/xorg.conf是空的:

Section "Files"
EndSection 

我找到了 nvidia 保存其自身模块的位置libglx.so(更准确地说,我找到了它保存符号链接的位置)。解决方案是告诉 X 首先在 nvidia 的路径中查找模块,然后在 Xorg 的路径中查找,因此该Files部分现在如下所示:

Section "Files"
    ModulePath "/usr/lib/nvidia"
    ModulePath "/usr/lib/xorg/modules"
EndSection 

我使用的是 Debian,但由于 Ubuntu 基于 Debian,因此类似的方法应该适用于 Ubuntu 系统。

答案4

我也遇到了更新后找不到 nvidia 模块的问题。只是黑屏 - 根本没有图形。我尝试了不同的命令,所以也许我错过了一些重要的操作,但我提供了该序列,它很有帮助:

启动 Ubuntu 恢复,root shell

mount -o remount,rw /
mountall
<log in as user>
sudo  apt-get remove nvidia-340 nvidia-340-updates

然后重启电脑。我已经安装了 nvidia-331 &Co。

相关内容