在ubuntu安装NVIDIA驱动是安装Tensorflow中的第一步,比较容易出乱子。指不定哪错了就把ubuntu系统整崩了(卡在开机界面,无法进入图形界面等等)。这里将我自己在ubuntu18.04安装NVIDIA显卡驱动的过程记录下来。给遇到情形跟我一样的人一些参考。
首先要安装显卡驱动必须是物理机,虚拟机无法安装NVIDIA显卡驱动
在终端输入:
# ubuntu-drivers devices
可以看到我的显卡型号三GeForce GTX 1060 ,推荐下载的显卡驱动三390和430。
选择手动方式安装驱动的话可以从英伟达官网进行下载。
由于笔者使用的是laptop,所以下载的Notebooks版的10系显卡驱动。
选择版本进行下载即可,怕新版有问题的话可以下载稍微旧点的版本,不过显卡驱动版本太低的话无法安装新版CUDA。这里贴出CUDA版本和显卡驱动版本的对应关系:
1> 卸载已经安装了的nvidia驱动(一般之前没装过的话,也没有nvidia驱动可以卸载)
# sudo apt-get purge nvidia*
2> 禁用自带nouveau驱动
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
没有vim的先安装vim
sudo apt-get install vim
打开文件后写入:
blacklist nouveau
options nouveau modeset=0
然后更新一下:
sudo update-initramfs -u
如果更新失败,文件里写:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
更新成功后,重启计算机后输入命令:
lsmod | grep nouveau
没有输出任何东西,说明nouveau禁用成功(一般禁用成功后在本次开机时电脑分辨率会变化,很容易分辨)。
1> 首先需要安装lightdm,主要是用来关闭启动图形界面用,也可以用别的命令。
sudo apt-get install lightdm
2> 在命令行输入int 3(中间有空格的),然后Crtl + Alt + F1输入用户名和密码后进入命令行。
3> 关闭x-Window(不关闭的话驱动无法正常安装)
sudo service lightdm stop
4> 安装NVIDIA驱动
进入到下载的显卡驱动的路径下
chmod 777 NVIDIA.run
sudo ./NVIDIA.run
接下来是比较关键的步骤
我这个电脑驱动和Tensorflow都装好了,所以接下来就不再做图片展示了 - -
点击安装后,首先会出现一个对话框:
The distribution-provided pre-install script failed!Are you sure you want to continue?
这里选择CONTINUE INSTALLATION
能选继续安装的就选继续安装
如果出现是否使用dkms这里选NO,在secure boot下使用dkms会导致无法开机。
之后会提示:
The signedd kernel module failed to load.
这里选择Install signed Kernel module,来为内核模块签名。
之后会提示是沟为内核模块签名(sign the Kennel module),这里选是。
接下来会继续问使用已有密钥给模块签名还是重新生成密钥,这里选生成新的密钥。
之后会告诉你密钥所在的位置,这个最好记录下来吧,虽然基本上都是在/usr/share/nvidia/下生成一个.der格式的私钥以及一个.key格式的公钥文件。
接下来会询问,是否删除密钥,选择否(一会还要用,非常关键)。
继续安装,会提示无法启动模块,这是因为密钥还没添加到内核的信任库中
通过下面命令添加密钥到内核的信任库:
# mokutil --import /usr/share/nvidia/nvidia.xxxxxxxxx.der
接下来会提示输入密码,我不知道这里让输入的是定义密码还是root密码,保险起见输root密码吧。两次输入密码后reboot重启电脑。
因为进行了添加密钥的操作,会触发shim,按任意建后会出现一个选项卡
选择Enroll MOK,然后确认添加,之后输入之前输入的密码,然后启动Ubuntu后会发现分辨率变正常了。
在终端输入nvidia-smi验证是否安装成功。