最近尝试在ubuntu中安装nvidia的显卡驱动以及cuda。花了近三天时间,真的如网上所说错误百出,期间甚至重装了一次ubuntu系统,搞到怀疑人生,整个都是泪- -。最终经过百般“磨难”总算安装成功。此篇博客将我的整个安装过程介绍一下,包括错误的步骤与我个人理解的错误分析,以及最终成功的安装方法。一方面作为后来人的参考,另一方面也作为我的学习记录。

-------------------------------------------------------------------------------------------------

首先说明一下我的电脑配置:

笔记本型号:DELL游匣7566(i7  8G)。双系统(win10+ubuntu)

ubuntu 系统版本:安装失败版本(14.04);安装成功版本(16.04)
显卡:nvidia   GeForce GTX 960M

注意,以下方法均未成功安装,请勿尝试,仅作错误参考)--------------------

下面先说一下我一开始的安装步骤,注意,以下说明的步骤均未安装成功,因此仅作为失败参考,如果你也出现类似情况,那么可以对照进行更改。

nvidia 官网提供的cuda安装方式有两种,一种是run文件安装,一种是deb安装

刚开始我参考一本caffe书籍的方法,用的deb安装方式,首先讲一下这个方法。

失败方法1:ubuntu14.04+cuda7.5 deb安装

我一开始的ubuntu版本是14.04,其搭配的cuda版本为7.5。因此首先从nvidia官网下载cuda7.5版本的deb文件https://developer.nvidia.com/cuda-75-downloads-archive.下载完以后,终端进入文件目录,输入如下指令:

sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda

接下来重启,进入循环登录的错误。(这个错误最常见!)

按Ctrl+Alt+F1,进入text mode(话说这个挺高大上的=.=),登录你的账户。卸载刚装的cuda和显卡驱动。指令如下:

sudo apt-get remove --purge nvidia*
sudo apt-get remove --purge cuda

sudo reboot重启电脑,此时电脑恢复原样(美滋滋)。

接下来参考网上其他博客的方法,他们都推荐用run的安装方式,于是我也开始了run尝试。

失败方法2:ubuntu14.04+cuda7.5 run安装

a) 从nvidia官网下载cuda7.5版本的run文件,https://developer.nvidia.com/cuda-75-downloads-archive,之后将其移到home目录。

b) 接下来禁用nouveau(很重要!)。在/etc/modprobe.d中创建文件blacklist-nouveau.conf,在文件中输入以下内容

blacklist nouveau
options nouveau modeset=0

打开终端,运行

sudo update-initramfs -u

设置完毕以后可以运行

lsmod | grep nouveau

检查nouveau是否禁用成功,如果运行后没有任何输出,则代表禁用成功。

c)重启电脑,到达登录界面时,按Ctrl+Alt+F1,进入text mode。

d)输入

sudo service lightdm stop

关闭图形化界面(很重要!)

e)输入

sudo ./cuda_7.5.18_linux.run

开始安装cuda。

接下来根据提示进行安装,遇到提示是否安装openGL,选择no(很重要!),其他选择yes以及默认配置。安装成功后,会显示installed,否则会显示failed。我的当时是显示installed。

e)输入

sudo service lightdm start

重新启动图形化界面。接下来会跳到登录界面,输入密码登录。此时未出现循环登陆的错误(内心暗喜)。

f)重启电脑。检查/dev文件夹下是否有nvidia*多个文件。如果没有的话,按照官方文档里的步骤进行添加。

重点来了,我这个方法的错误就出现在这里,/dev文件夹下没有nvidia*多个文件,我按照官网公布的步骤进行添加,仍然没有,终端查询nvidia显卡驱动,竟然查不到信息。通常,如果你用cuda的run文件安装方式,它会自动帮你安装显卡驱动。现在我的问题总结下来就是,cuda装上去了,显卡驱动却未成功安装(what the fuck?!),虽然未遇到循环登录的错误,这个错误也着实让我头疼。于是卸载cuda,网上查询了一番,进行第3次安装(委屈脸//)

失败方法3:先装好NVIDIA驱动,再进行cuda.run文件安装

此时的ubuntu版本仍然是14.04。现在的想法是,上一个方法中显卡驱动未成功安装,那么是不是可以先把显卡驱动装了,再进行cuda的安装。于是进行第二次尝试:先装nvidia驱动,再装cuda。

a)去nvidia官网下载对应显卡型号的驱动,也是个run文件,网址如下:http://www.nvidia.cn/Download/index.aspx?lang=cn。下载完以后同样将其移到home路径下。

