https://zhuanlan.zhihu.com/p/41096599
1、先查看是否安装有以下组件,若有先考虑彻底删除再安装(安装严格按照下面顺序进行)
查看nvidia 版本
nvidia-smi
查看cuda 版本
cat /usr/local/cuda/version.txt
查看cudnn 版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
2.安装nvidia驱动
1.禁用系统默认nouveau显卡驱动
打开系统黑名单,命令如下 :
sudo vi /etc/modprobe.d/blacklist.conf
在blacklist.conf文件中添加禁用的显示设备,文件尾部追加内如如下:
# for nvidia display device install
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
保存blacklist.conf文件,然后更新内核,命令如下:
sudo update-initramfs -u
重启电脑
sudo reboot
重启完成,执行命令如下(查看是否禁用成功,无输出则禁用成功):
lsmod | grep nouveau
2. 安装RTX1060驱动
首先进入命令行模式
ctrl+alt+f2
由于我们要安装显卡驱动,会影响桌面显示,我们可以先关闭(图形)桌面显示管理器18.04是gdm3,这里根据自己的版本选择就好
ubuntu 16.04是lightdm
sudo service lightdm stop
ubuntu 18.04是gdm3
sudo service gdm3 stop
添加驱动源:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
寻找合适驱动版本:
ubuntu-drivers devices
这里最好去官网https://www.geforce.cn/drivers 注意 笔记本电脑 要选择Notebooks版本的驱动
或者
UBUNTU右上角》系统设置》软件与更新》附加驱动选择》里面看看系统推荐的版本号,最好根据这个进行选择,为了避免更多未知的坑(不推荐直接在附加驱动选择直接安装:失败概率有些高,而且容易造成循环登录的问题)
sudo apt-get install nvidia-390
然后开启桌面管理器或者直接重启
sudo service gdm3 restart
或者
sudo reboot
重启后
查看nvidia 版本
nvidia-smi
显示则安装成功
nvidia-settings
打开N卡的设置
3.安装cuda
先查看nvidia 驱动,cuda,cudnn对应关系
nvidia与cuda要求的版本对应关系:
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
cuda与cudnn需要满足关系:
https://developer.nvidia.com/rdp/cudnn-archive
3.1安装依赖库
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-devlibgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
3.2降级gcc
由于Cuda-9.0
只支持gcc-6.0
以下的版本,而Ubuntu18.04系统默认安装的gcc-7.3
版本(可以在终端输入gcc --version
查看系统安装的gcc版本),所以首先需要降级为gcc-5
版本。
- 首先需要安装
gcc-5
在终端输入:
sudo apt install gcc-5
sudo apt install g++-5
- 链接至
gcc-5
版本
在终端输入:
cd /usr/bin
sudo mv gcc gcc.bak #备份
sudo ln -s gcc-5 gcc
sudo mv g++ g++.bak
sudo ln -s g++-5 g++
最后查看系统的gcc版本是否已更改
gcc --version
3.2安装对应版本的Cuda
cuda是nvidia的编程语言平台,想使用GPU就必须要使用cuda
https://developer.nvidia.com/cuda-toolkit-archive
保守起见,选择cuda9.0进行安装,也可以选择更高版本的
注意 9.0 是没有 18.04可选的,但我们选择16.04依然可以安装,正常使用(还没遇到过不正常状态)依次下载下面五个installers
基础安装包
sudo sh cuda_9.0.176.384.81_linux.run --override
在安装过程中 按Q跳过阅读more,会出现几个是否选装和安装位置的选项
其中第二个不需要安装NVIDIA驱动(系统已安装),其余都选择yes或者敲回车。
按q退出条款浏览或者按空格直到条款末尾
输入 accept 接受条款。
输入n不安装nvidia图像驱动,因为前面已经安装好驱动。如果这里按照默认选择yes,则前面安装的高版本nvidia驱动将被替换成为cuda里带的低版本nvidia驱动。
输入y安装cuda 8.0 toolkit。
回车确认cuda默认安装路径(/usr/local/cuda-8.0)
输入y install a symbolic link at /usr/local/cuda
输入y安装CUDA 8.0 Samples。
输入CUDA 8.0 Samples安装路径:/home/用户名/CUDA/samples 我这里是 /home/joe/CUDA/samples
结尾会显示 WARNING 这个不要紧 因为是第二部 没有安装driver (我们已经安装)
四个更新包
sudo sh cuda_9.0.176.1_linux.run
sudo sh cuda_9.0.176.2_linux.run
sudo sh cuda_9.0.176.3_linux.run
sudo sh cuda_9.0.176.4_linux.run
修改环境变量
安装完Cuda-9.0
后,还需要将其添加至系统环境变量。
ubuntu下某些程序需要自己定义LD_LIBRARY_PATH,修改下面文件的环境变量:
sudo gedit ~/.bashrc
打开“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=$PATH:/usr/local/cuda/bin
保存文本后,更新系统环境变量:
source ~/.bashrc
sudo ldconfig -v
至此,可以通过在终端输入nvcc --version
,检查Cuda-9.0
是否安装成功。
也可以测试cuda的Samples
cd /home/joe/CUDA/samples/NVIDIA_CUDA-.0_Samples/
sudo make -j8
cd /home/joe/CUDA/samples/NVIDIA_CUDA-.0_Samples/bin/x86_64/linux/release
./deviceQuery
运行最后显示Result = Pass
注意路径要根据你自己的进行修改
如果显示的是一些关于GPU的信息,则说明安装成功了。
4.安装对应版本的cudnn
首先去官网下载你需要的cudnn,下载的时候需要注册账号。选择对应你cuda版本的cudnn下载。
https://developer.nvidia.com/rdp/cudnn-archive
cuDNN v7.1.2 Runtime Library for Ubuntu16. (Deb)
cuDNN v7.1.2 Developer Library for Ubuntu16. (Deb)
cuDNN v7.1.2 Code Samples and User Guide for Ubuntu16. (Deb)
安装
sudo dpkg -i libcudnn7_7.1.2.-+cuda9.1_amd64.deb
sudo dpkg -i libcudnn7-dev_7.1.2.-+cuda9.1_amd64.deb
sudo dpkg -i libcudnn7-doc_7.1.2.-+cuda9.1_amd64.deb
环境变量
sudo gedit ~/.bashrc
在文件最後加上
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
生效
source ~/.bashrc
sudo ldconfig -v
执行samples
cp -r /usr/src/cudnn_samples_v7/ $HOME
cd $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN
发生了错误 找不到libcudart.so.9.0
这是因为 环境变量的问题
sudo gedit /etc/profile
export PATH=$PATH:/usr/local/cuda-9.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-9.0/lib64
配置文件生效
source /etc/profile
环境变量设置完 重新测试
./mnistCUDNN
如果在别的地方也报 找不到libcudart.so.9.0
若仍提示相同的错误,则执行以下命令,将相应的库文件复制到/usr/lib
sudo cp /usr/local/cuda-9.0/lib64/libcudart.so.9.0 /usr/local/lib/libcudart.so.9.0 && sudo ldconfig
sudo cp /usr/local/cuda-9.0/lib64/libcublas.so.9.0 /usr/local/lib/libcublas.so.9.0 && sudo ldconfig
sudo cp /usr/local/cuda-9.0/lib64/libcurand.so.9.0 /usr/local/lib/libcurand.so.9.0 && sudo ldconfig
ps. ldconfig命令是一个动态链接库管理命令,是为了让动态链接库为系统共享
5.安装opencv
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk--dev
sudo apt-get install libatlas-base-dev gfortran
下载opencv + contrib
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip
安装cmake-gui
sudo apt-get install cmake-qt-gui
启动cmake-gui
改好目录 点configure 结束后会出现红色的部分
下面需要更改几个参数
(1)OPENCV_EXTRA_MODULES_PATH
这个参数指定的是额外模块的路径,指定了之后CMake就会自动寻找是否有额外模块。需要注意的是路径是contrib目录下的modules
,例如/home/joe/Documents/opencv-3.4.1/opencv_contrib-3.4.1/modules,而不能只写到/home/joe/Documents/opencv-3.4.1/opencv_contrib-3.4.1,会提示找不到模块。
(2)OPENCV_ENABLE_NONFREE
这个参数的作用是启用OpenCV中的非免费模块,如果你想使用SIFT、SURF等算法,则必须要开启,否则等你调用它们的时候会提示它们是非免费模块,没有启用。
以上便是两个使用Contrib模块必须要修改的参数,其它没有特殊要求默认即可。配置好后,点击”Configure”按钮,CMake即开始配置,不出意外的话会会下载一些文件,这些文件都是外网的,还比较大,因此经常失败。 一般有两个文件比较难下,一个是face_landmark_model.dat
。
这里建议开VPN 不然这两个文件下不了 需要手动更换 具体看
https://zhaoxuhui.top/blog/2019/06/04/OpenCVContribEnvCPP.html
下载完成 点击 generate
4.编译代码
在新建的build
文件夹里打开终端
# 利用下面的命令得到系统的线程数
nproc
# 得到n下面输入jn
make -j8
安装OpenCV中反复出现一个warning,not used because“ OPENCV_TRAITS_ENABLE_DEPRECATED ”has been defined
。几乎每编译一个文件都会弹出这个警告。实践证明,这个警告并不影响最终的程序执行。只要没有error,warning一般可以忽略。
安装完成 将相关头文件拷贝到系统中去
make install
如果安装错了想删除
make install
以后,源文件不建议删除,因为如果以后还需要卸载的话,直接在build
目录下打开终端输入make uninstall
即可,否则的话只能手动删除目录文件了
最后需要编辑配置文件,修改两个文件/etc/ld.so.conf和/etc/bash.bashrc,最后source一下,使修改立即生效
sudo gedit /etc/ld.so.conf
# 在ld.so.conf末尾加上这行/usr/local/lib 然后退出编辑
source /etc/ld.so.conf
sudo ldconfig sudo gedit /etc/bash.bashrc
# 在末尾添加下面两行
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
# 退出编辑
source /etc/bash.bashrc
测试opencv安装是否成功,执行命令如下:
opencv_version
# 3.4.1
6.卸载Cuda和Cudnn
卸载Cuda-9.0
终端输入
cd /usr/local/cuda-9.0/bin
sudo ./uninstall_cuda_9.0.pl
卸载Cudnn
终端输入
sudo apt remove cudnn*
7.安装tensorflow-gpu
直接通过pip安装Tensorflow-gpu
sudo pip3 install tensorflow-gpu
8. 安装teamviewer
官网选择linux版本,下载ubuntu版本deb安装包,官网链接地址:下载 Linux 版 TeamViewer,进行远程桌面访问和协作
wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb
这里建议用linux平台可用的motrix (类似迅雷) 下载
下载完成,使用如下命令进行deb包的安装:
sudo dpkg -i teamviewer_amd64.deb
如果出现依赖库安装失败执行如下命令,强制更新类库依赖:
sudo apt-get install -f
安装完成,执行启动teamviewer命令如下:
teamviewer
参考
https://zhaoxuhui.top/blog/2019/06/04/OpenCVContribEnvCPP.html
https://blog.csdn.net/u011285477/article/details/89924919
https://oldpan.me/archives/ubuntu-install-opencv-from-source