由于zed摄像头需要支持cuda的显卡,所以我们需要对我们系统配置cuda toolkit。
安装依赖包
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
准备工作——下载驱动文件
先查寻自己的显卡版本:
lspci | grep -i nvidia
去NVIDIA官网下载相应型号的驱动:
https://www.nvidia.cn/Download/index.aspx?lang=cn
配置好自己型号,比如我的是GTX1080,点击搜索,进行下载,下载到/Downloads路径
准备工作——下载cuda9.1
打开下载链接https://developer.nvidia.com/cuda-downloads
点击legacy releases查找想要下载的版本,
点击cuda toolkit 9.1,把参数选择好,点击download下载。
同样将其保存到/Downloads路径。
显卡驱动安装
对于显卡驱动安装,我们必须先卸载之前电脑里的驱动,并禁用x服务,进行安装。
需要在安装之前禁止x服务(最好有一台备用电脑,因为这一步会黑屏…):
sudo service lightdm stop
然后按Ctrl + Alt + F1进入命令行模式,输入账号密码继续进行。
安装之前先卸载已经存在的驱动版本:
sudo apt-get remove --purge nvidia*
进入Downloads目录下:
cd /Downloads
进行驱动安装:
sudo sh ZED_SDK_Linux_Ubuntu16_v2.4.0.run #run文件的文件名根据自己下的文件名修改,默认是我提供的文件
sudo ./NVIDIA-Linux-x86_64-375.20.run –no-opengl-files
–no-opengl-files #只安装驱动文件,不安装OpenGL文件。这个参数最重要
–no-x-check #安装驱动时不检查X服务
–no-nouveau-check #安装驱动时不检查nouveau
后面两个参数可不加。
提示安装基本上都是accept,yes,当提示你nvidia-xconfig时,就视自己的电脑情况而定,如果电脑是双显卡(双独显、集显和独显)就选择不安装,如果只有一个显卡就选择安装。
安装完毕后重启验证是否安装成功。
安装完成后进行验证,若列出了GPU的信息列表则表示驱动安装成功:
sudo nvidia-smi
防止分辨率出问题,可以加入一下语句:
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
sudo touch /etc/X11/xorg.conf
完成后重启:
reboot
这几天在新购置的笔记本上部署工作环境,在安装NVIDIA驱动的时候遇到了不少坑,重装了很多次,在Ubuntu论坛以及其他资料源看了很多大牛的分析,最终终于解决了一个又一个问题,过程比较艰辛。由于网络上的各种答案很多,大多数是不能完美解决问题的,所以决定写一篇博客总结一下一些常见问题以及我亲测有效的解决方案,温故知新,如果正好能解答一些后来者的问题,那就再好不过了。
首先介绍一下我的安装流程,我所采用的是PPA的安装方式:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-378 nvidia-prime
我遇到的几个坑:
一、循环登录
主要表现为在登录界面输入密码后依然跳转回登陆界面,无限循环,这是我在使用.run文件安装时遇到的问题,这里有一个亲测有效的解决方案:
当输入安装指令时,不要简单地输入 sudo ./…run,而是输入:
sudo ./NVIDIA.run -no-x-check -no-nouveau-check -no-opengl-files
-no-x-check #安装驱动时关闭X服务
-no-nouveau-check #安装驱动时禁用nouveau
-no-opengl-files #只安装驱动文件,不安装OpenGL文件
这样再reboot,就不会出现循环登录的问题。
二、重启黑屏
主要表现为reboot后开机无法进入图形界面,而是直接黑屏,但是还可以进入命令行界面。亲测有效的解决方案:
sudo cp ~/tmp/xorg.conf.nvidia-xconfig-original /etc/X11/xorg.conf
sudo vim /etc/X11/xorg.conf
确保xorg.conf.nvidia-xconfig-original(也可能在etc/X11路径中)与xorg.conf的内容为:
Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "intel"
EndSection
Section "Device"
Identifier "intel"
Driver "intel"
BusID "PCI:0@0:2:0"
Option "AccelMethod" "SNA"
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1@0:0:0"
Option "ConstrainCursor" "off"
EndSection
Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration" "on"
Option "IgnoreDisplayDevices" "CRT"
EndSection
然后reboot,就可以解决黑屏问题。
三、驱动不工作
主要表现为可以进入图形界面,但是驱动不工作,无论是nvidia-smi还是nvidia-prime都是无效的。
出现这个问题的可能原因是没有Disable掉Secure Boot(就是安装驱动时提示你Disable的东西),解决方法也很简单,在安装完驱动后,reboot时,在开机出现一个全蓝界面
时按任意键,选择第二项,也就是改变Secure Boot的状态,然后依据提示将它Disable掉,然后boot就好。
如果之后要Enable这个东西的话,输入指令:
sudo mokutil --enable-validation
然后reboot,在开机的时候就会再次出现那个全蓝的界面,依然选择第二项,根据提示Enable,然后boot即可。
总的来说Ubuntu和NVIDIA之间还是挺不对付的,上面三个问题也是比较常见的三个问题,因此将问题及解决方案记录下来,希望能帮助到各位。
添加ppa源安装驱动:
装显卡驱动部分刚开始按照网上教程关这关那的入了不少的坑,后来发现用ppa源安装显卡驱动的方式是最简单的。
sudo gedit /etc/modprobe.d/blacklist.conf
在文本最后添加以下内容:
blacklist nouveau
option nouveau modeset=0
命令窗口会提示warn,无视之。
保存退出,执行以下命令生效:
sudo update-initramfs -u
重启电脑后输入:
lsmod | grep nouveau
sudo apt-get remove –purge NVIDIA-*
(1)第一步:终端下使用如下命令添加Graphic Drivers PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
(2)第二步:终端下运行如下命令
sudo apt-get update
(3)第三步:终端下运行如下命令可以查看到可供安装的显卡驱动版本
ubuntu-drivers devices
(4)第四步:选好要安装的驱动版本,运行如下代码安装驱动
sudo apt-get install nvidia-driver-xxx
(5)重启即可
在下载的CUDA文件中已经包含了NVIDIA驱动文件,如果驱动已经安装成功,就不需要再次安装。
还是和驱动安装一样关闭图形界面:
sudo service lightdm stop
按Ctrl+Alt+F1进入命令行,输入用户名密码登录(通过Ctrl+Alt+F7可返回界面)
进入下载目录,给文件赋予执行权限(忘记文件名就ls)
cd ~/Download/
sudo chmod a+x cuda_8.0.61_375.26_linux
安装cuda,注意参数
sudo ./cuda_8.0.61_375.26_linux.run --no-opengl-libs
–no-opengl-files 只安装驱动文件,不安装OpenGL文件。这和驱动安装时的参数不同。
之后就是安装的步骤
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
(y)es/(n)o/(q)uit: n
Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
[ default is /home/zhou ]:
除了提示是否安装NVIDIA驱动选择n,其余都是accept,y
重启电脑
reboot
重启后配置cuda的环境变量,通用配置环境流程:
使用gedit打开环境文件:
sudo gedit ~/.bashrc
在文本后加入以下内容并保存:
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
source环境变量文件,使之生效:
source ~/.bashrc
验证是否安装成功:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
黑屏方案:
工控机 shift+esc进入安全模式
sudo apt-get remove –purge NVIDIA-*
reboot
1.下载对应版本的cudnn
2.解压
tar -zxf cudnn-xxxx.tgz
3.把include/ 和 lib64/目录下的文件拷贝到cuda的安装目录下的include/ 和 lib64里面
sudo cp -P include/cudnn.h /usr/local/cuda-9.0/include
sudo cp -P lib64/libcudnn* /usr/local/cuda-9.0/lib64
sudo chmod a+r /usr/local/cuda-9.0/lib64/libcudnn*
验证安装是否成功
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
如果显示
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 2
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
则cudnn安装成功