前記:因爲實習公司剛到一批機器,需要配置環境,此前沒有對服務器進行過驅動安裝,一步一步坑走過來,血與淚的教訓,注意,本博客僅適用與centors7顯卡驅動安裝且未裝過任何驅動,若之前已經裝有驅動,請全部卸載重裝,默認你是root權限
查看系統型號:
cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
1.查看顯卡型號
lspci | grep -i nvidia
2.查看顯卡驅動版本
cat /proc/driver/nvidia/version
沒有結果則表示驅動未安裝
3.查看內核版本
uname -r
版本號爲:3.10.0-957.el7.x86_64
########以下過程非必需,跳過######
從ELRepo源安裝顯卡驅動
1.添加ELRepo源
a.首先導入公共密鑰
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
b.然後安裝ELRepo
對於CentOS-7:
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
2.查找合適的驅動
a.安裝顯卡檢查程序
yum install nvidia-detect
b.檢查顯卡驅動信息
nvidia-detect -v
410.78爲需安裝的顯卡版本號,也可以去英偉達官網,下載驅動安裝,因爲這個版本去yum源裏面沒有搜索到,我直接去英偉達官網下載cuda相應的驅動
3.yum搜索驅動:yum search kmod-nvidia-410.78
(不一定會有,我的這個型號就沒有)
3.安裝驅動:yum -y install kmod-nvidia-410.78
xxxx爲檢測出的驅動型號
注意:yum不一定會有對應的驅動,因此這個方法可能不會成功
############以下過程必須###########
4.安裝編譯環境:gcc、kernel-devel、kernel-headers
(1)安裝gcc、g++編譯器
yum install gcc gcc-c++
問題:Error: Package: glibc-2.17-196.el7_4.2.i686 (updates) Requires: glibc-common = 2.17-196.e
解決:更換yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
yum repolist
mv /boot/initramfs-(uname−r).img/boot/initramfs− (uname -r).img
yum install -y "kernel-devel-uname-r == $(uname -r)"
查看是否安裝成功:gcc -v
(2)安裝kernel-devel、kernel-headers
yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
問題: No package kernel-devel-uname-r == 3.10.0-957.el7.x86_64 available.
解決: 同上更換yum源
5.安裝epel和dkms
yum -y install epel-release
yum --enablerepo=epel install dkms
問題: GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6"
解決: vim /etc/yum.repos.d/epel.repo
將[epel]下的gpgcheck=1,改爲gpgcheck=0
6.屏蔽默認帶有的nouveau(linux系統自帶的顯卡驅動,不屏蔽的話會產生衝突)
(1)打開/lib/modprobe.d/dist-blacklist.conf(此位置針對本機centors7,ubuntu可能不一樣)
然後添加以下語句:
blacklist nouveau
(2)重建initramfs image步驟
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)
(3)重啓reboot,查看nouveau是否被禁用: lsmod | grep nouveau
沒有輸出則表示被禁用
7.安裝驅動:sh NVIDIA-Linux-x86_64-384.145.run --kernel-source-path=/usr/src/kernels/3.10.0-957.el7.x86_64 -k $(uname -r)
(驅動型號去Nvidia官網根據顯卡查看下載,3.10.0-957.el7.x86_64爲內核版本)
可能的問題:
1.報錯:ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding.
解決辦法:nouveau未禁用,禁用後重啓
2.問題:ERROR: Unable to load the kernel module 'nvidia.ko'
解決辦法:sh NVIDIA-Linux-x86_64-384.145.run --kernel-source-path=/usr/src/kernels/3.10.0-957.el7.x86_64 -k $(uname -r)
注意要添加kernel-source-path
3.安裝到最後一步出現:Unable to load the ‘navidia-drm’ kernel module
解決辦法:
8.查看驅動是否成功安裝
出現以下界面,且nvidia-smi成功顯示則表明成功安裝(可能需要重啓)
參考文獻:
https://blog.csdn.net/j790675692/article/details/78133551
https://www.jianshu.com/p/e2aab8e38cac
https://blog.csdn.net/ksws0292756/article/details/79160742
http://linux.it.net.cn/CentOS/course/2016/0725/24163.html