问题描述
最近,各个操作系统针对Intel CPU的Meltdown
(熔断)和Spectre
(幽灵)这两个芯片级的设计漏洞推出了安全补丁。在更新了新的Kernel之后,我们的AI服务器运行的Ubuntu 16.04系统的Linux Kernel升级到了4.13.0-31-generic
。重启之后,发现GPU无法正常使用,出现无法登录系统、分辨率改变等问题,与Ubuntu 16.04安装NVIDIA驱动后循环登录问题中描述的症状一致。初步判断原因是显卡驱动(nvidia driver 387.26
)和新的linux kernel(4.13.0-31-generic
)不兼容导致的。去Nvidia的devtalk逛了一圈,确实很多人报告了这个问题。
- 操作系统:
ubuntu 16.04
- 系统内核:
Linux version 4.13.0-31-generic
- GPU:
GTX 1080
- CUDA:
cuda-9.1
,cudnn-7.0.1
,deb (local)安装方式 - nvidia driver:
nvidia driver 387.26
Nvidia已经更新了驱动,只需要安装新的驱动就可以解决linux kernel和nvidia driver不兼容的问题。不过,devtalk安装的新驱动版本为nvidia driver 390
,在尝试了单独下载该驱动的run文件安装方式和deb (network)安装方式之后,发现前一种安装方式因为著名的nouveau
问题而安装失败,后一种依旧安装387.26版本的驱动,最终放弃了这两种安装方式,采用了第三种PPA的途径。
解决方法
首先,在PPA GPU查看驱动的版本(Current official release: nvidia-387
(387.34)...)
- 卸载现有GPU驱动
$ sudo apt-get remove --purge nvidia-*
$ sudo apt-get autoremove
- PPA安装新的GPU驱动
# 如果没有add-apt-repository命令,安装 software-properties-common即可
$ sudo add-apt-repository ppa:graphics-drivers
$ sudo apt-get update
# 安装新的驱动nvidia-387.34
$ sudo apt-get install nvidia-387
- 重启
- deb (network)的方式安装CUDA 9.1。如果用deb local的安装方式,还是会安装旧的驱动版本。安装好之后,不要忘记设置环境变量。
网友评论