ubuntu16.04+gtx1070驱动安装

ubuntu16.04+gtx1070驱动安装

之前我的博客里有讲过驱动安装,那时候是Ubuntu14.04安装好系统后,图形化界面无法显示,也是驱动问题,可能是安装系统的时候自带的驱动有问题,所以我安装了一个新的驱动替代了系统自带的驱动。

由于特殊原因,系统崩了。没办法所以我也装了14.04,但是这时候我还是那个问题,但是我用原来的那个NVIDIA-Linux-x86_64-384.90.run版本的驱动居然搞不定。

所以我直接装了Ubuntu16.04的系统,有图形化的界面。但是我们要做深度学习,所以去英伟达官网,再去匹配一次驱动。如下

NVIDIA-Linux-x86_64-390.42.run

为了给大家省时间,可以直接看标明的绿色字体,就是输入命

令,可以跳过介绍性的内容。


总结起来就是以下4步骤:

1.下载对应显卡的合适新驱动。

2.卸载你之前的安装失败的新驱动和系统自带的驱动。

3.关闭启动系统自带驱动的程序,否则会报错。

4.安装新驱动。

前面3步都在为第4步做准备。


1。下载驱动

现在讲到底怎么装驱动!网上有ppa方法,我没用,先点击下面的链接

http://www.geforce.cn/drivers

ubuntu16.04+gtx1070驱动安装

点击搜索,会自动帮你匹配好对应的驱动的。下载即可

将英伟达官网下载好.run文件,把它放到home目录下(因为其它文件是系统的,所以我们一般自己的文件建议都放在home目录下),名字修改成比较简单的,比如NVIDIA.run。


2.卸载已有的驱动


一 。  如果你的Ubuntu前面装过新的驱动,如果失败了,就先卸载你失败的驱动。没有的话这步可以跳过。

先进入你Ubuntu放的驱动的目录下,再输入下面命令:NVIDIA.run是你前面安装过新的驱动名称(我嫌太长,改了驱动名字)

输入 sudo ./NVIDIA.run  -uninstall


二。   卸载系统自带的驱动,没安装过也可以运行一下,确保没有障碍。但是据了解这一步可以不用做的,因为你在后面安装新的驱动的时候,系统还是会帮你卸载的,但我执行这个命令的时候报错了,可能被我弄没了,我根本没管了,直接跳过去下一步了。但是这一步建议做一次,最近我又装了一次驱动,结果这一步显示好多东西出来了,所以还是要做一次。

输入 sudo apt-get autoremove --purge nvidia-*  


3.禁用系统自带驱动nouveau,


一。   网上有说用blacklist.conf进行禁用,我试过也可以禁用nouveau,但是后面老是失败(ubuntu16.04),其实现在想来应该也是对的。只是最后干货那里没搞定而已。

因此用另一种简单暴力的,直接移除,为了保险起见就是备份后删除(我自己找到那个文件夹,直接把

原来的文件 nouveau.ko 改成nouveau.ko.org,那样这个文件就不存在了,我们就是要这个文件不起作用,才能真正禁用nouveau驱动)。这个大家可以放心的改,因为你要想装好你的驱动,就得禁用nouveau驱动,反正后面你成功了也不用它的。所以可以放心做。

输入 cd /lib/modules 

输入 ls

会显示4.13.0-37-generic,4.13.0-36-generic,我们目标是最新的那个版本,每个人可能不同,记得下面输入选择自己电脑上最新的那个版本号就行了

输入 sudo mv /lib/modules/4.13.0-37-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko /lib/modules/4.13.0-37-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko.org


红字标注的文件夹可能有不同版本,请自行查看(modules文件夹下有两个不同的generic,那个最新是正确的,4.13.0-37-generic,4.13.0-36-generic,当时我有这2个。我选择最新的那个了,其实常识也知道我们一般软件升级了,那些老版本的文件还是存在的,所以同样道理,真正有用的是最新4.13.0-37-generic的那个文件。其二,我也确实看到了我的版本提示是最新4.13.0-37-generic的那个文件,就是刚才说的加入blacklist.conf里面写一下文件加入黑名单,那里有好多版本的写法,我不确定哪种可行,所以我选择上面的方法,亲测有效。就是改完blacklist.conf 后  输入 sudo update-initramfs -u,表示刷新文件,那时候窗口里有输出4.13.0-37-generic字样,所以通过此2点,我断定我们一般进入modules文件夹下,选择最新的那个modules文件夹下最新的那个文件夹作为名字)


