前言

之前從 14.04 升級成 16.04 後沒有特別檢查 GPU Driver,後來需要用到才發現原來我少了一些 library

這篇記錄下要如何在 Ubuntu 安裝 NVIDIA GPU 的驅動程式,還有啟用 Cuda

NVIDIA GPU driver

到官網找到對應顯卡跟作業系統的驅動程式
https://www.geforce.cn/drivers

先選系列,再選該系列的型號,然後再來選擇作業系統,像我的 Ubuntu 系統是 x86-64,就選擇 Linux 64-bit,下載最新的版本,我是下載 NVIDIA-Linux-x86_64-440.59.run

執行 run 前先解除安裝舊版本的驅動程式以防萬一

1
sudo apt-get remove --purge nvidia*

安裝可能需要的依賴

1
2
3
4
sudo apt-get update
sudo apt-get install dkms build-essential linux-headers-generic
sudo apt-get install gcc-multilib xorg-dev
sudo apt-get install freeglut3-dev libx11-dev libxmu-dev install libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

Nouveau

執行 run 檔時,NVIDIA 的安裝程式會偵測可能的問題點,這時候應該會跳出失敗

假如沒有禁用 Nouveau 驅動的話,安裝程式會要求使用者手動操作,或是選擇讓他幫你在 /etc/modprobe.d/ 底下建立好 nvidia-installer-disalbe-nouveau.conf

1
2
3
4
// nvidia-installer-disalbe-nouveau.conf
# generated by nvidia-installer
blacklist nouveau
options nouveau modeset=0

在 terminal 下 reboot 重新開機後就會套用這個 conf

重開後的畫面解析度會有點怪怪的,等安裝完驅動就正常了

X-service

一般來說要先進入終端機模式關閉 Ubuntu 的圖形介面,也就是關閉 X-service,沒有關閉的話安裝程式也會再次失敗提醒你

但其實在執行安裝程式時可以下 option --no-x-check 來忽略這個檢查

選擇不忽略要手動關閉的話,就要按住 CTRL + ALT + F1 進入 tt1 終端來關閉

進入 tt1 後會要求你再輸入一次使用者帳密登入系統,登入完後打

1
sudo service lightdm stop

如果沒有效果的話將 lightdm 換成 systemctl

安裝

下一步就是安裝

變更執行檔的權限然後用 root 執行

1
2
3
4
5
6
chmod 755 NVIDIA-Linux-x86_64-440.59.run
sudo ./NVIDIA-Linux-x86_64-440.59.run

// --no-opengl-files: 只安裝驅動不安裝 OpenGL 檔案
// --no-x-check: 安裝驅動時不檢查 X 服務
// --no-nouveau-check: 不檢查 nouveau

如果前面沒有選擇忽略 X-service check,這時候會是在 tt1 模式下(也就是整個螢幕都是終端機模式),一樣可以進行這步,只要打指令然後重新開機就好了

驗證

重開機後,下以下指令驗證驅動程式是否安裝成功

1
nvidia-smi

如果有列出 GPU 的資訊表格表示安裝成功,沒有成功就再從清除舊資料那一步重頭開始

安裝 CUDA

到官網
https://developer.nvidia.com/cuda-downloads

選擇對應的 CUDA 版本,像我的話就是

  • Linux x86_64
  • Ubuntu 16.04
  • installer Type 我選擇 runfile

選完後網頁會挑出安裝指令,複製 wget 那行指令照著抓下來就可以了

抓下來後一樣用 root 權限執行 run 檔,這時候會跳出安裝選項,記得把 Driver 的選項的勾勾拿掉,因為已經裝好驅動了,如果再選擇安裝 Cuda 安裝程式提供的驅動會有問題

這時候應該就能安裝成功了

更詳細的 Installation Guide 可以參考官方文件
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4WNL7OgLr