b) 打开终端,先删除旧的驱动:(虽然我的显卡驱动根本就没装上去,但为了保险起见,还是执行了这一步)

sudo apt-get --purge nvidia*

c)由于之前已经禁用了nouveau,所以禁用nouveau这一步无需进行。

d)同样按Ctrl+Alt+F1,进入text mode。输入

sudo service lightdm stop

关闭图形化界面

e)输入

sudo ./NVIDIA....run

注意,以上sudo后面的run文件视显卡型号而变。

f)接下来进行安装,期间会跳出UEFI安全启动的相关问题,按照提示进行操作即可,问题不大。开启图形化界面

sudo service lightdm start

g)接下来便出现循环登录的错误了(心力憔悴!!。。)无奈,只好再次进入text mode(此时这个仍然可以用!),卸载刚装的nvidia驱动。(进一步委屈脸//)

失败方法4:系统推荐的NVIDIA显卡驱动版本+cuda.run 文件安装

鉴于第二种失败的方法,我思考是否驱动版本不对的原因。于是这次我更换了NVIDIA的显卡驱动版本,在设置里面查询附加驱动,里面有推荐的显卡驱动版本号,这次我没有在官网上下载驱动run文件,而是直接apt-get安装了,两者其实一样。终端装完以后重启电脑,这次没有出现循环登录的问题。但问题却更严重了,系统卡在开机logo那里了!这也没法进入text mode 啊。傻傻的等了近20分钟,依然没反应,强制重启,仍是卡住,这下可绝望了,难道要我重装系统,我里面的资料都没备份啊啊啊啊!!!结局你懂得,重装认命- -

失败方法5:ubuntu16.04+cuda8.0 run文件

默默掏出U盘重装系统,装了个16.04的版本,这个系统的版本搭配cuda8.0。继续重复方法2的步骤,出现相似错误(显卡驱动装不上)。

失败方法6:先装好NVIDIA驱动,再装cuda run

错误情况同方法3(循环登录)。

-----------------------------------------------------------------------(分割线)

以上便是我的失败经历,有些细节未详细说明,大抵如此。接下来好好思考了一番,也查阅了不少资料。进行了最终的安装方法。

成功安装方法:ubuntu16.04+cuda8.0 deb安装

这个方法仅仅在失败方法1中添加了几步而已(囧),下面说明一下步骤:

a)从nvidia官网下载cuda8.0版本的deb文件https://developer.nvidia.com/cuda-80-ga2-download-archive.

b)禁用nouveau(参考前述方法)

c)无需关闭图形界面,在终端输入

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda

d)重启,终端输入

sudo nvidia-smi
sudo nvidia-settings

显示nvidia驱动信息,安装成功,同时设置里面显示驱动也为nvidia显卡,没想到步骤这么简单,仅仅在失败方法1中禁用了nouveau。

--------------------更新-------------------------

现阶段使用deb的方法是最稳定的,参考官网的教程指令就好!!

