2017年2月16日 星期四

CentOS 7上安裝Nvidia驅動程式

安裝過程和《Fedora上安裝Nvidia的驅動程式 》差不多,參考了一文《NVIDIA GeForce Driver Installation on CentOS 7 Linux 64-bit 》,但加入了DKMS的支援。此次安裝的硬體是i7-930,顯卡是Nvidia GTX 650。

下面是安裝順序,注意都用root執行:
  1. yum update
  2. reboot

重新開機後,一樣還在圖形模式
  1. yum install kernel-devel-$(uname -r) 
  2. yum install gcc dkms acpid
  3. echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
  4. 修改GRUB設定/etc/sysconfig/grub
    • 改成 GRUB_CMDLINE_LINUX="rhgb quiet rd.driver.blacklist=nouveau"
  5. grub2-mkconfig -o /boot/grub2/grub.cfg
  6. yum remove xorg-x11-drv-nouveau
  7. mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
  8. dracut /boot/initramfs-$(uname -r).img $(uname -r)
  9. systemctl disable gdm
  10. reboot

重新開機進入指令模式,開始安裝Nvidia driver
  1. chmod +x NVIDIA-Linux-x86_64-375.26.run
  2. ./NVIDIA-Linux-x86_64-375.26.run
  3. systemctl enable gdm

重新開機進入圖形模式,用下面兩個指令看安裝好了沒
  • nvidia-settings
  • nvidia-smi
或是參考《監控Nvidia顯示卡》用gpustat、gmonitor來監控效能

_EOF_

7 則留言:

  1. 版主您好,幾天前依照您的步驟在實驗室server安裝NVIDIA驅動,
    機器型號是 NVIDIA Tesla k80 系統是 CentOS 7 安裝driver版本為384.66
    安裝完Nvidia driver後重開機便無法開啟圖形介面,
    nvidia-smi指令顯示有成功安裝384.66版本的driver,
    不知道是不是驅動有和什麼衝突或是桌面設定錯誤,
    請問版主是否有步驟可以修正或是一些指令可以檢查哪裡出錯,感謝!

    回覆刪除
    回覆
    1. 可能是因為圖形介面被設定從Tesla k80上面來開,但你的螢幕是接在主機板。我在CentOS 7上面沒有處理過這樣的問題,但在Ubuntu上面有解決過,請參考:
      http://2formosa.blogspot.tw/2017/05/x-window-select-gpu.html

      上述解法是可以成功開啟圖形介面,但要開始用CUDA加速的時候,CUDA runtime又會找不到GPU卡,相似的錯誤訊息請參考:
      http://2formosa.blogspot.tw/2017/07/gromacs-gpu-error.html

      也就是要在“使用圖形介面”與"使用GPU加速“兩者之間做個妥協
      若你有找到可以同時滿足這兩個需求的解法也請分享,謝謝

      刪除
    2. 非常感謝版主的回覆。
      請問若想要復原回未安裝nvidia driver的狀態再重新安裝看看,
      除了:
      ./NVIDIA-linux-x86_64-384.66.run --uninstall 指令外
      還需要哪些步驟讓系統回到未安裝nvidia driver的狀態?
      不好意思一直麻煩您,謝謝!

      刪除
    3. 我猜應該是這樣做
      1. 先設定從文字模式開機
      2. 開機後,用./NVIDIA-linux-x86_64-384.66.run --uninstall移除Nvidia driver
      3. 安裝nouveau,用yum install xorg-x11-drv-nouveau
      4. 修改/etc/modprobe.d/blacklist.conf,把nouveau從blacklist裡面拿掉
      5. 修改/etc/sysconfig/grub,裡面GRUB_CMDLINE_LINUX,把nouveau從blacklist拿掉
      6. 更新grub與initramfs,指令應該類似
      grub2-mkconfig -o /boot/grub2/grub.cfg
      dracut /boot/initramfs-$(uname -r).img $(uname -r)
      7. 開啟gdm(圖形登入畫面)
      systemctl enable gdm
      8. 重新開機

      我猜這樣應該就可以動了~祝好運

      備註:通常在安裝這種會動到圖形介面、或是會更新整個作業系統的動作,除非很熟悉過程,不然建議先把系統做個備份。備份方式可以參考這篇
      http://2formosa.blogspot.tw/2017/08/clonezilla-for-backup.html

      刪除
    4. 非常感謝您的耐心回覆
      我會再找資料試看看,若有成功再回覆您
      再次謝謝版主的幫忙!

      刪除
  2. 請問我本身是WINDOWS的使用者, 用WINDOWS下載NV給LINUX的driver後儲存在USB pen drive裡面, 要怎樣讓Cent可以認到我USB裡面的NV Linux driver

    回覆刪除
    回覆
    1. 猜測你的USB隨身碟應該是NTFS方式格式化,所以Linux讀不到。兩種方法可以解決:
      1. 另外找一個用FAT32或exFAT格式化的隨身碟存
      2. 搜尋"CentOS NTFS"的解法讓Linux可以讀取NTFS格式化隨身碟

      刪除