补充:这篇博文目前是整理的结果,之前安装了384,但是之前电脑卡死次数太多,强制重启后,突然驱动就没有了,扩展屏幕也用不了,因此,又一次尝试了各种方法, 附加了一些疑难杂症,具体可以参考下面的步骤;
我第一次安装是用apt-get安装了NVIDIA-384 /NVIDIA-430 , 第二次是自己从官网下载.run文件进行安装, 目前比较喜欢第二种方法,可控性强一点;
背景: UBUNTU16.04 +NVIDIA-384
安装过程比较艰辛,参考了很多人的博客,中间走了一些弯路,下面主要将大家的方法分为两类:
1. 使用apt-get 安装的方法
2. 使用官网下载 .run 文件安装的方法
前提:去Nvidia官网下载自己需要的驱动版本, 比如我的是1050TI, 下载了对应的430.run文件;这一步需要提前做好的;
我两种方法都试了,先用第一种没成功,又尝试了第二种,也没成功,后面又重新安装第一种,成功。
所以,下面的方法总结是按照apt-get的安装方法,如果想用.run文件安装的,我的博客不具有参考价值:
第一步: 查看显卡信息
lspci | grep VGA
第二步:删除原有驱动,如果你之前有安装过的话:
sudo apt-get remove --purge nvidia*
sudo apt-get autoremove
安装依赖:
sudo apt-get install build-essential gcc-multilib dkms
这些依赖有可能我们已经安转,执行只是为了确认;
第三步: 禁用nouveau驱动:
编辑 /etc/modprobe.d/blacklist-nouveau.conf 文件,使用sudo vim /etc/modprobe.d/blacklist-nouveau.conf 命令,因为只有sudo才能够保存最后的修改
添加以下内容:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
然后wq保存,关闭nouveau:
下面这一步具体的功能不清楚,但是代码的意思就是将 options nouveau modeset=0 写入到文件/etc/modprobe.d/nouveau-kms.conf中; 所以可以去/etc/modprobe.d/nouveau-kms.conf文件中查看,是否执行成功;
(命令tee是用来进行重定向,就是将 | 前面的命令的执行结果 重定向 输入到 tee 后面指定的文件中)
$ echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
第四步: 重启
sudo update-initramfs -u
sudo reboot
第五步: 获取kernelsource(非常重要):
sudo apt-get install linux-source
sudo apt-get install linux-headers-xxx x-x-generic
其中x.x.x-x-generic可以通过$(uname -r)替换得到
第六步:关掉显示服务
sudo systemctl stop lightdm(or sudo service lightdm stop)
sudo systemctl stop gdm
sudo systemctl stop kdm
这里需要注意,执行sudo systemctl stop lightdm 之后有可能电脑黑屏后,只有一个光标显示,或者出现一些其他的非正常界面的状态,这时候可以Ctrl+Alt+F1进入命令行状态, 执行接下来两条;
我在执行关闭gdm,kdm之后都显示Failed, 这种情况属于正常,接着往下走就可以;
到这一步就都是非图像化界面,命令行的状态,接下来就可以安装了
第七步:安装nvidia
如果使用源来安装可以执行下面的命令
sudo apt-get install nvidia-430
sudo apt-get install nvidia-430-dev
这里重点说一下使用.run文件安装
sudo chmod 666 NVIDIA-Linux-x86_64-430.34.run
sh ./NVIDIA-Linux-x86_64-430.34.run –no-x-check -no-nouveau-check -no-opengl-files
执行这一步会收到很多提示:
问题1:The distribution-provided pre-install script failed! Are you sure you want to continue?
选择 yes继续。
问题2:Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?
选择 No 继续。
问题3:Nvidia's 32-bit compatibility libraries?
选择 No 继续。
问题4:Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.
选择Yes继续
上面这种情况是比较顺利的情况, 也会有不顺利的时候,就是执行问题2之后报错,
报错1:The target kernel has CONFIG_MODULE_SIG set, which means that it support ------ from a trusted key. This system has UEFI Secure Boot enabled; many distributions enforce module signature verification on UEFI systems when Secure Boot is on;....
大致的意思就是我们的安全启动还处于打开的状态, 这时候需要将其关闭; 这里说两种关闭SecureBoot的办法:
第一种: 正常进入BIOS模式, 在系统设置中找到安全启动,也就是SecureBoot 将其关闭即可;
第二种: 用Mok管理工具,禁用 shim->grub2 这一步之后的校验就行了
sudo apt-get install mokutil
sudo mokutil --disable-validation
执行上面的代码,需要输入一个至少八位的密码, 我输入12345678, 然后执行reboot重启电脑,会收到需要确认密码的状态,这时候就输入数字对应的密码即可, 比如让我输入第3位, 我就输入3;
接下来就进入到了Mok管理界面,在这个界面,将SecureBoot设置为NO即可;
第二种方法到这里按理说就结束了,但是不清楚我自己是操作有误,还是不同电脑的状态不同, 这时候进入了BIOS界面(蓝色白色相间)和Ubuntu界面(紫红色界面,需要选择Ubuntu版本)的循环模式;
这时候一定要淡定,冷静!!按照BIOS界面的提示, 按F10进入传统的BIOS模式, 回到第一种方法,找到SecureBoot关闭即可;
关闭之后,再重新回到第六步,关闭显示界面, 重新安装驱动,没有意外的话,这次应该会有正常的第七步的提示;
第八步:挂载驱动:
modprobe nvidia
到这一步其实就可以执行 nvidia-smi进行检测了, 看自己是否安装成功,如果有什么问题,也可以执行下面的附加步骤,进行重新启动;
附加步骤: last but not least!!!!
我最开始执行完上一步之后,直接用nvidia-smi去查询驱动信息,但是显示结果时command not found, 所以才会又从官网下载.run文件安装,但是安装失败后,又添加下面代码就成功 :
sudo apt-get update
sudo apt-get upgrade
然后重启。
使用nvidia-smi查询信息,如果显示如下,则说明安装成功:
本文同步分享在 博客“莫奈的三轮车”(CSDN)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。