在更新驅動前,需明確網卡硬件型號及當前驅動版本,避免驅動與硬件不匹配。
lspci -knn | grep -i network命令(適用于PCI/PCIe網卡),輸出結果中的“Ethernet controller”字段即為網卡型號(如“Intel Corporation 82545EM Gigabit Ethernet Controller”)。ethtool -i eth0(eth0為網卡接口名,可通過ip a命令確認)查看驅動名稱(driver字段)、版本號(version字段);或使用modinfo <驅動名稱>(如modinfo e1000)查看更詳細的驅動信息(包括固件版本、支持的模塊參數等)。編譯源代碼驅動或安裝.rpm包時,需提前安裝編譯工具及內核開發包,確保驅動能正確編譯和加載。
yum groupinstall "Development Tools"安裝gcc、make等編譯工具。yum install kernel-headers kernel-devel kernel-firmware安裝與當前內核版本匹配的開發包(版本號需一致,可通過uname -r查看內核版本)。若網卡驅動有現成的.rpm包(如Intel、Broadcom等廠商提供的CentOS兼容包),優先使用yum包管理器更新,避免手動編譯的復雜性。
sudo yum update,確保系統軟件包信息是最新的。sudo yum install kmod-<驅動名稱>(如kmod-e1000);sudo rpm -ivh <驅動包名>.rpm安裝(如sudo rpm -ivh netxtreme2-7.0.36-1.x86_64.rpm)。sudo systemctl restart network或sudo systemctl restart NetworkManager重啟網絡服務,使新驅動生效。若系統包管理器中沒有最新驅動,需從網卡制造商官網下載源代碼驅動(通常為.tar.gz格式),手動編譯安裝。
wget命令下載驅動包(如wget https://downloadmirror.intel.com/9180/eng/e1000-8.0.35.tar.gz),再用tar zxf <驅動包名>.tar.gz解壓。cd e1000-8.0.35/src/),運行make編譯驅動,再運行sudo make install安裝驅動(會將驅動模塊安裝到/lib/modules/$(uname -r)/kernel/drivers/net/目錄下)。sudo rmmod <舊驅動名稱>(如sudo rmmod e1000);sudo modprobe <新驅動名稱>(如sudo modprobe e1000);ethtool -i eth0,確認version字段已更新為新版本。systemctl restart network)即可加載新驅動;reboot),確保驅動完全加載。lsmod | grep <驅動名稱>(如lsmod | grep e1000),確認驅動模塊已加載;ping命令測試網卡是否能正常聯網(如ping www.baidu.com);dmesg | grep <驅動名稱>查看系統日志,確認無驅動加載錯誤(如“module not found”“firmware not loaded”等)。若安裝過程中出現“Error: Package X depends on Y”的依賴錯誤,可使用sudo yum --skip-broken install <驅動包名>跳過有問題的依賴(不推薦長期使用),或通過yum deplist <驅動包名>查看依賴關系,手動安裝缺失的依賴包。
uname -r查看內核版本,驅動文檔中會標注支持的版本范圍);sudo rmmod <新驅動名稱>),再加載舊驅動(sudo modprobe <舊驅動名稱>),或通過yum history undo <事務ID>回滾yum操作。