二。     更新你刚才的改动操作。

输入 sudo update-initramfs -u


三。      可以查看是否屏蔽成功,没有任何输出即为成功

输入 lsmod | grep nouveau



四。    上面第三步没有任何输出显示,此第四步就可以跳过。    有人说输入 sudo reboot 重启系统。你前面没有任何输出就已经成功了,其实这一步是不要做的,我没做。后面我安装第2次,也没重启,只要没有任何显示输出,就表示系统的nouveau驱动禁止成功。如果有输出,表示你禁止失败。你应该检查前面那几步,可以在输入下面的:

输入 cd  /lib/modules/4.13.0-37-generic/kernel/drivers/gpu/drm/nouveau

输入 ls

红色的是你电脑里文件名字,进去找 nouveau.ko.org,有的话,你再输入

lsmod | grep nouveau

可以查看是否屏蔽成功,没有任何输出即为成功。这一步真的要做到,否则往下面做肯定失败的,相信我。


4.开始安装


网上都说安装驱动要关闭xwindow,笔者这里ubuntu16.04没有关闭,亲测安装成

。第二次安装我也没做也是OK的。

直接打开一个终端,或者按住 ctrl +alt +f1进入命令窗口。刚才前面说的重启,一般你

重启你电脑看不到图像界面。你先不管,按住 ctrl +alt +f1进入命令窗口。等下最后有

方法解决的。

这也是我前面说我没重启的原因,我自己就试过这个坑,只要你把nouveau驱动禁止成功了就好,也就是grep查找操作,没有输出,那就说明禁止成功,重启与否不重要。

进入你刚才run驱动放的目录下,输入

$sudo chmod a+x 驱动名字.run

$sudo ./驱动名字.run -no-x-check -no-nouveau-check -no-opengl-files


好了以上其实只是把英伟达的驱动外壳给装上了,真正难点在下面操作,英伟达的核心

模型安装要在下面安装步骤成功了,你的驱动才是真正安装好了。我

就是这里坑了2天啊,就是装系统,装驱动。最终任督二脉

终于打通了。才安装成功的。


干货开始了:


建议大家反复看几遍,按着我的要求做保证大家一次搞定的。我在这里失败,就是网上资料太少了,

搞了2天。还一个,就是大家看到人家的英语提示建议耐心的看懂再去操作啊,凡是它显示写的是

对xxxxx有好处的,建议大家选择 是。 你不要对着干,否则可能就又失败了。下面的内容也是

对英文的简单翻译写的,所以说大家要认真看懂自己电脑上的提示内容,

看我下面的内容一一对应来操作。


以下照片是手机拍照留下的,为了保存下来不容易啊,各位看客


分辨率有点差,见谅,见谅。


执行完上面的驱动安装,等一会,系统会自动跳出

ubuntu16.04+gtx1070驱动安装

开始会提示一个fail 。。。。。,不用理会,直接continue to install 就行,这里要提醒各位,

一定要看好了,一旦你有一步出错了,恭喜你就得从我的开头那里再来一次了。没办法,

不能返回操作。所以只能重新开始的。

这里有2种按钮,都是红底的按钮,有一个是中间有白色的底色,另个按钮是底色全是通红,常识也知道,

全红的往往相当于 否 的意思,那个中间白色的按钮才是我们的要选择的,切记。按住左右方向键选择。


ubuntu16.04+gtx1070驱动安装


      安装过程中提示是否sign the kernel module(为内核模块签名),这里要选择“sign  the kernel module”


ubuntu16.04+gtx1070驱动安装  

接下来会继续问使用已有的**给模块签名 还是 重新生成

这里 选 重新生成** genera a new one ,我试过用已有的,结果悲剧了,人家让我输入秘钥,

但是我没有秘钥啊,卡在这没办法,从头开始吧。所以要重新生成秘钥。


ubuntu16.04+gtx1070驱动安装

