前言
前段时间,配置实验室新服务器上的Tesla P4,结果一直有问题,最后终于解决之后。昨天晚上想在自己的笔记本上安装pytorch,sudo apt-get update的时候,结果提示系统缺少一些包,然后用 sudo apt-get -f install 的时候,系统居然把好多包自己卸载到了,郁闷。这个命令:-f 参数的主要作用是是修复依赖关系(depends),假如用户的系统上有某个package不满足依赖条件,这个命令就会自动修复,安装程序包所依赖的包,结果为什么会把系统直接破坏了,而且是第二次遇到这样的情况了。
查了一下,发现其他人也遇到过这样的情况,有兴趣的可以看看这个帖子:求助:用了apt-get install -f命令系统很多东西被删除了 ,但是还是没有好的解决方法,以后还是少用这个命令吧,第二次跌跟头了,吃一堑长一智吧。
在笔记本上重新安装GeForce 840M的驱动时候,由于Acer 这款笔记本的缘故,安装起来费时费力,第一次安装的时候没有记录,结果这次又搞了半天,随记录下来,希望下次不会用到,也希望能帮助到其他人。
正文
1. 关闭笔记本的Secure Boot
在电脑开机的时候按 F2 进入 BIOS,关闭Secure Boot。一般预装了Windows 8 的系统要求Secure Boot,但是安装nvidia的驱动的时候因为要操作底层的硬件,所以需要关闭这个,设置成disable。
如果发现不能修改的,就要先设置密码,设置BIOS的密码,然后再关闭Secure Boot。
我试过在开启Secure Boot的时候,在Ubuntu系统中安装nvidia显卡的驱动,一直会提示由于UEFI模式的关系,安装不上。然后我关闭Secure Boot之后,安装了nvidia显卡驱动,并测试成功了,然后关机重启的时候设置开启Secure Boot,结果开机进入Ubuntu之后,nvidia-smi 测试显卡驱动就失败了,然后又关机重启,关闭Secure Boot,结果又好了。
2. 安装GeForce 840M nvidia 驱动过程中遇到的问题
1)安装完nvidia驱动后,重启在Ubuntu的登录界面一直循环,进不去系统
这个问题,应该是由于在安装nvidia驱动的时候,驱动里面的OpenGL文件与Ubuntu系统中自带的OpenGL文件冲突造成的。
解决方案:在安装驱动的时候,用 run 版本的驱动,然后在输入的时候输入参数 --no-opengl-files ,具体实现指令下面给细说。
2)不单独安装nvidia驱动,直接安装 CUDA,测试成功并通过,但是重启的时候也在Ubuntu的登录界面一直循环,进不去系统
这个问题,是因为在安装 CUDA 的时候,CUDA 会自动安装一系列的显卡驱动,结果在安装nvidia驱动的时候,驱动里面的OpenGL文件与Ubuntu系统中自带的OpenGL文件冲突造成的。
解决方案:第一步,单独安装 run 版本的nvidia显卡驱动,然后在输入的时候输入参数 --no-opengl-files 。
第二步,安装 CUDA 的时候也用 run 版本的,然后安装的时候不要安装驱动,具体实现指令下面给细说。
3.具体的实现指令
上面各种问题的具体解决方案,可以看这里:
【亲测】Ubuntu16.04手动安装nvidia显卡驱动+CUDA 8.0--联想服务器版(之一)
【亲测】Ubuntu16.04手动安装nvidia显卡驱动+CUDA 8.0--联想服务器版(之二)
总的来说,Acer 笔记本版与服务器版的区别在于,由于我的Acer笔记本是安装的 Windows8.1 与Ubuntu 16.04 的双系统,所以在Acer 的Ubuntu16.04中安装nvidia 驱动与CUDA的时候,需要事先关闭Secure Boot ,才能进行剩下的操作。