Ubuntu 16.04 + Nvidia 显卡驱动 + Cuda 8.0 (问题总结 + 解决方案)

2023-05-16

前言

前面好一阵子忙于写论文和改论文,好久没有做新实验了,最近又回到做实验是的节奏,这感觉很爽。 去年实验室买了两台工作站(4路Titanx+2颗 Xeon CPU E5-2637 v3 @ 3.50GHz),刚开始安装cuda实在是糟心,花了一两天没有搞定,后来请教了一些大牛,搞定了,今年实验室又买了两台差不多服务器,只是GPU为 Titanx(Pascal),本以为安装Nvidia驱动和去年一样,然而事与愿违,相信很多人和我有相同的遭遇,今天我把我遇到的问题给大家总结一下。 第一次写博客,写的不好希望大家见谅,以后我写一些深度学习,行为识别,行为检测的博客,也希望同行互相交流。我的 邮箱在博客底部。

安装Nvidia驱动出现的问题

问题主要是三种,(1)循环登录,也就是登录之后在退出来到登录界面; (2)界面变得很大,看着心慌,哈哈;(3)登录进去了,显示正常了,结果只有桌面背景和鼠标。

安装Ubuntu环境下Nvidia驱动几种方式

总的说,安装显卡驱动的方式有如下几种:
- 直接去nvidia官网下载驱动包安装(网址:http://www.nvidia.cn/Download/index.aspx?lang=cn)
- 从PPA中安装(参考博文:http://blog.csdn.net/qiusuoxiaozi/article/details/70195689)
- 直接通过安装Cuda8.0带的驱动(网址:https://developer.nvidia.com/cuda-downloads)

首先,我简单的说一下这几中方式的具体操作,因为每个童鞋遇到的问题不一样,这三种方式必然有一种能够满足你的需求,所以都值得你去试试,反正我是都试过了(此时泪崩中)。 在这三种方法中,最重要的就是你首先知道你该装那个版本的驱动,方式如下:

sudo apt-cache search nvidia*

结果如下:
这里写图片描述
可以看到我的电脑最高可支持nvidia-375.66的驱动(有种说法这是支持最高的驱动,但是试了,这个说法不太对,我装了比较版本高的驱动,成功了,所以我觉得这步可以去掉,写出来主要是考虑更多人的需要)。有了版本就好办了。

第一种方式,我下载了NVIDIA-Linux-x86_64-375.66.run (根据你的版本号下载),具体的安装过程如下(可参考师弟的博客:http://blog.csdn.net/u012759136/article/details/53355781):

卸载掉原有驱动

sudo apt-get purge nvidia*

这个也和重要,我的有一台服务器没有这个操作,还真不行。如果使用的是runfile,则使用–uninstall 参数,当然runfile安装的时候会卸载掉之前的驱动,所以可以不用手动去卸载。

禁用nouveau

(参考:http://www.cnblogs.com/Qwells/p/6086773.html#undefined)
新建blacklist-nouveau.conf文件,输入命令:

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

往文件中写入:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

保存并退出。这一步是为了禁掉Ubuntu自带开源驱动nouveau。之后sudo reboot重启系统。在终端执行命令:

lsmod | grep nouveau

查看nouveau模块是否被加载。如果什么都没输出,则执行下一步。
给驱动run文件赋予执行权限

sudo chmod a+x NVIDIA-Linux-x86_64-375.66.run

Ctrl + Alt + F1 进入tty1(Ctrl + Alt + F7是回到桌面系统)出现上面的问题,根本原因在于 参数: –no-opengl-files

sudo /etc/init.d/lightdm stop
sudo ./NVIDIA-Linux-x86_64-375.20.run --no-opengl-files
sudo /etc/init.d/lightdm start

–no-opengl-files也就是不安装opengl,这里的原因有很多种,可能是因为ubuntu桌面系统是采用3D渲染的,可能是驱动冲突问题。当然还有其他几个参数,都值得你去试一试:

在安装驱动的时候,有一布问你”Would you like to run the nvidia-xconfig utility to automatically update your X configuration file…”什么的,选择 No。

sudo ./NVIDIA-Linux-x86_64-375.20.run --no-opengl-files –no-x-check –no-nouveau-check
  • –no-x-check 安装驱动时不检查X服务
  • –no-nouveau-check 安装驱动时不检查nouveau

重启电脑,没有问题,输入命令:

nvidia-smi

出现:
这里写图片描述
没有问题,接下来装cuda的时候不要在装驱动了,具体选项如下:

Description

This package includes over 100+ CUDA examples that demonstrate
various CUDA programming principles, and efficient CUDA
implementation of algorithms in specific application domains.
The NVIDIA CUDA Samples License Agreement is available in
Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?
(y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
 [ default is /usr/local/cuda-8.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
 [ default is /home/c302 ]:

Installing the CUDA Toolkit in /usr/local/cuda-8.0 ...
Installing the CUDA Samples in /home/c302 ...
Copying samples to /home/c302/NVIDIA_CUDA-8.0_Samples now...
Finished copying samples.

到目前为止,这种方法安装大功告成了,我用的就是这种方法解决问题的,那么接下来简单的介绍另两种方法。

小技巧提示,如果你装驱动失败,进不去系统了,可能有的同志不知道怎么做了,就直接系统重装,这是一种方式,但是最简单的方式是,进文本tty1模式,输入命令:

sudo /etc/init.d/lightdm stop
sudo ./NVIDIA-Linux-x86_64-375.20.run --uninstall
sudo /etc/init.d/lightdm start

系统回到从前,继续做打不死的小强,继续试试。

第二种,利用PPA的方式,参考是http://blog.csdn.net/qiusuoxiaozi/article/details/70195689。 配置好了PPA(不一定必须配置,看你的源有没有),指令就是:

sudo apt-get install nvidia-375

注意,这里的版本号nvidia-375 是通过上面的方式获取到的(sudo apt-cache search nvidia*)。但是这种方式,并不是适合所有人,比如我试了两台服务器,都是登录不进去,但是网上有博主解决了问题,说明有些童鞋是可以试试的,如果不行,就进tty1执行命令:

sudo apt-get purge nvidia-375

回到解放前,继续试试,哈哈。

第三种,这是我去年用的方式,因为下载的cuda文件有.deb 和 .run两种格式, cuda安装文件里面自带Nvidia驱动的。但是,直接装deb的 基本上是直接开挂,一直如此从未改变过,所以我早就放弃了,但是同样网上有同志就可以了,运气真好,你也可以试试。
第一次成功,我是用cuda_8.0.61_375.26_linux.run方式,解决的方法是:驱动安装选y(第一种方式选N是以为驱动是单独安装的),但是问你要不要安装opengl的时候,一定要选择n,其他一路选择y,重启,没有问题。

小弟不才,写了一堆,希望能帮助你解决问题,有问题可以给我发邮件:swzhang@hust.edu.cn.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu 16.04 + Nvidia 显卡驱动 + Cuda 8.0 (问题总结 + 解决方案) 的相关文章

  • 如何在维护数据的同时升级 docker 容器中的 postgres? 10.3 到最新的 10.x 或 12.x

    我的生产和本地主机中有一个 10 3 postgres docker 容器 在之前的一个question https stackoverflow com a 62789347 80353 我必须恢复在 10 5 中存档的转储 感谢您的回答
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • cudaMemcpy() 与 cudaMemcpyFromSymbol()

    我试图找出原因cudaMemcpyFromSymbol 存在 似乎 symbol func 可以做的所有事情 nonSymbol cmd 也可以做 symbol func 似乎可以轻松移动数组或索引的一部分 但这也可以使用 nonSymbo
  • Ubuntu 12.04 上的 PHP 从 5.3 升级到 php 5.6

    我正在按照本教程将 php 从版本 5 3 升级到 5 6 http phpave com upgrade php 53 to php 56 on ubuntu 1204 lts http phpave com upgrade php 53
  • EDITLogBack Syslog 不工作 java

    我写了一个简单的项目来在 Ubuntu 中运行日志 方法如下example https examples javacodegeeks com enterprise java logback logback syslog example 应用
  • 错误:NVIDIA-SMI 失败,因为无法与 NVIDIA 驱动程序通信

    NVIDIA SMI 抛出此错误 NVIDIA SMI 失败 因为无法与 NVIDIA 通信 司机 确保安装了最新的 NVIDIA 驱动程序并且 跑步 我清除了 NVIDIA 并按照提到的步骤重新安装了它here https askubun
  • 如何安装和管理多个版本的 R 包

    我正在开发一个使用 R 进行可重现计算的框架 我正在努力解决的一个问题是 某些 R 代码可能在包的 X Y Z 版本中完美运行 但是为什么你在 3 年后尝试重现它 这些包已经更新了 一些功能发生了变化 代码不再运行 此问题还会影响使用包的
  • 标准头文件中的 C 编译器错误 - 未定义的 C++ 定义

    我正在尝试编译 C 程序 但收到许多错误 这些错误是在标准 C 头文件 inttypes h stdio h stat h 等 中遇到的 错误的来源是以下未定义的常量 BEGIN DECLS END DECLS BEGIN NAMESPAC
  • 为 Qt 应用程序创建 Linux 安装

    我刚刚用 Qt Creator 制作了一个很棒的程序 我对自己很满意 如何将其从台式机移至笔记本电脑 那么 最好的方法是安装程序 对吗 对于 Ubuntu 这是一个 Debian 软件包 对吗 我怎么做 有人这样做过吗 他们可以分享 QT
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 我需要启用哪些权限才能使 Docker 卷正常工作?

    假设我有一个保存一些数据的 Docker 容器 我希望这些数据能够持续存在 如果容器被停止 删除 升级等 我仍然希望数据位于主机操作系统文件系统上的可访问位置 目前 我的解决方案是创建一个目录 srv service name在我的主机上
  • 如何查看 GNU make 运行的命令?

    我正在尝试调试一个复杂的 Makefile 如何让 GNU make 打印它运行的所有命令 我在问题中找不到答案man页 使用 d 标志似乎不会打印它 这不是回答我的问题所必需的信息 但如果您想知道 我在编译基于 NVIDIA CUDA 库
  • 无法在 mysql-apt-config [Ubuntu 14.04] 中选择“确定”

    我使用的是 Ubuntu 14 04 sudo apt get update总是给我这个选项来配置 mysql apt config 我尝试选择版本 按 tab gt 在 确定 上突出显示的键 按 Enter 但没有任何反应 它再次返回并突
  • 交叉编译armv5,但它创建v7二进制文件

    我设法为arm926ej s创建了一个目标文件我在 qemu 上使用 Debian Arm arm linux gnueabi gcc 4 4 static O c mcpu arm926ej s hello c o hello root
  • 最小化 MC 模拟期间存储的 cuRAND 状态数量

    我目前正在 CUDA 中编写蒙特卡罗模拟 因此 我需要生成lots使用随机数cuRAND图书馆 每个线程处理一个巨大的元素floatarray 示例中省略 并在每次内核调用时生成 1 或 2 个随机数 通常的方法 参见下面的示例 似乎是为每
  • 通过 cuFFT 进行逆 FFT 缩放

    每当我使用 cuFFT 绘制程序获得的值并将结果与 Matlab 的结果进行比较时 我都会得到相同形状的图形 并且最大值和最小值位于相同的点 然而 cuFFT 得到的值比 Matlab 得到的值大得多 Matlab代码是 fs 1000 s
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 如何运行和理解CUDA Visual Profiler?

    我已经设置了 CUDA 5 0 并且我的 CUDA 项目运行良好 但我不知道如何使用 Visual Profiler 分析我的 CUDA 项目 如何运行它 我还需要安装更多吗 又该如何做呢 我的电脑使用Window 7 64位 CUDA 5
  • Pycharm 中的 Traitlets.traitlets.TraitError

    我是Python的初学者 我面临以下问题 每当我启动 pycharm 社区版 版本 5 0 3 时 Python 控制台无法启动并显示以下错误 usr bin python2 7 usr lib pycharm community help
  • cuda-gdb 错误消息

    我尝试使用 cuda gdb 调试我的 CUDA 应用程序 但遇到了一些奇怪的错误 我设置了选项 g G O0构建我的应用程序 我可以在没有 cuda gdb 的情况下运行我的程序 但没有得到正确的结果 因此我决定使用 cuda gdb 但

随机推荐