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)可查看设备使用的驱动模块,确认驱动是否加载成功。