ubuntu安装nvidia驱动以及cuda教程的更多相关文章

  1. ubuntu安装nVidia驱动,遇到终端闪砾问题并解决

    安装nvidia的官方驱动之后,比起nouvean来说感觉速度快了不少. 安装该驱动很简单,但选择哪个驱动是要注意的.因为今天我试了nvidia的多个驱动后都在ubuntu下用起来并不好. 我现在的环 ...

  2. ubuntu 安装NVIDIA驱动过程

    用U盘引导安装时,提示 nouveau 0000:65:00.0: fifo: SCHED_ERROR 08 [] 解决方法: 进入grub 内核启动参数后增加 nomodeset nomodeset ...

  3. ubuntu安装nvidia驱动

    安装环境: ubuntu 版本:12.04.02 LTS  64bit nvidia 驱动版本:NVIDIA-Linux-x86_64-310.19.run nvidia 显卡:GT640 安装过程主 ...

  4. ubuntu安装显卡驱动和cuda

    NVIDIA-linux.run安装后,会出现登录页面循环,解决办法是在运行命令后加入-no-opengl-files 打开nvidia x server Settings软件,显示:You do n ...

  5. ubuntu16.04安装nvidia驱动及CUDA+cudnn

    网上查了资料,装好了,参照以下 https://blog.csdn.net/zhang970187013/article/details/81012845 https://blog.csdn.net/ ...

  6. Ubuntu16.04 Nvidia驱动、CUDA安装

    安装Nvidia驱动和CUDA时往往很费力,经常有莫名奇妙的错误,这次安装十分顺畅,权当记录一下,以方便以后再次安装. 一.Nvidia显卡驱动安装 sudo add-apt-repository p ...

  7. Ubuntu系统---安NVIDIA 驱动后 CUDA+cuDNN 安装

    Ubuntu系统---安NVIDIA 驱动后  CUDA+cuDNN 安装 --------------------------------------------@20190726--------- ...

  8. Ubuntu系统---“NVIDIA 驱动+CUDA+cuDNN ”之后 OpenCV安装

    Ubuntu系统---“NVIDIA 驱动+CUDA+cuDNN ”之后 OpenCV安装 目录: 一.OpenCV安装包下载 二.cmake安装 三.OpenCV安装 正文 一.OpenCV安装包下 ...

  9. Ubuntu系统---NVIDIA 驱动安装

    Ubuntu系统---NVIDIA 驱动安装 第一次安装“NVIDIA 驱动”,小小的激动,因为终于可以玩GPU了.预想一块GPU,盼望太久,差点放弃,感谢J姐让我捡个漏.但是,第一次新的试错过程,网 ...

随机推荐

  1. BZOJ1179 : [Apio2009]Atm 缩点+spfa

    1179: [Apio2009]Atm Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 2069  Solved: 826[Submit][Status ...

  2. 稀疏表达是要求信号在该模型下的sparse code,只有少数的non-zero elements

    为什么sparse representation比起其它成分分析方法(DFT,Wavelet)能得到更好的效果? - 知乎  https://www.zhihu.com/question/241241 ...

  3. go4--break,continue + 标签

    package main /* 指针 Go虽然保留了指针,但与其它编程语言不同的是,在Go当中不 支持指针运算以及”->”运算符,而直接采用”.”选择符来操作指针 目标对象的成员 操作符”&am ...

  4. input keyevent发送按键值【转】

    本文转载自:http://blog.csdn.net/moyu123456789/article/details/71209893 1.adb shell进入android设备,执行命令input k ...

  5. Chrome查看JavaScript函数

    在页面上右键view page source(Ctrl+U),然后在弹出来的界面可以查找JavaScript函数 注意:这个只能看到内嵌在网页上的JavaScript函数 一般来讲,JavaScrip ...

  6. SQLALchemy之ORM操作

    1.仍然要创建引擎 2.创建session会话 (1)方式一 engine =create_engine("mysql+pymysql://root:123@127.0.0.1:3306/s ...

  7. [Advance] How to debug a program (上)

    Tool GDB Examining Memory (data or in machine instructions) You can use the command x (for “examine” ...

  8. [POI2011]LIZ-Lollipop

    https://www.zybuluo.com/ysner/note/1303462 题面 给一个只有\(1\)和\(2\)的序列,每次询问有没有一个子串的和为\(x\). \(n\leq10^6\) ...

  9. bzoj1776

    点分治/贪心 对于点分治的理解不够深刻...点分治能统计树上每个点对的信息,那么这里就是统计同种颜色点对之间的最大距离,自然可以用点分 然后点分,每次统计最大距离,但是略微卡常... 还有一种贪心的方 ...

  10. SQL Server2012 T-SQL基础教程--读书笔记(1-4章)

    SQL Server2012 T-SQL基础教程--读书笔记(1-4章) SqlServer T-SQL 示例数据库:点我 Chapter 01 T-SQL 查询和编程背景 1.3 创建表和定义数据的 ...