文章目录
前言
刚买的centos服务器,桌面频繁卡死
暂时解决:
ps -ef|grep gnome-shell
kill -9 pid
之后系统会自动重启gnome-shell
已知,没有配置过显卡驱动,linux默认会用自带的nouveau显卡驱动,而这个开源驱动的性能很差
所以,现在要给centos安装一个合适的显卡驱动替换掉nouveau
一、确定用哪个驱动
厂家NVIDIA提供的,支持多个版本,不过要注意和显卡的型号对应
NVIDIA下载驱动
进入后,可以看到
- 确定显卡信息
[root@localhost ~]# lspci | grep -i vga
02:00.0 VGA compatible controller: NVIDIA Corporation GK208B [GeForce GT 710] (rev a1)
显卡型号就是GeForce GT 710
- 确定内核系统版本
[root@localhost ~]# cat /etc/system-release
CentOS Linux release 7.9.2009 (Core)
[root@localhost ~]# uname -r
3.10.0-1160.el7.x86_6
内核版本是3.10.0-1160.el7.x86_6
- 查看显卡驱动
[root@localhost ~]# cat /proc/driver/nvidia/version
cat: /proc/driver/nvidia/version: 没有那个文件或目录
表示当前没有写显卡驱动,那就是默认的nouveau在工作
查看正在工作驱动中的nouveau驱动
[root@localhost drm]# lsmod |grep nouveau
nouveau 1899494 16
mxm_wmi 13021 1 nouveau
wmi 21636 2 mxm_wmi,nouveau
i2c_algo_bit 13413 1 nouveau
ttm 96673 1 nouveau
drm_kms_helper 186531 1 nouveau
drm 456166 8 ttm,drm_kms_helper,nouveau
video 24538 1 nouveau
或者
[root@localhost etc]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 470.182.03 Fri Feb 24 03:29:56 UTC 2023
GCC version: gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
根据以上信息下载对应版本的驱动(.run)
二、安装前
1. 屏蔽自带的nouveau
它与nvidia显卡官方驱动会产生冲突,所以要安装nvidia官方驱动必须先禁止nouvea驱动;
vim /usr/lib/modprobe.d/dist-blacklist.conf
注释掉blacklist nvidiafb
添加:
blacklist nouveau
options nouveau modeset=0
- 重建initramfs images步骤,给当前镜像备份
# 备份
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
# 重新生成
dracut /boot/initramfs-$(uname -r).img $(uname -r)
要等一会...
reboot
- 可以看是否屏蔽成功
lsmod | grep nouveau
啥都没有,则表示屏蔽成功
2. 安装依赖
yum install kernel-devel kernel-headers gcc dkms gcc-c++
需要注意 kernel-devel的版本和kernel内核的版本一致
可以事先查看一下
[root@k8s-node3 dev]# yum list | grep kernel-devel
三、安装
- 驱动上传到根目录
- 赋予权限
chmod u+x NVIDIA-Linux-x86_64-470.182.03.run
- 执行
# 停止X服务
init 3
./NVIDIA-Linux-x86_64-470.182.03.run --kernel-source-path=/usr/src/kernels/3.10.0-1160.66.1.el7.x86_64 -k $(uname -r)
注意格式:
【驱动文件】 --kernel-source-path=/usr/src/kernels/【内核版本】-k $(uname -r)
例:./NVIDIA-Linux-x86_64-550.54.14.run --kernel-source-path=/usr/src/kernels/3.10.0-1160.108.1.el7.x86_64 -k $(uname -r)
重启
重启之前会进入几个选择
1、Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择 No
2、Install nvidia’s 32-bit compatibility libraries?选择 No
3、Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes
- 最后检查一下
nvidia-smi
四、更换驱动
1. 是否要更新驱动,更新哪版的驱动
安装elrepo源
yum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
yum -y install nvidia-detect
[root@localhost gdm]# nvidia-detect -v
Probing for supported NVIDIA devices...
[10de:1cb1] NVIDIA Corporation GP107GL [Quadro P1000]
This device requires the current 525.85.05 NVIDIA driver kmod-nvidia
探测当前的英伟达设备,Quadro P1000,发现这个设备需要525.85.05版本以上的显卡驱动
但是当前显卡驱动是 470.182.03
2. 找到合适的显卡驱动
在官网中根据显卡型号找到了对应的显卡驱动
看一下,这里的版本默认显示的都是最新的版本,看一下是符合当前显卡需要的要求的
下载
大概几百M
(1) . 查看当前显卡信息
显卡型号:
[root@localhost gdm]# lspci | grep -i nvidia
02:00.0 VGA compatible controller: NVIDIA Corporation GP107GL [Quadro P1000] (rev a1)
02:00.1 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev a1)
当前显卡型号是英伟达公司的【Quadro P1000】显卡
(2) . 查看当前显卡驱动信息
[root@localhost gdm]# nvidia-smi --query-gpu=driver_version --format=csv,noheader --id=0
470.182.03
驱动(程序)版本:
主版本号:次版本号:修订版本号
[root@localhost gdm]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 470.182.03 Fri Feb 24 03:29:56 UTC 2023
GCC version: gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
内核版本 Kernel Module 为 470.182.03 , 系统内核Red Hat 4.8.5-44
以上信息给出,显卡驱动版本是 470.182.03
3. 删除旧驱动
nvidia-uninstall
./驱动脚本 --uninstall
4. 安装新驱动
# 授权
chmod +x NVIDIA-Linux-x86_64-510.68.02.run
# 停止X服务
init 3
# 执行
./NVIDIA-Linux-x86_64-470.182.03.run --kernel-source-path=/usr/src/kernels/3.10.0-1160.66.1.el7.x86_64 -k $(uname -r)
# 确认
nvidia-smi
# 启动X服务
init 5
异常
印象中记得,这个问题只需要根据它的提示装一些东西就ok了,所以大胆的ok吧!
- yumcache 异常
主要看最后一行
for repository: epel/x86_64. 说明是这个仓储出了问题。
删除这个仓库
rm -rf /etc/yum.repos.d/epel.repo