CentOS驱动程序管理指南
在安装或管理驱动前,需先确认硬件型号。常用命令:
lspci | grep -i [设备类型]
(例如lspci | grep -i ethernet
查看网卡,lspci | grep -i nvidia
查看NVIDIA显卡);lsusb
。编译或安装驱动需依赖以下工具包:
sudo yum install gcc kernel-devel kernel-headers make dkms
gcc
:C语言编译器,用于编译源码驱动;kernel-devel
/kernel-headers
:内核头文件,驱动编译时需引用内核API;dkms
(动态内核模块支持):自动适配新内核版本,避免每次升级内核都需重新编译驱动。驱动来源分为三类(优先级从高到低):
yum
/dnf
)包含多数常见硬件的驱动(如Intel网卡、Realtek声卡),可直接通过包管理器安装(例如sudo yum install e1000e
安装Intel千兆网卡驱动);.run
格式闭源驱动);ELRepo是CentOS常用的第三方驱动仓库,提供匹配内核版本的NVIDIA驱动,安装流程如下:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo yum install elrepo-release
sudo yum install kmod-nvidia # 自动安装匹配当前内核的NVIDIA驱动
sudo reboot
nvidia-smi
命令,若显示GPU型号、驱动版本及显存占用等信息,则说明驱动安装成功。若官方仓库无适配版本的驱动,需手动编译安装(以NVIDIA为例):
/etc/modprobe.d/blacklist.conf
,添加以下内容:blacklist nouveau
options nouveau modeset=0
更新initramfs:sudo dracut -f /boot/initramfs-$(uname -r).img $(uname -r)
重启系统进入文本模式(init 3
)。.run
格式驱动(如NVIDIA-Linux-x86_64-535.161.07.run
),赋予执行权限并运行:chmod +x NVIDIA-Linux-x86_64-*.run
sudo ./NVIDIA-Linux-x86_64-*.run
按照向导完成安装(默认会覆盖旧驱动)。sudo reboot
nvidia-smi
,确认驱动加载。若官方仓库无对应网卡驱动,需手动编译:
lspci | grep -i ethernet
(例如输出Realtek RTL8111/8168/8411
);r8168-8.050.00.tar.gz
);tar -zxvf r8168-8.050.00.tar.gz
cd r8168-8.050.00/src
make clean modules
sudo make install
sudo depmod -a # 更新模块依赖
sudo modprobe r8168 # 加载驱动
ethtool -i eth0
(eth0
为网卡接口名,可通过ip link show
查看),若显示驱动为r8168
,则说明安装成功。驱动通常随系统包更新而升级,先运行以下命令更新系统:
sudo yum update
;sudo dnf update
。sudo yum update [驱动包名]
(例如sudo yum update nvidia-driver
);驱动安装后,默认可能不会开机自动加载,需将驱动模块添加到自动加载列表:
echo "[驱动模块名]" | sudo tee -a /etc/modules-load.d/[驱动名].conf
例如,NVIDIA驱动添加:echo "nvidia" | sudo tee -a /etc/modules-load.d/nvidia.conf
。
lspci -k | grep -A 2 -i [设备类型]
(例如lspci -k | grep -A 2 -i vga
)可查看设备使用的驱动模块,确认驱动是否加载成功。