自己在安装以前查阅了很多网上的资料,并没有一一都试,这里重点记录一下自己的安装过程和中间的体会。
查看显卡型号以及适合的驱动程序版本,网上的资料中涉及到好几个命令,主要是下面两个:
lspci | grep -i VGA
或者
sudo lshw -C display
注意这里主要是lspci和lshw这两个命令,后面都是参数用于筛选只跟显卡有关的信息,也可以不要参数,就用这两个命令,然后在一大串输出中自己找,具体的命令详解网上很多,这里就省略啦。
另外,对于lspci命令,由于有些NVIDIA显卡在pci设备信息中不一定会有VGA字样,有可能是3D Controler,所以如果只关心查询NVIDIA显卡型号,可以用这个命令:
lspci | grep -i NVIDIA
进入下面网站查询自己的显卡型号支持的驱动版本
https://www.geforce.cn/drivers
以我自己的为例(740M的老笔记本),最高支持418.74,实际上记住是418就行,小版本号不重要(如果是下载run文件的话,还是要选,一般选最高的吧,我直接用命令安装的,所以没有用到小版本号。
这一步很关键,决定了最终安装的成败以及会不会装完后无限循环登录。
网上说的比较多的方法是修改系统的黑名单配置,有的是新建一个配置文件,有的是直接在现有的blacklist.conf文件里增加,我个人认为应该都可以,具体步骤如下:
ps:网上有些地方说要先修改blacklist.conf文件的权限,另外网上很多命令都是用VI或者VIM去修改,但是估计很多新手用不惯VI,容易出错。我直接用sudo gedit(基本上Ubuntu系统都会预装这个编辑器),也没有先修改权限(反正修改完后又查看了这个文件,确定确实修改成功后才重启的)
a. 修改文件,执行命令:
sudo gedit /etc/modprobe.d/blacklist.conf
打开文件后,在文件末尾加入如下内容:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
网上也有说只用加
blacklist nouveau
和option nouveau modset=0
的,但是之前这样没成功(安装驱动成功但是分辨率无法调整了),后来也没再试具体怎么解决。
b. 更新系统,执行命令:
sudo update-initramfs -u
c. 重启
sudo reboot
d. 确认禁用成功
执行命令
lsmod | grep nouveau
如果没有任何显示,则禁用成功
之前已经查看过,我要装的是418版本的。网上有三种安装方式:1. 命令安装;2.下载run file安装;3.源码编译,一般常见的也是比较简单的是前两种,第二种我试过一次没成功,用第一种成功了,所以也就没再继续研究第2种了。
a. 添加nvidia的PPA源
执行命令
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
b. 安装驱动
执行命令
sudo apt-get install nvidia-418
b2. 有可能需要的步骤(添加并更新软件源)\
我在第二次使用命令安装的时候,遇到了缺少依赖项且依赖项无法安装的情况,我就不列举具体是什么依赖项了,因为每个人情况不一样,我第一次命令安装的时候就没有遇到这个问题
为Ubuntu添加清华的源,执行以下命令打开源文件
sudo gedit /etc/apt/sources.list
在文件最后面加入如下内容
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse\
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
保存之后,运行一下命令sudo apt-get update
更新源,然后再执行上面b步骤的安装命令,就可以成功安装了。
首先,我用上面的方法,没有遇到无限循环登录和分辨率的问题。
安装完后重启系统,在终端查看驱动信息,主要是以下三个命令:
终端显示显卡信息
nvidia-smi
(中间没有空格哦)
启动NVIDIA控制面板(需要在图形界面的终端中执行,服务器版无图形界面的会启动失败)
nvidia-settings
启动后可以看到GPU0的选项,里面会显示详细的显卡信息
查看NVIDIA显卡驱动
cat /proc/driver/nvidia/version
以我自己机器安装cuda10.0为例,各版本应该没啥差别,重点是cuda版本和驱动版本以及显卡型号对应,对应关系官网上有(https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html)。
如果驱动安装没有问题,这一步应该问题都不大了
进入下面网站查找自己需要安装cuda版本
https://developer.nvidia.com/cuda-toolkit-archive
进入对应版本的下载链接后按照需要选择下载的文件。
在终端中打开runfile所在的目录,执行下列命令进行安装
sudo sh cuda_10.0xxxxxx.run
网上很多说要把文件改成可执行权限,然后执行,我个人不太喜欢,直接用SH命令执行啦。
执行后会先出来一堆说明,终端下面显示more(0%),按空格“看完”说明,会弹出来输入选择,输入“accept”开始安装。
期间会有几个选项,别无脑选“y",根据自己需要来。尤其要注意第一个询问是否安装驱动的时候,要选"n",因为我们是先装好驱动再安装的。(网上有直接跳过前面自己装驱动,在这一步直接装驱动的,个人认为也是可以的,但是没有试,这样装驱动同样要先禁用nouveau的哦)
以下是我的选择情况:
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48? (y)es/(n)o/(q)uit: n(这里不要再安装驱动了!!!)
Install the CUDA 10.0 Toolkit?(是否安装CUDA 10 ,这里必须要安装) (y)es/(n)o/(q)uit: y
Enter Toolkit Location(安装路径,使用默认,直接回车就行) [ default is /usr/local/cuda-10.0 ]:
Do you want to install a symbolic link at /usr/local/cuda?(同意创建软链接) (y)es/(n)o/(q)uit: y
Install the CUDA 10.0 Samples? (y)es/(n)o/(q)uit: y
Installing the CUDA Toolkit in /usr/local/cuda-10.0 ...(开始安装)
添加环境变量的命令如下:
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
注意这里cuda的目录路径与名称根据自己的版本和前面安装时设置的目录来写
添加完以后可以用命令env
来查看。
这种方式每次重启以后,环境变量都会还原,所以最好是修改文件,网上有说修改.bashrc文件的,也有说修改profile文件的,我是修改的profile文件。
执行下面命令打开profile文件:
sudo gedit /etc/profile
然后把上面两条添加环境变量的命令加到文件末尾。
最后,运行下面命令查看CUDA版本,显示正常就是安装成功啦
nvcc -V