安装显卡驱动避免无法登录
避免sudo apt-get install nvidia-*安装方式造成登录界面循环。
- ubuntu 16.04默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。
编辑文件blacklist.conf
sudo vim /etc/modprobe.d/blacklist.conf
若未安装vim则sudo apt-get install vim安装或使用vi
在文件最后部分插入以下两行内容
blacklist nouveau
options nouveau modeset=0
更新系统
sudo update-initramfs -u
重启系统(一定要重启)
验证nouveau是否已禁用
lsmod | grep nouveau
没有信息显示,说明nouveau已被禁用,接下来可以安装nvidia的显卡驱动。
2. 在英伟达的官网上查找你自己电脑的显卡型号然后下载相应的驱动。网址:http://www.nvidia.cn/page/home.html
我下载的版本:NVIDIA-Linux-x86_64-396.18.run(注意不同的版本最后安装执行的具体选项不同)
下载后的run文件拷贝至home目录下。
- 在ubuntu下按ctrl+alt+f1进入命令行界面,
然后在命令行界面下输入:
sudo service lightdm stop //这个是关闭图形界面,不执行会出错。
然后卸载掉原有驱动:
sudo apt-get remove nvidia-* (若安装过其他版本或其他方式安装过驱动执行此项)
给驱动run文件赋予执行权限:
sudo chmod a+x NVIDIA-Linux-x86_64-396.18.run
安装:
sudo ./NVIDIA-Linux-x86_64-396.18.run -no-x-check -no-nouveau-check -no-opengl-files //只有禁用opengl这样安装才不会出现循环登陆的问题
-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件
挂载Nvidia驱动:
modprobe nvidia
检查驱动是否安装成功:
nvidia-smi
如果出现显卡信息提示,则说明安装成功。
sudo reboot 重启
第1步 安装依赖包
安装后续步骤或环境必需的依赖包,依次输入以下命令:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install git cmake build-essential
第二步配置文件(老显卡可以省略安装驱动步骤)
1、打开blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf
2、在blacklist.conf文件最后部分插入以下两行内容
blacklist nouveau
options nouveau modeset=0
3、更新系统
sudo update-initramfs -u
4、重启系统(一定要重启)
sudo reboot
5、验证nouveau是否已禁用
lsmod | grep nouveau
6、修改启动文件
sudo gedit ~/.bashrc
最后一行加入如下命令:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
source ~/.bashrc
7,配置环境变量,运行如下命令打开profile文件
sudo gedit /etc/profile
打开文件后在文件末尾添加路径,也就是安装目录,命令如下:
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda-9.0
保存,然后重启电脑
sudo reboot
第三步 安装cuda
https://developer.nvidia.com/cuda-downloads
下载的CUDA中包含有 nvidia 显卡驱动,故此步骤 CUDA 的安装包括了 nvidia 显卡驱动的安装,此时注意你是否已经安装过 nvidia 显卡驱动,若无法保证已安装的 nvidia 显卡驱动一定正确,那就卸载掉之前安装的 nvidia 显卡驱动(卸载方法链接),然后开始安装 CUDA ;若可以保证已安装正确的 nvidia 显卡驱动,则直接开始安装 CUDA,在安装过程中选择不再安装 nvidia 显卡驱动。
为了方便开始安装过程的路径查找,把下载的 CUDA 安装文件移动到 HOME 路径下,然后通过 Ctrl + Alt + F1 进入文本模式,输入帐号密码登录,通过 Ctrl + Alt + F7 可返回图形化模式,在文本模式登录后首先关闭桌面服务:
sudo service lightdm stop
然后通过 Ctrl + Alt + F7 发现已无法成功返回图形化模式,说明桌面服务已成功关闭,注意此步对接下来的 nvidia 驱动安装尤为重要,必需确保桌面服务已关闭。
Ctrl + Alt + F1 进入文本模式,然后运行 CUDA 安装文件进行安装,之前我们已经把 CUDA 安装文件移动至 HOME,直接通过 sh 命令运行安装文件即可:
sudo sh cuda_9.0.176_384.81_linux.run --no-opengl-libs
执行此命令约1分钟后会出现 0%信息,此时长按回车键让此百分比增长,直到100%,然后按照提示操作即可,先输入 accept ,然后让选择是否安装 nvidia 驱动,这里的选择对应第5步开头,若未安装则输入 “y”,若确保已安装正确驱动则输入“n”。
剩下的选择则都输入“y”确认安装或确认默认路径安装,开始安装,此时若出现安装失败提示则可能为未关闭桌面服务或在已安装 nvidia 驱动的情况下重复再次安装 nvidia 驱动,安装完成后输入重启命令重启:
sudo reboot
第四步 检查是否安装成功
a、 验证驱动版本
$ cat /proc/driver/nvidia/version
结果显示类似
NVRM version: NVIDIA UNIX x86_64 Kernel Module 384.81 Sat Sep 2 02:43:11 PDT 2017
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)
b、 验证CUDA Toolkit
$ nvcc -V 会输出CUDA的版本信息
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
如果是这样的:
The program 'nvcc' is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit
可能是环境配置没有成功,重新配置环境。
进入Samples目录/NVIDIA_CUDA-9.0_Samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce GT 630"
CUDA Driver Version / Runtime Version 9.0 / 9.0
CUDA Capability Major/Minor version number: 3.0
Total amount of global memory: 1996 MBytes (2093023232 bytes)
( 1) Multiprocessors, (192) CUDA Cores/MP: 192 CUDA Cores
GPU Max Clock rate: 876 MHz (0.88 GHz)
Memory Clock rate: 891 Mhz
Memory Bus Width: 128-bit
L2 Cache Size: 262144 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 1 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Supports Cooperative Kernel Launch: No
Supports MultiDevice Co-op Kernel Launch: No
Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Version = 9.0, NumDevs = 1
Result = PASS
第五步 安装cudnn
https://developer.nvidia.com/rdp/cudnn-archive
下载后解压,执行如下指令:
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h
sudo chmod a+r /usr/local/cuda-9.0/lib