继续下去之后,**会在/usr/share/nvidia/下生成一个nvidia*.der(私钥)文件和

nvidia*.key(公钥)文件,当提示是否删除已生成的**文件时,选择 否

因为之后要用到这两个文件。这里我也试过选择删除,结果又失败了,又重新开始。

ubuntu16.04+gtx1070驱动安装

看人家意思大概是有好处的意思,所以这里选OK,其实也没得其他选No啊,哈哈

ubuntu16.04+gtx1070驱动安装

它这里提示说生成的秘钥不被人家信任,没办法,还是要装啊,所以还是选择 install signed kerrel module

安装签署的内核模型

ubuntu16.04+gtx1070驱动安装

选择OK

ubuntu16.04+gtx1070驱动安装

然后提示要不要安装32位兼容库选 OK

ubuntu16.04+gtx1070驱动安装

Would you like to run the nvidia-xconfig utility to automatically update

your X configuration file…”什么的选 yes

ubuntu16.04+gtx1070驱动安装

以上的操作完了,等待提示,会说动驱动安装完成了。那表示恭喜你完成一半了


系统好像会提示你重启电脑,你重启就是,即使没有提示,你也要重启一下。


记住开机之后,按ctrl + alt +f1 进入命令窗口。不要等着电脑去图形化的界面,在那里终端的时候。


进了命令行窗口了,开始

输入 sudo /etc/init.d/lightdm start      //打开图形界面

或者看这篇教程来

http://blog.163.com/chenchen..1986/blog/static/76063146201792151554722/

就可以恢复图形化的界面。


输入 nvidia-smi

#若列出GPU的信息列表格,上面有你的驱动名字,驱动版本名字,显卡名字等。

表示驱动安装成功。

若没有,请继续

往下学习,哈哈


很不幸我的没有,它提示我的nvidia-smi无法和我驱动conmunicate,说什么请确认你的驱动

是安装成功或者正在运行。吐血啊,前面明明成功的,为啥还有这个错啊!所以进入命令

窗口就有详细提示了,人家说我的的秘钥没有被信任,所以我们干货那里安装驱动内核模块,

要我们的秘钥,这里派上用场了,就是这个bug,坑死人了。


==============================================

按ctrl + alt +f1 进入命令窗口

输入 nvidia-smi

ubuntu16.04+gtx1070驱动安装

命令窗口提示了具体出错的原因。

进入命令窗口

继续输入 sudo mokutil --import /usr/share/nvidia/nvida*.der    //必须加上 sudo

ubuntu16.04+gtx1070驱动安装

接下来提示输入密码,再次输入密码,然后  sudo  reboot / /重启电脑


由于进行了添加**操作,会触发shim,这时不能直接进入 boot,进入一个

陌生的界面,不要慌,有10秒时间,按住方向键的向下键(它不会显示内容,

安键才有内容),选择第二个

“ reroll mok ” ,会跳出

ubuntu16.04+gtx1070驱动安装
选择continue 。点击第二个continue按钮,点了第一个也没关系,看秘钥,

按enter键会进入上一个操作,或者按Esc会返回上一级操作的。



然后还有一个页面跳出,我选的是 yes


再一次提示输入开机密码

ubuntu16.04+gtx1070驱动安装

输入 开机的密码 来导入**。

跳出新页面,这时候选第一个reboot重启电脑,或者自己重启电脑一下。

一切搞定,


OK了。



最后好了重启开机,输入
nvidia-smi #若列出GPU的信息列表格,上面有你的驱动名字,驱动版本名字,显卡名字等待。表示驱动安装成功。

ubuntu16.04+gtx1070驱动安装


至此我的干货都交出来了,也参考了一些链接

https://www.cnblogs.com/marky/p/8243607.html

http://blog.chinaunix.net/uid-20758579-id-1876839.html

https://blog.csdn.net/zhangrelay/article/details/54670913

https://blog.csdn.net/fdqw_sph/article/details/78745375

https://blog.csdn.net/tianrolin/article/details/52830422

https://blog.csdn.net/cosmoshua/article/details/76644029

https://blog.csdn.net/android_chunhui/article/details/78145498?utm_source=debugrun&utm_medium=referral

http://blog.163.com/chenchen..1986/blog/static/76063146201792151554722/