我的電腦比較奇怪,只要關機,顯示卡驅動就失效,必須重新安裝,特寫一篇部落格,記錄重灌過程。

1 禁用 nouveau

安裝好依賴包後需要禁用 nouveau,只有在禁用掉 nouveau 後才能順利安裝 NVIDIA 顯示卡驅動,禁用方法就是在 /etc/modprobe.d/blacklist-nouveau.conf 檔案中新增一條禁用命令,首先需要開啟該檔案,通過以下命令開啟:

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

開啟後發現該檔案中沒有任何內容,寫入:

blacklist nouveau
options nouveau modeset=0

儲存後,執行

sudo update-initramfs -u
電腦重啟之後執行
(重灌顯示卡驅動,輸入下面命令,確認一下)

lsmod | grep nouveau  #沒有輸出,即說明安裝成功

2配置環境變數(重新安裝這步不需要)

同樣使用 gedit 命令開啟配置檔案:

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

3安裝顯示卡驅動        

手動去官網下載.run檔案自己安裝

下載完成之後:解除安裝原先的所有驅動:

sudo ./NVIDIA-Linux-x86_64-390.59.run --uninstall

禁用nouveau(前面已做)

驗證是否禁用nouveau

lsmod | grep nouveau

ctrl+alt+f1,後

sudo service lightdm stop

sudo ./NVIDIA-Linux-x86_64-390.59.run --uninstall

reboot

安裝驅動

進入命令列介面

Ctrl-Alt+F1  之後輸入使用者名稱和密碼登入即可。Ctrl-Alt+F7 退出命令列介面

sudo service lightdm stop(關閉圖形介面,此時Ctrl-Alt+F7無法返回介面,除非 sudo service lightdm stop)

給驅動run檔案賦予執行許可權(安裝檔案一般放在home根目錄下)

sudo chmod a+x NVIDIA-Linux-x86_64-390.59.run
sudo ./NVIDIA-Linux-x86_64-390.59.run –no-opengl-files
  • –no-opengl-files 只安裝驅動檔案,不安裝OpenGL檔案。這個引數最重要
  • –no-x-check 安裝驅動時不檢查X服務
  • –no-nouveau-check 安裝驅動時不檢查nouveau 
    後面兩個引數可不加。

安裝顯示卡驅動時,就一路Accept就可以,報錯The distribution-provided pre-install script failed!,不必理會,繼續安裝。最重要的一步,安裝程式問你是否使用nv的xconfig檔案,這裡一點要選yes,否則在啟動x-window時不會使用nv驅動。安裝提示基本是選肯定的,提示nvidia-xconfig時如果你的電腦還存在一個核顯或者集顯就選擇不安裝,反之選擇安裝。

安裝完畢後,重啟

reboot (重啟)

重啟,進入圖形介面,並不會出現迴圈登入的問題

如果已經存在,執行nvidia-smi,有類似如下輸出代表nvidia驅動正常

nvidia-smi

4安裝 CUDA 9.0步驟一樣

cuda的解除安裝方法

To uninstall the CUDA Toolkit, run the uninstallation script provided in the bin directory of the toolkit. By default, it is located in /usr/local/cuda-9.0/bin:

sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl

解除安裝之後還有一些殘留的資料夾,,可以一併刪除

cd /usr/local/
sudo rm -rf cuda-9.0/

       為了方便開始安裝過程的路徑查詢,把下載的 CUDA 安裝檔案移動到 HOME 路徑下,然後通過 Ctrl + Alt + F1 進入文字模式,輸入帳號密碼登入,通過 Ctrl + Alt + F7 可返回圖形化模式,在文字模式登入後首先關閉桌面服務:

sudo service lightdm stop

然後通過 Ctrl + Alt + F7 發現已無法成功返回圖形化模式,說明桌面服務已成功關閉,注意此步對接下來的 nvidia 驅動安裝尤為重要,必需確保桌面服務已關閉。

cd.run 檔案所處的路徑下,安裝cuda

sudo chmod +x cuda_9.0.176_384.81_linux.run
sudo sh cuda_9.0.176_384.81_linux.run --tmpdir=/tmp

      其中 cuda_9.0.176_384.81_linux.run 是我的 CUDA 安裝檔名,而你需替換為自己的 CUDA 安裝檔名,若此時忘記可直接通過 ls 檔案檢視檔名,這也是我建議把 CUDA 安裝檔案移動到 HOME 下的另一個原因。 

   按q結束cuda的描述等,然後輸入accept,然後是提示是否安裝NVIDIA驅動,如果你做了第5步,就輸入n,下一個提示是是否安裝CUDA Toolkit,輸入y,後面的提示都是使用預設或者y了,安裝完會顯示哪些安裝成功,哪些安裝失敗,一般都會沒有問題的

  按照步驟安裝,第一個就是問你是否安裝顯示卡驅動,由於前一步已經安裝了顯示卡驅動,所以這裡就不需要了,況且 runfile 自帶的驅動版本不是最新的。

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 ]:

