CaptainChen

Ubuntu下GTX1080显卡驱动折腾小记

最近搞深度学习,给实验室电脑装Ubuntu系统和GTX1080显卡驱动,遇到不少坑,其中最大的问题是装完显卡驱动后开机登录输入密码显示不正确,然后陷入无限循环登录的无解状态。网上教程无数,然而通过本人近两天的逐个测试,其实一个靠谱的解决方案都没有,只能靠自己控制变量法+Google+大胆猜想折腾出解决方案,一路下来真的是十分曲折,无比艰辛。

硬件平台:i7-6700K CPU, GTX1080 GPU, 华硕Z170主板

软件平台: Ubuntu 16.04

先看看网上最流行的3个不靠谱解决方案:

  • 更改/etc/profile环境变量,更改Xauthority文件权限等 链接
  • 显卡驱动.run文件添加–no-opengl-files参数 链接
  • .run文件有bug,改用.deb文件安装 链接

基于我自己和我身边朋友的经历,以上三个方法根本无法解决开机无限登录的问题。

其实当我走完了所有流程后发现,其实出现安装失败,无限重启的根由是:安装独显驱动的时候不要让独显处于被占用状态否则出错。什么叫被占用状态呢?当你把显示器的线( 通过HDMI 或者 DP口)接在独显上,一旦开机图形系统被自动后台启用后,独显就被占用了。

那么解决的方案其实很简单:

  • 对于Intel系列如i7-6700K这样自带集显的CPU,可以通过拔线法配合后面的系统设置附加驱动安装法解决,这样最简单。也就是说,在装N卡驱动前,把显示器连接线一直插在CPU集显口上,驱动装完后再把线接回到独显上。
  • 对于AMD系列CPU,很多都不带集显,显示器的线就只能插在独显口上。这种情况下得能用后文的ppa法或者.run文件法安装驱动,也就是安装驱动时保持关闭系统图形界面,使独显自始至终不被占用。ppa法或者.run文件法是通用方法,适用于所有CPU。

以下是稍详细的方案说明:

1. 安装Ubuntu系统

这里我安装的是Ubuntu16.04系统。若在安装过程中遇到开机黑屏,或者显示器提示频率超出范围,在开机时修改grub设置即可:开机时狂按键盘上的e键,进入grub编辑界面,在quiet splash后面加上nomodeset。

2. 屏蔽开源驱动nouveau

打开终端执行:

1
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

在新增的文件中写入以下内容保存:

1
2
3
4
5
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

然后在终端中执行:

1
2
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
sudo update-initramfs -u

重启电脑

开机后,终端中执行:

1
lsmod | grep nouveau

若无内容输出,则说明nouveau已经屏蔽成功,可以进行下一步操作了,否则仔细检查以上操作有无操作上的失误。

3. 安装N卡驱动

安装驱动的方式有好几种,比如系统设置附加驱动安装法,官方.run文件安装法,ppa法和自行编译法。这里将前三种都大概讲一下,根据情况任选其一即可。

3.1 系统设置附加驱动安装法

注意:这种方法仅适用于拔线法,不适用于没有集显的CPU使用。因为这种方法是在图形界面里执行的,而没有集显口可用的情况下,独显是一直被占用的。

在系统设置里面更新软件源缓存列表后,在附加驱动里面勾选类似于Nvidia-387字样的私有驱动进行安装,装完重启电脑即可。

这一步若遇到安装N卡驱动时进度条一直卡在最后走不满的情况,可进终端用top指令查看是什么进程在占用CPU。若是aptd进程长时间占用100%CPU,在系统设置里面关闭所有系统更新相关的设置即可解决。

3.2 ppa安装法

ctrl+alt+F1进入文本模式:

关闭图形界面:

1
sudo /etc/init.d/lightdm stop

添加ppa源并更新缓存:

1
2
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

安装驱动:

1
sudo apt-get install nvidia-xxx  # xxx是版本号,这里按tab选择版本即可

重启电脑或重新打开图形界面(sudo /etc/init.d/lightdm start, 然后 ctrl alt F6进入图形界面)

3.3 run文件安装法

先去官网下载对应的驱动.run文件,然后按照ppa法关闭图形环境,在文本模式输入:

1
2
chmod a+x a.run  # a.run为驱动文件
sudo sh ./a.run

装完重启或者重新打开图形界面。

3.4 出错重来

如果操作过程中发现安装出错了要重新装驱动,首先得卸载驱动残余,再重新安装驱动:

1
2
3
sudo apt-get remove --purge nvidia*
sudo apt-get autoremove
sudo reboot

注: .run文件安装的驱动最好上面卸载可能不干净,最好先执行: sudo /usr/bin/nvidia-uninstall

3.5 装完检查

上述几种方法安装完驱动后,开机进入系统,屏幕右上角点击关于此计算机,图形一栏应该会显示这是NVIDIA的显卡,说明独显驱动已安装成功。若仍然显示为Intel集显,可尝试手动切换到独显:

1
sudo prime-select nvidia

这时再输入指令:

1
prime-select query

若显示nvidia说明已切换到独显,但是要重启才能生效。

如果这一步仍然失败,一定是前面哪一步出错了。

4. 对于华硕主板配合拔线法安装的说明

在拔线法的情况下,安装N卡独显驱动前,需要把显示器线接在集显口上。然而某些华硕主板设置是默认关闭集显的,因此要先在主板设置中将其打开并暂时将优先级设为最高,再插线到集显接口,否则该接口无法使用。

更改方法:

开机时进入BIOS设置,依次进入Advanced—>System Agent Configuration—>Graphics Configuration中,将iGPU设为开启,然后Primary Display设为IGFX,保存重启。再把视频线接到主板上CPU那儿的集显接口上,开机进入Ubuntu系统。

根据第3部分教程安装完独显驱动后,再把显示器线接到独显口上,这是再去主板中启用独显:

上一步的步骤中把Primary Display设置为PCIE或者Auto

5. 总结

总结起来一句话:给独显装驱动的时候,不要占用独显。凡是线插在独显口,又进入 GUI 图形界面操作的,一定失败!

觉得文章不错,就赏我一杯咖啡钱吧~