Centos7.6离线安装显卡驱动
背景:今天要给客户的机器远程装一个需要GPU才能跑的服务,客户是台干干净净刚虚拟化过的服务器,没有网路的单机环境。
1、查看显卡有关的信息
lshw -numeric -C display
可以看到客户的显卡是Matrox G200eW3,然后可以到官网上去找对应驱动网址:https://www.nvidia.cn/Download/index.aspx?lang=cn
当然这个Matrox G200eW3是找不到的(至少我找了好久,大佬请下面评论支招),我用的是人家运维人员有提前在服务器内准备好了的驱动文件
2、禁用自带的驱动项目nouveau
先查看nouveau驱动是否开启
lsmod | grep nouveau
执行以下动作:
修改dist-blacklist.conf文件
vim /lib/modprobe.d/dist-blacklist.conf
注释blacklist nvidiafb
#blacklist nvidiafb
添加下面两句:
blacklist nouveau
options nouveau modeset=0
3、重建initramfs image
执行如下步骤
#备份一份成bak文件
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
#重启镜像
dracut /boot/initramfs-$(uname -r).img $(uname -r)
#修改运行级别为文本模式
systemctl set-default multi-user.target
然后重启服务器
reboot
重启后:
4、安装kernel-devel、gcc
kernel-devel的版本一定要和内核版本一致,由于是离线安装,这里推荐一个网站搜索离线包:https://pkgs.org/
使用rmp安装方式需要很多依赖包,由于我没网我的方式是在一模一样的有网络的系统上执行以下动作
yum list | grep gcc
得到yum可以装的gcc的版本
由于之前用https://pkgs.org/这个网站,我知道了我要装的是 gcc-4.8.5-44.el7.x86_64,所以执行
yum deplist gcc-4.8.5-44.el7.x86_64
可以得到该gcc对应版本所需要的依赖以及顺序
列出来这么多包,有可能本机上有一些已经有了,可以通过以下命令查一查,比如查询有没有cpp,这类可以参看以下博客:http://www.51sjk.com/b1b101857/
rpm -qa | grep binutils
如果没有弹出搜索结果信息,证明没有这个依赖包,那么我们有三种方式可以下载我们所需要的依赖包,下面以搜索:binutils.x86_64 2.27-44.base.el7这个包为例(但事实上我在按此驱动的时候并不需要这个,我只是举个栗子)
1、使用网站下载
可以使用https://pkgs.org/网站搜索binutils,然后找到对应版本下载,这里不赘述
2、yumdownloader
yumdownloader --resolve --destdir=./ binutils
只出现了一个包,但似乎用这种方式不全,可能是由于我当前机器的依赖包已经满足直接安装了,所以只能找这个包自己而已
3、repotrack(最优)
repotrack binutils
可以看到出现了很多rpm包,这种方式就是把所有的可能需要的包都下载好了,包括支持binutils需要的包的包都列出
然后根据之前的yum deplist命令查找的需要的包单独放到某个文件夹下,等全部工作做好了后在该文件夹下执行以下命令安装gcc以及其依赖
rpm -Uvh *.rpm --nodeps --force
注:–force强制安装,具体使不适用force还请酌情处理
验证有没有成功:
gcc -v
kernel-devel请依照上面的方法安装,不再赘述。
不用装dkms,别装。
5、执行安装文件
将显卡安装文件的执行权限调至可运行
chmod u+x NVIDIA-Linux-x86_64-415.13.run
执行安装脚本
./NVIDIA-Linux-x86_64-375.39.run --kernel-source-path=/usr/src/kernels/3.10.0-862.el7.x86_64
请将上面内容改成你自己的位置,不要直接复制
开始安装
然后出现警告:
然后报错
(PS:navida安装报错的log地址:/var/log/nvidia-installer.log)
反复研究了一下报错的信息,然后仔细研究了一下kernel-devel的版本,发现我用的版本是kernel-devel-3.10.0-957.XXX.el7.x86_64,然而我的内核版本是3.10.0-957.el7.x86_64,我没有用内核版本,于是费尽周折找到了这些文件
安装这些文件后你可以再装一个libglvnd,装显卡的驱动运行的时候需要这个但由于离线环境是没网下不了的,你可以提前准备
这一切都搞完了之后再执行:
./NVIDIA-Linux-x86_64-450.80.02.run
安装完毕
安装这些文件后你可以再装一个libglvnd,装显卡的驱动运行的时候需要这个但由于离线环境是没网下不了的,你可以提前准备
[外链图片转存中…(img-sqAZdSKR-1609298294919)]
这一切都搞完了之后再执行:
./NVIDIA-Linux-x86_64-450.80.02.run
安装完毕
如有问题还请不吝赐教