1. 程式人生 > >Linux下安裝NVIDIA顯示卡驅動(無集顯)

Linux下安裝NVIDIA顯示卡驅動(無集顯)

大部分Linux發行版都使用開源的顯示卡驅動nouveau,對於nvidia顯示卡來說,還是閉源的官方驅動的效果更好。最明顯的一點是,在使用SAC拾取震相的時候,使用官方顯示卡驅動在重新整理介面的時候要快很多。

對於CentOS使用者而言,有兩種安裝NVIDIA顯示卡驅動的方法,從ELRepo源中安裝或從原始碼編譯驅動。對於一般的CentOS使用者,建議使用第一種方法。

ELRepo源中包含了一系列驅動程式。

  1. 新增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
    
  2. 安裝顯示卡檢查程式:

    sudo yum install nvidia-detect
    
  3. 檢測顯示卡型號,並選擇對應的驅動:

    $ 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

  4. 安裝顯示卡驅動

    1. 若驅動版本為304.xx,則安裝304xx版本:

      sudo yum install nvidia-x11-drv-304xx nvidia-x11-drv-304xx-32bit
      
    2. 若驅動版本為340.xx,則安裝340xx版本:

      sudo yum install nvidia-x11-drv-340xx nvidia-x11-drv-340xx-32bit
      
    3. 對於大多數比較新的顯示卡來說,直接安裝最新版的驅動即可:

      sudo yum install nvidia-x11-drv nvidia-x11-drv-32bit
      
  5. 安裝過程中可能會給出軟體衝突的警告,需要解除安裝以下軟體包及其依賴:

    sudo yum remove xorg-x11-glamor
    
  6. 重啟

準備工作

  1. 檢視顯示卡型號

    $ lspci | grep VGA
    03:00.0 VGA compatible controller: NVIDIA Corporation GF100GL [Quadro 4000] (rev a1)
    

    從這裡可以得出顯示卡型號為Quadro 4000。

  1. 安裝kernel-devel

    sudo yum install kernel-devel
    
  2. 將nouveau驅動加入黑名單,在/etc/modprobe.d/blacklist.conf(CentOS 7下為/usr/lib/modprobe.d/dist-blacklist.conf)中加入blacklist nouveau

  3. 備份initramfs檔案

    sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
    
  4. 重建initramfs檔案

    sudo dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
    
  5. 關機重啟。由於此時nouveau驅動已經被禁用,桌面的顯示效果非常差。

  6. 進入文字介面

    sudo init 3
    

    會直接進入文字介面。

  7. 在文字介面登入後直接安裝

    sh NVIDIAxxx --kernel-source-path=/usr/src/kernels/x.xx.x-xxxxx
    

    其中NVIDIAxxx為nvidia驅動指令碼檔案,x.xx.x-xxxx為kernel版本號。

手動編譯顯示卡驅動的一個麻煩之處在於,每次更新kernel之後,都會出現無法進入圖形介面的情況,此時需要重新安裝顯示卡驅動。

  1. 更新kernel,重啟,發現無法進入圖形介面;
  2. 按下Alt+F2,進入文字介面,以root身份登陸;
  3. 備份initramfs檔案
  4. 重建initramfs檔案
  5. 重啟,按下Alt+F2,進入文字介面,以root身份登陸;
  6. 執行第七步;再重啟;
sh ./NVIDIA-Linux-xxxxx --uninstall