Ubuntu 16.04系统中利用CUDA安装更新NVIDIA显卡驱动程序的方法
严正声明:本文系作者davidhopper原创,未经许可,不得转载。
在ThinkPad系列笔记本电脑中使用过Ubuntu 16.04系统的同学都知道,NVIDIA显卡驱动程序特别难安装。以我使用的ThinkPad P50s为例,显卡型号为:GM108GLM [Quadro K620M](可以在命令终端中使用lspci | grep NVIDIA
查询),按照网上大多数安装教程所示的下载.run
程序安装的方法进行过N次(N>10)失败的尝试,最后几乎达到怀疑人生的地步了,其中的苦楚恐怕只有自己心里清楚。功夫不负有心人,我终于找到一种利用CUDA安装包来安装驱动的方法,操作比较简便,并且效果不错,现将操作过程记录下来,给有需要的同学参考借鉴。
虽然本文仅针对ThinkPad P50s型笔记本电脑进行介绍,但本文方法适用于所有机型,作者已在另外的台式机上进行过成功安装。
一、下载CUDA安装包
到CUDA官网下载最新的CUDA安装包,具体如下图所示:
二、禁用第三方NVIDIA显卡驱动程序nouveau
Ubuntu 16.04系统使用第三方驱动程序nouveau
支持NVIDIA显卡,为了安装NVIDIA公司的原版驱动程序,需要将其禁用,具体方法为:使用快捷键Ctrl+Alt+T
打开一个终端,使用vi编辑器在/etc/modprobe.d
目录中创建文件:blacklist-nvidia.conf
(文件名随便起,只要后缀为.conf
并且自己觉得有意义就行):
sudo vi /etc/modprobe.d/blacklist-nvidia.conf
文件内容如下:
blacklist nouveau
options nouveau modeset=0
然后使用如下命令更新内核信息:
sudo update-initramfs -u
注意:更改信息后一定要记得重启电脑!
整个操作如下图所示:
重启电脑后,可能无法进入图形化登录界面,症状类似如下界面,甚至可能完全黑屏:
解决方法:按快捷键Ctrl+Alt+F1
至Ctrl+Alt+F6
选择六个文本终端之间的任意一个,登录文本界面,然后执行第三步。
三、安装CUDA程序
在命令终端中进入步骤一下载CUDA安装包的目录,使用如下命令安装CUDA程序。因为CUDA安装包会检测更新NVIDIA显卡驱动程序,于是我们可以利用这个特性来安装显卡驱动。
sudo dpkg -i cuda-repo-ubuntu1604-9-2-local_9.2.148-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-2-local/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
四、重启电脑禁用安全启动
为了顺利应用新安装的NVIDIA显卡驱动,需要重启电脑并禁用安全启动(其实也可以不禁用安全启动,只不过签名比较麻烦,我也懒得费神去弄,如果不怕麻烦,可以参考该网页进行签名)。
禁用方法如下图所示,开机后按Enter
再按F1
键进入BIOS设置,将Secure Boot
禁用:
五、验证驱动是否安装成功
特别注意:如果是台式机,其集成显卡和独立显卡的插孔位置不一样,在重启电脑前,需按下图所示,将显示器连接线从集成显卡接口切换到独立显卡,否则显示器将会因为接收不到显示信号而黑屏:
执行完步骤四,重新进入Ubuntu系统后,在命令终端中使用如下方法验证驱动已安装成功:
# 方法1
nvidia-smi
# 方法2
nvidia-settings
如下图所示:
六、可能存在的问题
6.1 安装显卡驱动程序后无法进入图形化界面
显卡驱动程序安装完毕重启电脑后,可能无法进入图形化登录界面,症状类似如下界面,甚至可能完全黑屏:
解决方法:按快捷键Ctrl+Alt+F1
至Ctrl+Alt+F6
选择六个文本终端之间的任意一个,登录文本界面,然后使用命令:
sudo nvidia-xconfig
重新生成NVIDIA显卡的配置文件信息,配置文件路径为:/etc/X11/xorg.conf
,文件内容如下,注意:如果是ThinkPad笔记本电脑,这个默认生成的文件内容是错误的,如果直接使用,一定不能正常加载NVIDIA显卡驱动程序!
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 396.37 (buildmeister@swio-display-x86-rhel47-05) Tue Jun 12 14:50:28 PDT 2018Section "ServerLayout"Identifier "layout"Screen 0 "nvidia" 0 0Inactive "intel"InputDevice "Keyboard0" "CoreKeyboard"InputDevice "Mouse0" "CorePointer"
EndSectionSection "InputDevice"# generated from defaultIdentifier "Keyboard0"Driver "keyboard"
EndSectionSection "InputDevice"# generated from defaultIdentifier "Mouse0"Driver "mouse"Option "Protocol" "auto"Option "Device" "/dev/psaux"Option "Emulate3Buttons" "no"Option "ZAxisMapping" "4 5"
EndSectionSection "Monitor"Identifier "Monitor0"VendorName "Unknown"ModelName "Unknown"HorizSync 28.0 - 33.0VertRefresh 43.0 - 72.0Option "DPMS"
EndSectionSection "Device"Identifier "intel"Driver "modesetting"Option "AccelMethod" "None"BusID "PCI:0@0:2:0"
EndSectionSection "Device"Identifier "nvidia"Driver "nvidia"BusID "PCI:6@0:0:0"
EndSectionSection "Screen"Identifier "intel"Device "intel"Monitor "Monitor0"
EndSectionSection "Screen"Identifier "nvidia"Device "nvidia"Monitor "Monitor0"DefaultDepth 24Option "AllowEmptyInitialConfiguration" "on"Option "IgnoreDisplayDevices" "CRT"Option "ConstrainCursor" "off"SubSection "Display"Depth 24Modes "nvidia-auto-select"EndSubSection
EndSection
正确的配置文件内容如下所示。大家一定要在默认文件的基础上,将原文件内容修改为如下正确内容。特别注意:以下配置项中的BusID
一定要使用NVIDIA默认生成的BusID
,不然使用我的硬件ID,怎么可能让NVIDIA驱动你的显卡?这也就是要基于默认配置文件修改的原因。
Section "ServerLayout"Identifier "layout"Screen 0 "nvidia"Inactive "intel"
EndSectionSection "Device"Identifier "intel"Driver "modesetting"BusID "PCI:0@0:2:0"Option "AccelMethod" "None"
EndSectionSection "Screen"Identifier "intel"Device "intel"
EndSectionSection "Device"Identifier "nvidia"Driver "nvidia"BusID "PCI:6@0:0:0"Option "ConstrainCursor" "off"
EndSectionSection "Screen"Identifier "nvidia"Device "nvidia"Option "AllowEmptyInitialConfiguration" "on"Option "IgnoreDisplayDevices" "CRT"
EndSection
如果重启电脑后还是无法进入图形化登录界面,则进入文本终端后使用如下命令:
sudo rm /etc/X11/xorg.conf
sudo touch /etc/X11/xorg.conf
重新生成一个空白的X11显示配置文件,之后再重启电脑,这样就可以顺利使用系统自带的集成显卡驱动进行显示。接下来,自然就是重新安装CUDA,以便正确安装NVIDIA显卡驱动程序了。
6.2 突然断电重启电脑后NVIDIA显卡驱动程序损坏
有一次突然断电,重启电脑后,运行一个tensorflow-gpu
程序时,居然报错说不是NVIDIA显卡驱动,一查居然是NVIDIA显卡驱动程序损坏,操作系统重新启用集成显卡驱动nouveau
,甚至还把步骤二中创建的黑名单文件/etc/modprobe.d/blacklist-nvidia.conf
都给删除了,真是让人愤怒。
解决办法:重新执行步骤二至步骤五,再次安装NVIDIA显卡驱动。
七、其他安装方法
最近在网上还看到一种通过添加ppa源的安装方法,也很简单,我在Dell台式机上已顺利安装成功,但没有在笔记本上测试过,感兴趣的同学可以尝试一下。具体操作方法如下:
7.1 查找本机显卡所需的驱动版本号
到NVIDIA驱动下载官网上,搜索你机器上NVIDIA显卡所需的驱动版本号,如下图所示:
7.2 通过添加ppa源的方法安装驱动
打开一个命令终端,使用如下命令安装驱动,安装完毕后,重启电脑即可。
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-390 # 此处的390要根据上面查询到的版本号适当更改
Ubuntu 16.04系统中利用CUDA安装更新NVIDIA显卡驱动程序的方法相关推荐
- Linux用命令安装音乐软件,在Ubuntu 18.04系统中使用命令安装Qmmp音乐播放器的方法...
在Ubuntu 18.04操作系统中安装Qmmp音乐播放器非常简单,只需要两段命令就可以搞定.下面介绍其方法. Qmmp音乐播放器介绍 Qmmp是一款开源基于Qt的多媒体播放器,提供Qt4及Qt5支持 ...
- 在Ubuntu 16.04系统中,将Logitech G920方向盘连接到Carla服务器
注: 电脑是win10 + Ubuntu 16.04双系统 我们用Logitech g29方向盘的程序来模拟G920方向盘,所以接下来运行出现g29等字样,是没有问题的 1.jstest-gtk 1) ...
- linux下如何安装自带编译器的codeblocks,在Ubuntu 16.04系统中使用PPA源安装Code Blocks的方法...
本文介绍在Ubuntu 16.04操作系统中使用PPA源安装Code Blocks的方法,可以先参考在Ubuntu系统中安装Code::Blocks的方法一文. 使用PPA源安装Code Blocks ...
- linux升级安装失败,更新Ubuntu 16.04系统中安装Adobe Flash更新失败的解决
最近在更新 Ubuntu 16.04系统的时候,发现总是在安装 Adobe Flash更新的时候失败,提示如下信息: 正在处理用于 update-notifier-common (3.168.5) 的 ...
- Ubuntu 16.04下通过系统软件商店安装flameshot后无法启动问题解决方法
前言 日常工作中经常用到截图软件进行信息采集和工作记录,以用作工作备忘或者是写博客的素材资料.在Windows和macOS平台下有一款集截图和贴图于一体的神器Snipaste*能够极大的提高工作效率和 ...
- ubuntu 16.04系统中nvidai、cuda、cudnn安装及注意事项
一.NVIDAI driver显卡驱动安装 首先看一下笔记本显卡型号 lspci |grep VGA 在命令行敲过这个命令后,有些台式机或笔记本会显示nvidia显卡,如下所示: 但是我的笔记本电脑 ...
- Ubuntu 16.04系统中编译安装FFmpeg 4.2.1(Android NDK r20)
1.下载FFmpeg 4.2.1的源码,下载Android NDK r20,安装yasm sudo apt-get install yasm 2.解压缩源码包和Android NDK 3.修改ffmp ...
- xmpp安装到Linux服务器,在Ubuntu 18.04/16.04系统中安装Ejabberd XMPP Server的方法
本文介绍在Ubuntu 18.04.Ubuntu 16.04系统中安装Ejabberd XMPP Server的方法,我们将从二进制安装程序安装ejabberd,它提供了一个功能齐全的ejabberd ...
- linux终端装什么系统下载软件,在Ubuntu 18.04系统中下载安装Termite终端的方法
以下介绍在Ubuntu 18.04系统或是Ubuntu 16.04系统中安装Termite终端的方法,目前Termite在默认存储库中不可用,必须从源代码安装.Termite是一个以键盘为中心的基于V ...
最新文章
- 在VMware Workstation中安装Ubuntu设置网络连接
- eclipse 将javaWeb项目转化成maven项目
- 30分钟?不需要,轻松读懂IL
- 数字图像处理特效中彩色墨水效果的设计与实现
- 【枭·音频】声随意动——浅谈《暗影火炬城》声音设计
- 【动态规划】城市交通
- 打印机用word打文档时在背面打印
- lisp成套电气设计_关于成套设计转电气设计问题?
- 【考试】2019.3计算机等级考试所有科目
- oracle付款汇兑损益怎么产生,汇兑损益如何进行账务处理?
- Android手机怎样投屏到win10(无需联网)
- 计算起始时间与结束时间之间有哪些月份和周数
- centos的linux内核源码下载方法
- 分布式数据库稳定性资料整理
- 网页偶尔出现 No input file specified 提示
- 余弦相似度 高维数据_从勾股定理到余弦相似度-程序员的数学基础
- 华为面向5G的室内覆盖数字化灵活容量升级
- 已有项目依赖cordovaLib打包后调用插件崩溃问题
- 网址保存到桌面快捷方式
- matlab/6-sps并联机构运动学位置反解
热门文章
- 不愿意和别人打交道_聪明人如何与不喜欢的人打交道
- 经典的 X-ray 冠脉造影图像的重建
- linux安装错误代码1,gdal安装错误“错误:命令'x86-linux-gnu-gcc'失败,退出状态为1”...
- 51 个基本的机器学习面试问题和答案
- dropzone多文件上传
- fabric 智能合约开发详解
- 搭建Nginx图片服务器
- AxTools CodeSMART 2013 for VB6 完整版
- 农村电商倒逼农业物联网加速 养殖户日常维护实现手机操控
- python获取pydoc