Linux下安裝NVIDIA顯示卡驅動(無集顯)
大部分Linux發行版都使用開源的顯示卡驅動nouveau,對於nvidia顯示卡來說,還是閉源的官方驅動的效果更好。最明顯的一點是,在使用SAC拾取震相的時候,使用官方顯示卡驅動在重新整理介面的時候要快很多。
對於CentOS使用者而言,有兩種安裝NVIDIA顯示卡驅動的方法,從ELRepo源中安裝或從原始碼編譯驅動。對於一般的CentOS使用者,建議使用第一種方法。
ELRepo源中包含了一系列驅動程式。
-
新增ELRepo源:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
-
安裝顯示卡檢查程式:
sudo yum install nvidia-detect
-
檢測顯示卡型號,並選擇對應的驅動:
$ nvidia-detect -v Probing for supported NVIDIA devices... [10de:06dd] NVIDIA Corporation GF100GL [Quadro 4000] This device requires the current 346.47 NVIDIA driver kmod-nvidia
根據nvidia-detect的輸出資訊,可以知道顯示卡的型號,以及要使用的驅動版本346.47。
-
安裝顯示卡驅動
-
若驅動版本為304.xx,則安裝304xx版本:
sudo yum install nvidia-x11-drv-304xx nvidia-x11-drv-304xx-32bit
-
若驅動版本為340.xx,則安裝340xx版本:
sudo yum install nvidia-x11-drv-340xx nvidia-x11-drv-340xx-32bit
-
對於大多數比較新的顯示卡來說,直接安裝最新版的驅動即可:
sudo yum install nvidia-x11-drv nvidia-x11-drv-32bit
-
-
安裝過程中可能會給出軟體衝突的警告,需要解除安裝以下軟體包及其依賴:
sudo yum remove xorg-x11-glamor
-
重啟
準備工作
-
檢視顯示卡型號
$ lspci | grep VGA 03:00.0 VGA compatible controller: NVIDIA Corporation GF100GL [Quadro 4000] (rev a1)
從這裡可以得出顯示卡型號為Quadro 4000。
-
安裝kernel-devel
sudo yum install kernel-devel
-
將nouveau驅動加入黑名單,在/etc/modprobe.d/blacklist.conf(CentOS 7下為/usr/lib/modprobe.d/dist-blacklist.conf)中加入blacklist nouveau
-
備份initramfs檔案
sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
-
重建initramfs檔案
sudo dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
-
關機重啟。由於此時nouveau驅動已經被禁用,桌面的顯示效果非常差。
-
進入文字介面
sudo init 3
會直接進入文字介面。
-
在文字介面登入後直接安裝
sh NVIDIAxxx --kernel-source-path=/usr/src/kernels/x.xx.x-xxxxx
其中NVIDIAxxx為nvidia驅動指令碼檔案,x.xx.x-xxxx為kernel版本號。
手動編譯顯示卡驅動的一個麻煩之處在於,每次更新kernel之後,都會出現無法進入圖形介面的情況,此時需要重新安裝顯示卡驅動。
- 更新kernel,重啟,發現無法進入圖形介面;
- 按下Alt+F2,進入文字介面,以root身份登陸;
- 備份initramfs檔案
- 重建initramfs檔案
- 重啟,按下Alt+F2,進入文字介面,以root身份登陸;
- 執行第七步;再重啟;
sh ./NVIDIA-Linux-xxxxx --uninstall