本來就對Linux不熟悉,經過幾天慘痛的教訓,參考了不知道多少篇文章,終於把環境裝好了,每篇文章或多或少都有一些用,但沒有一篇完整的能解決我安裝過程碰到的問題,所以決定還是自己寫一篇我安裝過程的教程,有些參考的文章會給出原地址,比較大眾的教程就沒有給出了。
本文寫於2018年7月27日,注意下時效性,有問題歡迎留言
1. 安裝Ubuntu16.04
-
系統下載地址: http://releases.ubuntu.com/16.04/
-
下載64位系統:ubuntu-16.04.4-desktop-amd64.iso
- 制作系統盤安裝,推薦使用UltraISO,找到一個U盤(U盤數據必須備份好)
- 打開UltraISO軟件,選擇菜單中的文件,打開下載好的系統


- 再選擇菜單中的啟動,寫入硬盤映像,完成后啟動U盤就做好了,之后重新啟動后選擇U盤啟動根據提示安裝系統即可,具體細節可以在網上查找相應的文章,網上非常多。


2.安裝NVIDIA驅動
2.1 修改更新源
- 系統安裝完成后,應該首先修改的更新源,如果不修改的話更新的鏡像地址不在國內下載速度是非常慢的,用的是中科大的源(還有阿里源,清華源等等,網上一查就有了):
- 右鍵打開終端,一條一條執行以下命令,如果是沒有桌面端的系統,可以把gedit 改成 vi 進行編輯,gedit可以像打開文本文件一樣方便編輯
-
cd /etc/apt/ sudo cp sources.list sources.list.bak sudo gedit sources.list
- 把下面的這些源添加到source.list文件頭部:
-
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
- 保存后,退出文件,然后執行下面命令更新一下,等一會兒就行了,速度還是很快的
-
sudo apt-get update sudo apt-get upgrade
2.2 驅動下載和安裝以及一些問題解決
- 接下來開始安裝NVIDIA驅動了,我的顯卡是GTX1080Ti,安裝顯卡驅動有3種方法:1.系統更新驅動 2.添加官方ppa源 3.NVIDIA官網下載安裝
- 感興趣的同學可以去查找對應的安裝方式,這里我選擇的安裝方式是去NVIDIA官網下載Linux版本的驅動,
- 官網地址:https://www.geforce.cn/drivers 或者 https://www.nvidia.cn/Download/index.aspx?lang=cn
- 建議去左邊的地址可以選擇版本,右邊的地址會直接給你推薦最新版本,選擇你對應版本的系列選擇,操作系統別選錯了

- 搜索出來這么多結果,先別急着下載,BETA版本為測試版就別下載了,其次這么多版本,到底下載哪個比較好,比如我們圖上第二個版本是390.77,這需要看我們CUDA的版本要求的驅動版本是多少
- 我們打開CUDA下載網站:https://developer.nvidia.com/cuda-downloads
- 我這里目前最新的版本是CUDA9.2,再選擇了一系列的選項后會給出CUDA9.2的下載地址如下圖:

- 可以看到,下載的文件名為cuda_9.2.148_396.37,這個396.37就是我們NVIDIA驅動版本的最低要求,可是顯卡驅動目前提供的Linux版本最高也就390.77,所以我們不能安裝CUDA9.2,於是我選擇安裝CUDA9.0,下面給出一個驅動要求表格,如果要下載CUDA其他版本請到cuda的存檔地址:https://developer.nvidia.com/cuda-toolkit-archive

