一:下載驅動
訪問其官網:http://www.geforce.cn/drivers 根據你自己的顯卡型號,選擇相應的顯卡,進行下載,下載下來的是一個.run 的文件。(如:NVIDIA-Linux-x86_64-390.48.run)
二:查看系統內核版本:uname -r
# uname -r
三:下載與系統內核版本對應的kernel-devel、kernel-headers,通過rpm命令安裝
通過http://rpm.pbone.net/網站搜索與系統內核版本對應的rpm包。
kernel-headers-3.10.0-123.el7.x86_64.rpm、kernel-devel-3.10.0-123.el7.x86_64.rpm
安裝rpm包
rpm -ivh kernel-headers-3.10.0-123.el7.x86_64.rpm
rpm -ivh kernel-devel-3.10.0-123.el7.x86_64.rpm
注:因本人裝的系統是centos7.0,通過yum install kernel-devel、kernel-headers安裝的kernel-headers版本3.10.0-693.el7.x86_64與系統內核版本3.10.0-123.el7不匹配,在後續安裝顯卡驅動的過程中會報"Your kernel headers for kernel 3.10.0-123.el7.x86_64 cannot be found"的錯誤。本人嘗試過運用yum install -y "kernel-devel-uname-r == $(uname -r)" 去解決上述問題,但以失敗告終,所以最後採用手動下載rpm包的方式安裝。
四:修改/etc/modprobe.d/blacklist.conf 文件,以阻止 nouveau 模塊的加載
方法: 添加blacklist nouveau,註釋掉blacklist nvidiafb(如果存在)
blacklist.conf不存在時,執行下面的腳本
# echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist.conf
五:重新建立initramfs image文件
# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
# dracut /boot/initramfs-$(uname -r).img $(uname -r)
六:安裝dkms
# yum install dkms -y
注:如果沒有安裝dkms模塊,在安裝顯卡驅動的時候會導致"Unable to load the 'nvidia-drm' module"的錯誤。如果確認已安裝了dkms模塊,但是安裝顯卡驅動的時候還是出現"Unable to load the 'nvidia-drm' module"的錯誤,請在BIOS裏面檢查你的UEFI是否開啓,如果開啓的話請立馬關掉它(這個很溼重要,因爲它很有可能導致你的kernel安裝失敗,筆者就遇到了這個坑,浪費了好多時間),具體怎麼關掉就不多說,由於每種電腦型號的BIOS都有所不同。
七:執行以下安裝腳本
./NVIDIA-Linux-x86_64-390.48.run --kernel-source-path=/usr/src/kernels/$(uname -r) -k $(uname -r) --dkms -s
八:驗證是否安裝成功
# nvidia-smi
出現下圖,說明顯卡驅動已安裝成功。
遇到的問題:
ERROR: Unable to load the kernel module 'nvidia.ko'.
原因是內核默認開啓了nouveau模塊,如果沒有執行第四步會報該錯誤。
Unable to load the 'nvidia-drm' module
沒有安裝dkms模塊導致
Your kernel headers for kernel 3.10.0-123.el7 cannot be found
原因是找不到與內核匹配的kernel-header庫文件,這就是爲什麼要執行第三步手動下載安裝RPM包。
其他注意事項:
--dkms 可以將Nvidia模塊編譯進內核默認加載模塊,以後升級內核時不需要重新重新安裝驅動
-s 選項是silence模式安裝,去掉-s是交互式模式安裝