Nvidia 1050 ubuntu16.04 黑屏解决,CUDA+cudnn安装



笔记本: cpu G4560, 显卡1050

黑屏解决

安装以前下的ubuntu16.04.2能正常启动,更新后重启发现黑屏了。。。wtf?
重新去官网下了最新的ubuntu16.04.3,安装都进不去直接黑屏卡住了。。。

网上查了下,大概就是因为显卡驱动的原因。ubuntu自带的nvidia驱动是开源nouveau,没有官网闭源的好使。

解决:
在grub启动界面,选择启动项按e,进去后找到 “quite splash”,改为 “quite splash nomodeset”,不管是安装ubuntu时,还是安装完启动不了改完后都可以进去。

nomodeset作用
The newest kernels have moved the video mode setting into the kernel. So all the programming of the hardware specific clock rates and registers on the video card happen in the kernel rather than in the X driver when the X server starts.. This makes it possible to have high resolution nice looking splash (boot) screens and flicker free transitions from boot splash to login screen. Unfortunately, on some cards this doesnt work properly and you end up with a black screen. Adding the nomodeset parameter instructs the kernel to not load video drivers and use BIOS modes instead until X is loaded.
最新的内核已经把视频模式设置嵌入内核中,所以所有显卡硬件程序的指定时钟和寄存器当图形服务器启动时在内核进行而不是图形设备运行,这使得我们在启动时可以看到不闪的和高分辨率的好看的启动界面,但是,在某些视频卡它不能正常工作而现实黑屏,增加nomodeset参数则告诉内核不要加载显卡而用BIOS模式直到图形界面运行

安装ubuntu

  • ubuntu16.04.3安装时就黑屏。在进去grub选择install ubuntu时,先按e,添加nomodeset后F10启动就能进去安装。
  • 安装完ubuntu后重启大概还是黑屏,添加nomodeset后能启动。

Nvidia驱动

看到网上很多直接去官网下.run驱动,然后禁止nouveau,再安装Nvidia驱动,感觉太麻烦了。
直接在ubuntu的附加驱动那里安装就可以。

这里写图片描述

安装完重启打开NVIDIA X Server Settings,设置nvidia显卡。
这里写图片描述

最后在系统设置里看到显卡。
这里写图片描述

CUDA

顺手把cuda也安装了。

https://developer.nvidia.com/cuda-toolkit下载CUDA文件
install file选择 runfile
选择deb会把驱动也安装一遍,runfile可以选择是否要安驱动。
这里写图片描述

输入

 chmode +x cuda_8.0.61_375.26_linux.run
 sudo ./cuda_8.0.61_375.26_linux.run

按着提示yes or no,不要安装驱动,samples安上可以用来测试。
cuda默认安装在 /user/locak/cuda
sample安装在 /home/NVIDIA_CUDA-8.0_Samples

安装完后还要安装opengl,否则回找不到.h和.lib。

sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev    安装OpenGL Library
sudo apt-get install libglu1-mesa-dev   安装OpenGL Utilities
sudo apt-get install freeglut3-dev      安装OpenGL Utility Toolkit

OpenGL Utilities 是一组建构于 OpenGL Library 之上的工具组,提供许多很方便的函式,使 OpenGL 更强大且更容易使用。
OpenGL Utility Toolkit 是建立在 OpenGL Utilities 上面的工具箱,除了强化了 OpenGL Utilities 的不足之外,也增加了 OpenGL 对于视窗介面支援。

安装完后在NVIDIA_CUDA-8.0_Samples目录下make,编译成功后去运行deviceQuery
这里写图片描述

补充

后来想切集显时,NVIDIA X Server Settings设置后重启,结果黑屏了。。。

进入nomodeset把附加驱动改回nouveau重启就可以。但此时官方驱动没有启动,无法设置回独立显卡。只能通过命令切换。

sudo prime-select intel     切集显

sudo prime-select nvidia    切独显

附加改回nviadia驱动重启后正常。

感觉用集显时,配nouveau; 独显时要配nvidia才可以,什么鬼。。。

好了,没办法随意切换显卡,绝望。


2018.01.11

显卡驱动和cuda版本不一致

更新完系统后发现cuda的版本和驱动版本不一致。。。
CUDA Driver Version / Runtime Version 9.0 / 8.0

显卡驱动原本时37x更新到384,导致版本不一致,重新安装cuda,顺便把cudnn安上。

删除低版本驱动

先把低版本的驱动完全删除。

$dpkg --get-selections |grep nvidia*

明显可以看出有2个驱动在里面

$sudo dpkg -P nvidia-xxx

安装cuda,cudnn

去官网下对应版本的cuda和cudnn,官网在维护,找到了下面的链接能下:
https://developer.nvidia.com/cuda-toolkit-archive
https://developer.nvidia.com/rdp/cudnn-download

cuda方法和上面一样,用run文件安装,选不安装显卡驱动。

cudnn用deb文件安装,下载3个deb文件
libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb
libcudnn7-dev_7.0.5.15-1+cuda9.0_amd64.deb
libcudnn7-doc_7.0.5.15-1+cuda9.0_amd64.deb

$sudo dpkg -i libcudnn7_7.0.3.11-1+cuda9.0_amd64.deb
$sudo dpkg -i libcudnn7-dev_7.0.3.11-1+cuda9.0_amd64.deb
$sudo dpkg -i libcudnn7-doc_7.0.3.11-1+cuda9.0_amd64.deb

测试
第3个包里面包含测试例子

$cp -r /usr/src/cudnn_samples_v7/ $HOME
$ cd  $HOME/cudnn_samples_v7/mnistCUDNN
$make clean && make
$ ./mnistCUDNN

报错:libcudart.so.9.0: cannot open shared object file: No such file or directory

动态库目录没有添加,cuda库目录在/usr/local/cuda/lib64,不在默认的/lib/usr/lib中。

  1. 打开/etc/ld.so.conf文件,添加/usr/local/cuda/lib64路径;
  2. 运行sudo ldconfig

在次运行

$./mnistCUDNN
......
......
Test passed!

安装成功