Installing the CUDA Toolkit in /usr/local/cuda-8.0 …
Missing recommended library: libGLU.so
Missing recommended library: libX11.so
Missing recommended library: libXi.so
Missing recommended library: libXmu.so

Installing the CUDA Samples in /home/zhou …
Copying samples to /home/zhou/NVIDIA_CUDA-8.0_Samples now…
Finished copying samples.

===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/xtu, but missing recommended libraries

Please make sure that
- PATH includes /usr/local/cuda-8.0/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run -silent -driver

Logfile is /tmp/cuda_install_18572.log

剩下的選擇則都輸入“y”確認安裝或確認預設路徑安裝,開始安裝,此時若出現安裝失敗提示則可能為未關閉桌面服務或在已安裝 nvidia 驅動的情況下重複再次安裝 nvidia 驅動,安裝完成後輸入重啟命令重啟:

reboot

重啟後登入進入系統,配置 CUDA 環境變數,與第3步相同,使用 gedit 命令開啟配置檔案:

sudo gedit ~/.bashrc
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}}

使該配置生效:

source ~/.bashrc

5驗證 CUDA 9.0 是否安裝成功

分別執行以下命令:

cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery

sudo make

./deviceQuery

若看到類似以下資訊則說明 cuda 已安裝成功:

6安裝 cudnn(v 7)

cudnn直接刪除相應的資料夾即可

V7

libcudnn.so.7.。。。。後面的版本號根據實際情況修改

cd ~/cuda/include
sudo cp cudnn.h /usr/local/cuda/include/ #複製標頭檔案

然後命令列進入 cudn/lib64 資料夾路徑下,執行以下命令(CUDA 9.0也是一樣的命令):

cd ~/cuda/lib64
sudo cp lib* /usr/local/cuda/lib64/ #複製動態連結庫
cd /usr/local/cuda/lib64/ 
sudo rm -rf libcudnn.so libcudnn.so.7  #刪除原有動態檔案
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7  #生成軟銜接
sudo ln -s libcudnn.so.7 libcudnn.so  #生成軟連結

然後需要將路徑/usr/local/cuda/lib64 新增到動態庫,分兩步:

      1)安裝vim。輸入:

sudo apt-get install vim-gtk

      2)輸入:

sudo vim /etc/ld.so.conf.d/cuda.conf

          鍵盤按i進入編輯狀態,新增文字:                 

/usr/local/cuda/lib64

        然後按esc,輸入:(注意有冒號)

:wq  #儲存退出

       終端下接著輸入 sudo ldconfig 命令使連結生效。

      軟連結後可以用sudo ldconfig -v 命令檢視是否連結成功:是否有/usr/local/cuda/lib64資料夾。ldconfig命令的用途主要是在預設搜尋目錄/lib和/usr/lib以及動態庫配置檔案/etc/ld.so.conf內所列的目錄下,搜尋出可共享的動態連結庫(格式如lib*.so*),進而創建出動態裝入程式(ld.so)所需的連線和快取檔案。

安裝完成後可用 nvcc -V 命令驗證是否安裝成功,若出現以下資訊則表示安裝成功:

[email protected]:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61

7重新編譯 caffe

首先在你要安裝的路徑下 clone :

git clone https://github.com/BVLC/caffe.git

如果下載網速慢,可以先下載zip檔案,再解壓。進入 caffe ,將 Makefile.config.example 檔案複製一份並更名為 Makefile.config ,也可以在 caffe 目錄下直接呼叫以下命令完成複製操作 :

sudo cp Makefile.config.example Makefile.config

複製一份的原因是編譯 caffe 時需要的是 Makefile.config 檔案,而Makefile.config.example 只是caffe 給出的配置檔案例子,不能用來編譯 caffe。

然後修改 Makefile.config 檔案,在 caffe 目錄下開啟該檔案:

sudo gedit Makefile.config

修改 Makefile.config 和 Makefile 檔案,直接複製原先的備份

OK ,可以開始編譯了,在 caffe 目錄下執行 :

cd ~/caffe
make all -j8

編譯成功後可執行測試:

sudo make runtest -j8

重新編譯即可。

這裡寫圖片描述

如果顯示結果為上圖所示,則表示 caffe 已經成功安裝。

8、配置 pycaffe介面環境

       在上一步成功安裝 caffe 之後,就可以通過 caffe 去做訓練資料集或者預測各種相關的事了,只不過需要在命令列下通過 caffe 命令進行操作,而這一步 pycaffe 的安裝以及 notebook 環境配置只是為了更方便的去使用 caffe ,實際上大多數都是通過 python 來操作 caffe 的,而 notebook 使用瀏覽器作為介面,可以更方便的編寫和執行 python 程式碼。

首先編譯 pycaffe :

cd caffe

sudo make pycaffe -j8

編譯 pycaffe 成功後,將路徑加入到環境變數中

sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrc (路徑根據實際情況設定)

source ~/.bashrc

驗證一下是否可以在 python 中匯入 caffe 包,首先進入 python 環境:

python

然後匯入 caffe :

>>> import caffe
.