准备工作
-
确认网卡型号
在终端执行:lspci | grep -i 'network\|ethernet' # PCI网卡 lsusb | grep -i 'network\|ethernet' # USB网卡
输出示例:
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller
-
检查驱动状态
lspci -k | grep -A 3 -i 'network' # 查看内核是否加载驱动 dmesg | grep -i 'eth0\|firmware' # 检查内核日志
- 若显示
kernel driver in use: r8169
,说明驱动已加载。 - 若显示
no driver found
或firmware missing
,需手动安装。
- 若显示
安装驱动的四种方法
方法1:使用系统自动安装(推荐)
-
Ubuntu/Debian
sudo apt update sudo apt install --reinstall linux-firmware # 更新固件 sudo reboot
-
RHEL/CentOS
sudo yum install linux-firmware sudo reboot
方法2:通过仓库安装驱动
-
搜索驱动包(以Realtek RTL8125为例):
apt search rtl8125 # Debian/Ubuntu yum search rtl8125 # RHEL/CentOS
-
安装驱动:
sudo apt install r8125-dkms # Ubuntu sudo dnf install r8125-dkms # Fedora
方法3:手动编译驱动(无仓库支持时)
-
安装编译依赖:
sudo apt install build-essential linux-headers-$(uname -r) # Debian/Ubuntu sudo yum install kernel-devel gcc make # RHEL/CentOS
-
下载并编译驱动(以Intel网卡为例):
wget https://downloadmirror.intel.com/15817/eng/e1000e-3.8.4.tar.gz tar -xvzf e1000e-3.8.4.tar.gz cd e1000e-3.8.4/src make sudo make install sudo modprobe e1000e # 加载驱动
方法4:使用DKMS(驱动需长期维护)
-
将驱动源码放入
/usr/src/
:sudo cp -r driver_source /usr/src/driver_name-1.0
-
注册并编译:
sudo dkms add -m driver_name -v 1.0 sudo dkms build -m driver_name -v 1.0 sudo dkms install -m driver_name -v 1.0
配置网络
-
启用网卡:
sudo ip link set eth0 up # 激活网卡(eth0为网卡名)
-
分配IP地址:
sudo dhclient eth0 # 自动获取IP(DHCP) # 或手动配置 sudo ip addr add 192.168.1.100/24 dev eth0 sudo ip route add default via 192.168.1.1
故障排除
-
驱动未加载:
sudo modprobe driver_name # 手动加载驱动 echo "driver_name" | sudo tee -a /etc/modules # 开机自动加载
-
固件缺失:
从官方固件库下载.fw
文件,放入/lib/firmware/
后重启。 -
WiFi网卡特殊处理:
部分无线网卡需启用非自由固件(如Broadcom):sudo apt install b43-fwcutter firmware-b43-installer # Ubuntu
安全与最佳实践
-
验证驱动来源:
- 仅从硬件官网或发行版仓库下载驱动。
- 检查文件哈希值(如
sha256sum driver.tar.gz
)。
-
备份系统:
修改内核驱动前建议备份:sudo timeshift --create # Ubuntu sudo dnf install timeshift # Fedora
-
优先使用开源驱动:
闭源驱动(如NVIDIA)可能导致兼容性问题,仅在必要时使用。
Linux对网卡的支持日益完善,90%的常见网卡可通过系统自动识别,遇到问题时可结合硬件型号、内核日志(dmesg
)和社区资源(如Ask Ubuntu、Arch Wiki)解决,保持系统更新是避免驱动问题的关键。
引用说明:
- 硬件检测命令参考自Linux man-pages项目
- 驱动编译流程遵循Linux Kernel Documentation
- 安全建议基于Open Source Security Foundation最佳实践
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7818.html