Ubuntu18.04安装Nvidia驱动全网不坑,超全步骤(亲测~)
Posted 心清似水淡若云、
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu18.04安装Nvidia驱动全网不坑,超全步骤(亲测~)相关的知识,希望对你有一定的参考价值。
Ubuntu18.04安装Nvidia驱动【全网不坑,超全步骤】亲测~
为了方便以后回忆以及给像我一样的菜鸡提供思路,给出具体的步骤:
No.1 查看自己的电脑显卡型号(已知麻烦自动略过)
直接上命令:
1)方法一:(可有有些人不适用,就像我)
lshw -c video
结果:
2)方法二:(适用)
lspci | grep -i nvidia
显示:
02:00.0 3D controller: NVIDIA Corporation Device 1d12 (rev a1)
我们要的就是:1d12
然后进入网址:PCI Devices
输入并查找,得到
3)方法三:(说是直接弹出结果,但我没试过)
nvidia-smi -L
No.2 下载电脑对应的Nvidia版本驱动
进入官网:https://www.nvidia.cn/Download/index.aspx?lang=cn
PS:这里按照我的电脑选取了驱动程序
然后:
选择下载之后得到一个后缀名为run的文件:
No.3 准备工作,下载依赖
1)禁用Bios中的安全启动模式secure boot,这是因为此方法使用第三方源安装显卡驱动,不禁止secure boot会导致安装的驱动不能使用,禁用也不会有多大安全隐患。
不禁用后面会导致安装出现error并且fail
具体做法是:
开机进入BIOS,然后选择安全模式,禁止。(图待补充ing…)
2)移除所有以前安装过的nvidia包,并禁用nouveau
移除:
sudo apt-get purge nvidia*
创建文件:
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
一般人很少用vim(vim是a或者i开启编辑,esc退出,输入:wq保存退出),我这里习惯用自带的gedit命令直接打开相当于记事本那样编辑:
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
插入以下两句代码:
blacklist nouveau
options nouveau modeset=0
执行命令禁止nouveau,并重启生效。
sudo update-initramfs -u
sudo reboot
重启后,输入:
lsmod | grep nouveau
验证。
3)在安装驱动之前需要安装gcc和相应的依赖:
sudo apt-get install build-essential
我也不知道为什么这一行命令就把gcc给安装了,然后安装cmake:
sudo apt-get install cmake
查看gcc和cmake有没有安装成功:
gcc --version
cmake --version
4)没有lightdm需要安装一下:
sudo apt-get install lightdm
一直安装不下来,于是换镜像源,更换前最好先备份:
cp /etc/apt/sources.list /etc/apt/sources_bak.list
或者
mv /etc/apt/sources.list /etc/apt/sources.list.bak
打开文件:
sudo gedit /etc/apt/sources.list
替换…一开始换的是清华镜像源(有需要的同志也可以访问)
更换了之后需要:
sudo apt-get update
出现错误:
GPG error:
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu180
然后这种错误,更换阿里源就好了:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
更换了之后同样需要:
sudo apt-get update
再运行命令:
sudo apt-get install lightdm
安装。
No.4 开始安装
在第三步的基础上
1)进入tty2模式
按ctrl+alt+f1进入命令行界面,此时会要求你输入用户名+密码:
PS:ctrl+alt+f7可直接退出来,回归正常~
然后执行:
ubuntu@ubuntu:~$ sudo service lightdm stop
关闭图形界面,当然你也可以直接关闭,再ctrl+alt+f1进入命令行界面。
2)然后cd到.run文件所在的文件夹,执行:
sudo chmod 777 NVIDIA-Linux-x86_64-510.73.05.run
修改驱动文件的权限
3)重头戏来了 执行安装:
sudo ./NVIDIA-Linux-x86_64-510.73.05.run
会载入一段时间,然后显示:
OK,下一步:
选择继续,然后OK一下,跳到:
敲重点敲重点敲重点
这里你如果选择右边的Install without signing最后会出现:
You appear to be running an X server; please exit X before
解决方法:
更新NVIDIA显卡的CUDA驱动出错,You appear to be running an X server; please exit X before
也就是卸载重来:
sudo /etc/init.d/lightdm stop
sudo /etc/init.d/lightdm status
sudo apt-get purge nvidia-cuda*
sudo apt-get purge nvidia-*
选择左边的:Sign the kernel module,OK,往下走:
选择生成新的密钥Generate a new key pair,这就会在/usr/share/nvidia/下生成一个nvidia*.der文件和nvidia*.key文件,前一个是私钥,后一个是公钥。
然后选择NO:
不要删除。
接着两次OK后,选择Install signed kernel module:
完成后,执行:
sudo mokutil --import /usr/share/nvidia/nvidia*.der
将密钥加到内核的信任列表中,此时会提示输入两次密码。
重启。
在进入系统前出现蓝色界面,选择Enroll MOK
选择继续:
然后Yes输入密码:
选择Reboot重启:
开机后:
输入:
sudo modprobe nvidia
挂载NVIDIA驱动,最后输入:
nvidia-smi
显示:
完成。
因为是完成之后写的,写得不好还请各位大神多多海量~
制作稍许不易,顺手点赞交谊
ubuntu上安装NVIDIA驱动CUDACUDNN
Ubuntu18.04环境下的安装:
主要参考下面这个博客:
https://blog.csdn.net/u010801439/article/details/80483036
https://blog.csdn.net/ice__snow/article/details/80144503
1.安装GPU英伟达驱动(针对ubuntu18.04)
step .1:首先,检测你的NVIDIA图形卡和推荐的驱动程序的模型。执行命令:
$ ubuntu-drivers devices
输出结果为:
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 == modalias : pci:v000010DEd00001180sv00001458sd0000353Cbc03sc00i00 vendor : NVIDIA Corporation model : GK104 [GeForce GTX 680] driver : nvidia-304 - distro non-free driver : nvidia-340 - distro non-free driver : nvidia-384 - distro non-free recommended driver : xserver-xorg-video-nouveau - distro free builtin == cpu-microcode.py == driver : intel-microcode - distro free
从中可以看到,这里有一个设备是GTX 680 ,对应的驱动是NVIDIA -304,340,384 ,而推荐是安装384版本的驱动。
step.2,安装驱动
$ sudo ubuntu-drivers autoinstall
$ sudo apt install nvidia-340
OK 驱动安装完成,重新启动
4.安装CUDA(针对18.04)
安装CUDA 这里需要注意;
咱们需要根据cuDNN 来选择,如图,首先,cuda只能支持17.04,16.04的ubuntu 下载安装,但,实际上,有点类似于word一样(高版本word能打开低版本的word文件 .)18.04版本的系统,能够安装16.04版本对应的CUDA。
目前cuda 最高版本为9.2,且只支持 16.04,17.04 这两个系统,而且,我们安装完CUDA 之后还需要安装cuDNN。
那么cuDNN 的版本又有什么选择呢,如下
首先,根据cuDNN 的版本,目前,较为完善的,是cuDNN v7.0.5 ,其适用于 CUDA 9.1 版本,所以,咱们在选择安装cuda的时候,选择 CUDA 9.1。下载地址
按下图进行选择
对应的有一下四个文件,需要统统下载,第一个是主文件,后3个相当于补丁。
开始安装:
step .1 GCC 降级
由于CUDA 9.0仅支持GCC 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3,
故手动进行降级:
step .1 GCC 降级
由于CUDA 9.0仅支持GCC 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3,
故手动进行降级:
sudo apt-get install gcc-4.8 sudo apt-get install g++-4.8
装完后进入到/usr/bin目录下
$ls -l gcc*
会显示以下结果
lrwxrwxrwx 1 root root 7th May 16 18:16 /usr/bin/gcc -> gcc-7.3
发现gcc链接到gcc-7.0, 需要将它改为链接到gcc-4.8,方法如下:
sudo mv gcc gcc.bak #备份 sudo ln -s gcc-4.8 gcc #重新链接
同理,对g++也做同样的修改:
ls -l g++* lrwxrwxrwx 1 root root 7th May 15:17 g++ -> g++-7.3
需要将g++链接改为g++-4.8:
sudo mv g++ g++.bak sudo ln -s g++-4.8 g++
再查看gcc和g++版本号:
gcc -v
g++ -v
均显示gcc version 4.8 ,说明gcc 4.8安装成功。
step. 2 安装cuda ,及其补丁
输入命令安装Base Installer:
sudo sh cuda_9.1.85_387.26_linux.run
需要注意的是,之前已经安装过显卡驱动程序,故在提问是否安装显卡驱动时选择no,其他 选择默认路径或者yes即可。
然后,继续执行以下操作安装3个 patch :
sudo sh cuda_9.1.85.1_linux.run sudo sh cuda_9.1.85.2_linux.run sudo sh cuda_9.1.85.3_linux.run
安装完毕之后,将以下两条加入.barshrc
文件中.
export PATH=/usr/local/cuda-9.1/bin${PATH:+:$PATH}} #注意,根据自己的版本,修改cuda-9.2/9.0... export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} #注意,根据自己的版本,修改cuda-9.2/9.0...
OK ,那么,到这一步,cuda 就安装完成了
确认CUDA工作
找到samples
,一般在home
目录下
cd ~/NVIDIA_CUDA-9.1_Samples/ make
等待编译完成,
cd ./bin/x86_64/linux/release
使用deviceQuery
测试
$ ./deviceQuery ./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "GeForce GTX 960M" CUDA Driver Version / Runtime Version 9.1 / 9.1 CUDA Capability Major/Minor version number: 5.0 Total amount of global memory: 2004 MBytes (2101870592 bytes) ( 5) Multiprocessors, (128) CUDA Cores/MP: 640 CUDA Cores GPU Max Clock rate: 1176 MHz (1.18 GHz) Memory Clock rate: 2505 Mhz Memory Bus Width: 128-bit L2 Cache Size: 2097152 bytes Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096) Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 1 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled Device supports Unified Addressing (UVA): Yes Supports Cooperative Kernel Launch: No Supports MultiDevice Co-op Kernel Launch: No Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.1, CUDA Runtime Version = 9.1, NumDevs = 1 Result = PASS
3.安装cuDNN(针对18.04)
cuDNN 的安装,就是将 cuDNN 包内的文件,拷贝到cuda文件夹中即可。
step.1按照第四点分析的内容,我们需要下载的cuDNN 版本为
cuDNN v7.0.5 library for liunx,下载地址(需要注册才能进行下载)
下载完毕后,切到默认的Downloads文件夹,可以看到 cudnn-9.1-linux-x64-v7.tgz 压缩包
先解压,然后将其中的内容复制到CUDA安装文件夹里面.
step.2 复制cuDNN内容到cuda相关文件夹内
sudo cp cuda/include/cudnn.h /usr/local/cuda/include #注意,解压后的文件夹名称为cuda ,将对应文件复制到 /usr/local中的cuda内 sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
到此处,所以的安装就完成。
接下来就可以安装相应的软件,如:anaconda,pycharm tensorflow 等。。。
Ubuntu16.04环境下的安装:
安装nvdia驱动和cuda:
主要参考了下面这个博客
https://blog.csdn.net/u010837794/article/details/63251725
下面是所有CUDA版本的网页链接
https://developer.nvidia.com/cuda-toolkit-archive
然后cd指令进入/usr/local/cuda/samples,执行下面的命令来build samples
sudo make all -j64
全部编译完成后,cd进
入/usr/local/cuda/samples/bin/x86_64/linux/release,运行deviceQuery
./deviceQuery
如果出现显卡信息,则驱动及显卡安装成功,结果如下:
安装CUDNN:
把cudnn压缩包下载下来后,按照如下步骤安装即可:
1、删除原来的cudnn系统路径下的一些文件
sudo rm -rf /usr/local/cuda/include/cudnn.h sudo rm -rf /usr/local/cuda/lib64/libcudnn* #这里*是通配符,libcudnn*指的是名字中带有libcudnn的所有文件
2、安装刚才解压的cudnn版本,在终端cd到刚解压的cuda文件夹,然后继续输入下面两个指令,这两个指令相当于把解压后的cuda文件夹下的一些文件拷到系统路径下面
sudo cp include/cudnn.h /usr/local/cuda/include/ sudo cp lib64/lib* /usr/local/cuda/lib64/ #这里*是通配符,lib*指的是名字中带有lib的所有文件
3、在系统路径下建立软链接(解压出来的lib64下面有3个so文件。分别是
libcudnn.so 和 libcudnn.so.5以及 libcudnn.so.5.1.3文件。 并且这3个点so文件大小都一样。其实都是软连接!libcudnn.so链接到libcudnn.so.5,而
libcudnn.so.5.又链接到libcudnn.so.5.1.3。 真正的文件只有
libcudnn.so.5.1.3)
cd /usr/local/cuda/lib64 sudo chmod +r libcudnn.so.5.1.10 sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5 sudo ln -sf libcudnn.so.5 libcudnn.so
接下来设置环境变量:
sudo gedit /etc/profile
在打开的文件中加入如下两句话
export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
保存后,使环境变量立即生效,
source /etc/profile
以上是关于Ubuntu18.04安装Nvidia驱动全网不坑,超全步骤(亲测~)的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu18.04 安装 nvidia2080Ti显卡驱动
Ubuntu18.04 安装 nvidia2080Ti显卡驱动