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-9.0_Samples/ sudo make -j8 cd /home/joe/CUDA/samples/NVIDIA_CUDA-9.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.04 (Deb) cuDNN v7.1.2 Developer Library for Ubuntu16.04 (Deb) cuDNN v7.1.2 Code Samples and User Guide for Ubuntu16.04 (Deb)
安裝
sudo dpkg -i libcudnn7_7.1.2.21-1+cuda9.1_amd64.deb sudo dpkg -i libcudnn7-dev_7.1.2.21-1+cuda9.1_amd64.deb sudo dpkg -i libcudnn7-doc_7.1.2.21-1+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-3-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