ubuntu16.04安裝nvidia驅動+cuda9.0+cuDnn7.0
本文參考了
http://www.cnblogs.com/5211314jackrose/p/7081020.html
https://jingyan.baidu.com/article/4853e1e55679491909f726f4.html
http://www.cnblogs.com/iloveblog/p/7683349.html
1. 檢查自己的GPU是否是CUDA-capable
[email protected]:~$ lspci | grep -i nvidia 03:00.0 VGA compatible controller: NVIDIA Corporation Device 1b00 (rev a1) 03:00.1 Audio device: NVIDIA Corporation Device 10ef (rev a1)
2.下載安裝包
下載NVIDIA-Linux-x86_64-384.90.run
網址http://www.geforce.cn/drivers/results/123918
網址https://developer.nvidia.com/cuda-downloads
下載cudnnv7.0,我下載地時候只有一個版本支援cuda9.0
網站是https://developer.nvidia.com/rdp/cudnn-download
3.安裝nvidia驅動
這裡遇到了很多坑,有的比較獨特,我在網上很難查到
3.1 禁用nouveau
ubuntu自帶的nouveau驅動會影響cuda安裝,不當操作會導致黑屏和登陸迴圈。 終端執行:
lsmod | grep nouveau
如果有輸出則代表nouveau正在載入。則需要禁用nouveau,在/etc/modprobe.d
中建立檔案blacklist-nouveau.conf,再用getid開啟
cd /etc/modprobe.d
/etc/modprobe.d$ sudo touch blacklist-nouveau.conf
sudo gedit blacklist-nouveau.conf
在檔案中輸入以下內容並儲存:
blacklist nouveau options nouveau modeset=0
之後更新
sudo update-initramfs -u
再次檢視
lsmod | grep nouveau
這種方式也可能不能徹底禁用nouveau,在此基礎上可以移除以下檔案:nouveau.ko;nouveau.ko.org,此檔案一般是隱藏的具體操作
cd /lib/modules/4.4.0-83-generic/kernel/drivers/gpu/drm/nouveau sudo rm -rf nouveau.ko sudo rm -rf nouveau.ko.org
再更新
sudo update-initramfs –u
此時重啟,再用終端檢測一下
lsmod | grep nouveau
沒有輸出即為禁用成功。
3.2 安裝驅動
1) 解除安裝掉原有驅動
sudo apt-get remove --purge nvidia-*
2)安裝一些依賴(不一定需要)
我在安裝過程中遇到下圖中的問題
網上查詢發現遇到的人不多,經查詢,可能是因為缺少32位的庫檔案(我安裝64位的,為啥需要這個。。。暈),需要安裝依賴
sudo apt-get install lib32ncurses5 sudo apt-get install lib32z1 安裝後可解決 3)出現Invalid Signature detected Check Secure Boot Policy錯誤(不一定需要)
出現Invalid Signature detected Check Secure Boot Policy錯誤,是因為bios中設定不對。
重啟電腦,按f1進入bios設定(或者delete,esc.....),然後找到Security裡面的 Secure Boot選項,回車鍵進入,Secure Boot選擇Disabled,按f10儲存,重啟。
這樣雖然不會再次出現剛才的錯誤,通常會出現新的問題,啟動卡死,一直處於windows正在啟動介面,需要再次進入bios,將startup中的csm項改為Enable,然後儲存,即可順利進入windows。
4)安裝驅動
1 解除安裝掉原有驅動
sudo apt-get remove --purge nvidia-*
2 Ctrl+alt+F1進入字元介面,關閉圖形介面
sudo service lightdm stop
此時可能關不了,即使現實該操作
OK
,但是一會再開啟時會有問題,可以在此基礎上增加操作,手動刪除
X
影象介面,
影象介面
X
在
/tmp
路徑下,具體操作:
cd /tmp sudo rm -rf .X*
這樣就可以把關於
X
的影象介面檔案全部刪除(每次重啟都會再次生成,所以會在
alt+ctrl+f1
介面下操作)
3 安裝nvidia driver
sudo chmod a+x NVIDIA-Linux-x86_64-384.90.run //獲取許可權 sudo ./NVIDIA-Linux-x86_64-384.90.run –no-x-check –no-nouveau-check –no-opengl-files //安裝驅動
- –no-x-check 安裝驅動時關閉X服務
- –no-nouveau-check 安裝驅動時禁用nouveau
- –no-opengl-files 只安裝驅動檔案,不安裝OpenGL檔案
Accept->Continue installation->sign the kernel module(為核心模組簽名)?選擇是->使用已有的金鑰給模組簽名還是重新生成?選重新生成金鑰->是否刪除已生成的金鑰檔案?選擇否->安裝完成
問題:The target kernel has CONFIG_MODULE_SIG set,which means that it supports cryptographic signatures on kernel module. On some systems, the kernel may refuse to load modules without a valid signature from a trusted key.This system also UEFI Secure Boot enabled; many distributions enforce module signature verification on UEFI systems when Secure Boot is enabled. Would you like to sign the NVIDIA kernel module?
解決:禁用UEFI安全啟動功能
啟動電腦,然後按電腦的設定訪問UEFI,本機器按[F2]鍵,不同的製造商可能有不同的設定,具體請參考主機板說明書。
根據不同的UEFI版本,安全啟動選項通常在一個選項卡下,這個選項卡可能被命名為“Boot”、“Security”或者“Authentication”,在類似的選項卡中查詢,我們會發現一個“Secure Boot”選項,該選項預設設定為“Enabled”,選中它並回車,將其設定為“Disabled”,按[Apply]鍵儲存設定,重新啟動電腦即可安裝我們需要的作業系統。
檢查 NVIDIA Driver是否安裝成功
nvidia-smi
顯示上圖則說明成功
4.安裝CUDA9.0
找到下載檔案的路徑
sudo sh cuda_9.0.176_384.81_linux.run
單擊回車,一路往下執行,直到提示“是否為NVIDIA安裝驅動nvidia-384?”,選擇否,因為已經安裝好驅動程式了,其他的全都是預設,不過要記住安裝位置,預設是安裝在/usr/local/cuda資料夾下。
配置環境變數,執行如下命令開啟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
儲存,然後重啟電腦
sudo reboot
測試CUDA的例子
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
如果顯示的是關於GPU的資訊,則說明安裝成功了。
最後你會看到
cuda
驅動、
sample
、
tookit
已經安裝成功,但是缺少一些庫。
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
環境變數配置
安裝完畢後,再宣告一下環境變數,並將其寫入到 ~/.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}}
然後設定環境變數和動態連結庫,在命令列輸入:
$ sudo gedit /etc/profile
在開啟的檔案末尾加入:
export PATH=/usr/local/cuda/bin:$PATH
儲存之後,建立連結檔案:
sudo gedit /etc/ld.so.conf.d/cuda.conf
在開啟的檔案中新增如下語句:
/usr/local/cuda/lib64
然後執行
sudo ldconfig
使連結立即生效。
5.安裝cudnn
1) 繼續Ctrl+alt+F1進入的字元介面
2) 進入解壓後的cudnn-9.0-linux-x64-v7.0.tgz檔案cuda,在終端執行下面的指令安裝:
tar -zxvf cudnn-9.0-linux-x64-v7.0.tgz cd cuda sudo cp lib64/lib* /usr/local/cuda/lib64/ sudo cp include/cudnn.h /usr/local/cuda/include/
然後更新網路連線:
cd /usr/local/cuda/lib64/ sudo chmod +r libcudnn.so.7.0.3 # 自己檢視.so的版本 sudo ln -sf libcudnn.so.7.0.3. libcudnn.so.7 sudo ln -sf libcudnn.so.7 libcudnn.so sudo ldconfig
重新啟動圖形化介面
sudo service lightdm start
再
Ctrl+alt+F7
退出
Text Mode。