- 上面講了這么多,終於要開始安裝NVIDIA驅動了,CUDA9.0文件可以先下載好
-
1)打開終端,先刪除舊的驅動:
-
sudo apt-get purge nvidia* -
2)禁用自帶的 nouveau nvidia驅動
- 先執行下面命令,可以發現會顯示一些東西,我們現在要禁用掉,使它不顯示出來
-
lsmod | grep nouveau
- 執行以下命令創建一個文件
-
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
- 並添加如下內容:
-
blacklist nouveau options nouveau modeset=0
- 然后保存文件退出,執行下面命令更新一下
-
sudo update-initramfs -u - 然后重啟電腦,重啟后打開終端再次輸入命令
-
lsmod | grep nouveau
- 如果發現什么都沒顯示,那么說明禁用nouveau 成功了,然后開始安裝NVIDIA驅動
- 首先按Ctrl+Alt+F1進入控制台,然后輸入用戶名密碼登陸,執行下面命令關閉圖形界面
-
sudo service lightdm stop - 然后跳轉到存放文件的路徑再運行安裝文件,比如我的文件放在Downloads目錄下,命令如下:
-
cd Downloads sudo sh NVIDIA-Linux-x86_64-390.42.run --no-opengl-files
- 必須加上 --no-opengl-files ,否則會出現題主要是三種,(1)循環登錄,也就是登錄之后在退出來到登錄界面; (2)界面變得很大,看着心慌,哈哈;(3)登錄進去了,顯示正常了,結果只有桌面背景和鼠標等等
- 安裝過程種有出現提示選項,這里主要注意兩點(如果看不懂選項的英文,自己查字典):
- 第一點(不是所有電腦都會遇到,如果沒有請忽視這1.)是安裝提示 “sign the kernel module” 安裝過程中提示是否sign the kernel module(為內核模塊簽名)
- 我當時是選擇了不簽名安裝,於是我這里出現了錯誤提示 log:/ver/log/nvidia-installer.log ,查找到了相關文章:https://blog.csdn.net/lipi37/article/details/79465685
- 大意是在支持UEFI的設備上打開Secure Boot 后,Ubuntu 16.04對於添加到內核的模塊更加保守, 需要持有簽名才能添加到模塊中, 而顯卡驅動由於要添加到內核中, 所以需要簽名. 在安裝過程中我們也會看到NVIDIA顯卡會提示是否生成簽名. 如果生成成功則沒有問題。如果不想生成簽名就需要進入BIOS關閉Secure Boot,在Key Management中Clear Secure Boot keys。雖然找到了解決辦法但我還是選擇生成簽名。
- 選擇生成簽名安裝,參考文章:https://www.cnblogs.com/marky/p/8243607.html 。接下來會繼續問使用已有的密鑰給模塊簽名還是重新生成。這里選在重新生成密鑰。繼續下去之后,密鑰會在/usr/share/nvidia/下生成一個nvidia*.der(私鑰)文件和nvidia*.key(公鑰)文件(這些都不用管),當提示是否刪除已生成的密鑰文件時,選擇不刪除,因為之后要用到這兩個文件。繼續安裝程序到最后會提示無法啟動模塊。這是因為生成的密鑰還沒有添加到內核的信任庫中,我們在安裝完成后再導入。
- 第二點提示是”Would you like to run the nvidia-xconfig utility to automatically update your X configuration file…”什么的,選擇 No。
- 待安裝結束后,添加密鑰到內核的信任列表中:
-
sudo /etc/init.d/lightdm start //打開圖形界面 sudo mokutil --import /usr/share/nvidia/nvidia*.der //必須加上 sudo
- 接下來提示輸入密碼,再次輸入密碼,然后
-
sudo reboot //重啟
- 在電腦剛啟動的時候會出現一個界面,就是叫你添加密鑰操作,選擇 “enroll the mok” ,然后按照步驟操作,輸入密碼什么的,如果進錯了就再執行上面的 sudo mokutil...
- 導入成功后就進入系統就可以了,圖如下(取自http://elrepo.org/tiki/SecureBootKey):




- 進入系統后測試一下是否安裝成功
-
nvidia-smi
nvidia-settings - 出現類似下面的顯示,則安裝成功


3.安裝CUDA9.0
- 在上面已經說過了,CUDA9.2版本所需要的顯卡驅動版本過高,所以這里我選擇安裝CUDA9.0(CUDA9.1也支持)
- 安裝方法和上面類似
- 首先按Ctrl+Alt+F1進入控制台,然后輸入用戶名密碼登陸,執行下面命令關閉圖形界面
-
sudo service lightdm stop - 然后跳轉到存放文件的路徑再運行安裝文件,比如我的文件放在Downloads目錄下,命令如下:
-
cd Downloads sudo sh cuda_9.0.176_384.81_linux.run
- 安裝開始以后,首先是一個協議,一直按空格到底以后,輸入accept。其他的操作如下所示:
-
Do you accept the previously read EULA? accept/decline/quit: accept Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81? (y)es/(n)o/(q)uit: n Install the CUDA 9.0 Toolkit? (y)es/(n)o/(q)uit: y Enter Toolkit Location [ default is /usr/local/cuda-9.0 ]: Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit: y Install the CUDA 9.0 Samples? (y)es/(n)o/(q)uit: y
- 第二個安裝顯卡驅動一定要選擇no,否則之前安裝的驅動就白裝了,有默認選項的直接選擇默認選項就可以了(直接回車)
- 安裝完成后,打開圖形界面配置環境變量,運行如下命令打開profile文件
-
sudo service lightdm start //打開圖形界面 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 ldconfig sudo reboot
- 查看版本和測試CUDA的例子
-
查看版本 nvcc --version -
編譯例子測試 cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery sudo make ./deviceQuery
- 執行成功的話會出現下面信息:

-
編譯例子的時候如果報錯顯示:CUDA driver version is insufficient for CUDA runtime version 解決方法卸載重新安裝參考文章:https://www.cnblogs.com/wolflzc/p/9117291.html
- 找到對應版本,下載后先把前面的安裝的卸載再安裝
- 如果安裝錯了版本比,如我一開始裝了CUDA9.2,卸載操作如下:
-
sudo apt-get remove cuda sudo apt-get autoclean sudo apt-get remove cuda* 然后在目錄切換到/esr/local/下 cd /usr/local/ sudo rm -r cuda-9.2
- 然后按照前面的安裝CUDA的教程來就可以了
- 接下來再添加下環境變量
-
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}}
- 然后設置環境變量和動態鏈接庫,在命令行輸入:
-
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
4.安裝cuDNN7.0
- 下載地址:https://developer.nvidia.com/rdp/cudnn-archive
- 進去后下載自己對應的CUDA版本的cudnn文件,如下圖:

- 我是選擇 cuDNN v7.0.5 Library for Linux 千萬別選[Power8]的版本,我查了一下,這個是給Power8處理器使用的,由於v7.1.2版本還沒提供普通版本,所以就下載了v7.0.5
- 這里下載是需要注冊登陸的,要填一些調查表什么的之后才能下載,如果版本和我相同我這里提供cuDNN的百度雲下載地址:
- 鏈接:https://pan.baidu.com/s/1Yi6IkjUDbiBmAd9Dm4YruQ 密碼:k73g
- 安裝過程也比較簡單,下載后是一個壓縮包,解壓下來放在cuda的路徑中就可以了
- 繼續Ctrl+alt+F1進入命令模式,關閉圖形界面
-
sudo service lightdm stop - 使用命令解壓文件cudnn-9.0-linux-x64-v7.tgz,並且復制到cuda路徑中
-
tar -zxvf cudnn-9.0-linux-x64-v7.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.5 //自己查看.so的版本 對應更改 sudo ln -sf libcudnn.so.7.0.5 libcudnn.so.7 sudo ln -sf libcudnn.so.7 libcudnn.so sudo ldconfig
- 重新啟動圖形化界面
-
sudo service lightdm start - 沒有顯示出圖形界面的話 按Ctrl+Alt+F7進入圖形界面
- 安裝完成后可用 nvcc -V 命令驗證是否安裝成功,若出現版本信息則表示安裝成功
- 到這一步已經大功告成了,接下來就安裝Anaconda,配置Python,tensorflow等軟件,有機會的話還會補充。
