在 apt 搞砸一切之后如何启用 nVidia CUDA 驱动程序

在 apt 搞砸一切之后如何启用 nVidia CUDA 驱动程序

我使用 nVidia 的下载安装了 CUDA。它安装了特定版本的 nVidia 驱动程序。一切运行正常。

然后我愚蠢地同意了 Ubuntu 更新其软件的请求(我运行的是 15.04)。我认为有一个新的内核或类似的东西。无论如何,我重新启动了,现在只有板载英特尔显卡可以工作,尽管在“附加驱动程序”程序中选择了 nVidia。

有人知道如何修复或调试它吗?(我已经好几年没用过 Linux 了,所以对 Xorg 配置等有点生疏。同样令人失望的是,事情仍然运行得如此糟糕,这并不奇怪。)

答案1

我取得了一些进展。基本上,我查看了 Synaptic 中软件包的依赖关系cuda,发现它依赖于nvidia-352听起来可能具有实际驱动程序的软件包。所以我执行了以下用户友好的简单命令:

sudo apt-get install --reinstall nvidia-352

这会出现以下用户友好的错误:

ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/nvidia-352.0.crash'
Error! Bad return status for module build on kernel: 4.2.0-35-generic (x86_64)
Consult /var/lib/dkms/nvidia-352/352.79/build/make.log for more information.

查阅该文件,在接近结尾处你会看到这个初学者容易理解的消息:

Compiler version check failed:

The major and minor number of the compiler used to
compile the kernel:

gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu2) 

does not match the compiler used here:

cc (Ubuntu 4.9.3-5ubuntu1) 4.9.3
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


It is recommended to set the CC environment variable
to the compiler that was used to compile the kernel.

The compiler version check can be disabled by setting
the IGNORE_CC_MISMATCH environment variable to "1".
However, mixing compiler versions between the kernel
and kernel modules can result in subtle bugs that are
difficult to diagnose.

*** Failed CC version check. Bailing out! ***

因此,实际情况是 CUDA 实际上仅支持 GCC 4.9,而内核显然是用 GCC 5.2 构建的。我已经安装了两者,因此我使用这些令 Windows 感到羞愧的易于使用的命令将路径重置为 5.2:

sudo update-alternatives --config gcc # And choose gcc-5
sudo update-alternatives --config g++ # And choose g++-5

重试重新安装。这次成功了。然后我将编译器重置回 4.9。准备重新启动以查看它是否有效。

编辑:是的,有效。

相关内容