新硬件装老系统?手把手解决Ubuntu 18.04下Realtek 2.5G网卡没网络的尴尬
当你兴奋地拆开新主机的包装,装上Ubuntu 18.04准备大干一场时,却发现右上角那个小小的有线网络图标始终不肯出现——这种场景对于需要在新硬件上运行旧系统的开发者来说再熟悉不过了。我最近就遇到了这个棘手的问题:一块Realtek 2.5G网卡在Ubuntu 18.04上完全无法识别。经过一番折腾,终于找到了完美的解决方案,现在把这些经验分享给你。
1. 问题诊断与准备
首先需要确认的是,你的网卡确实是因为驱动问题导致无法工作。打开终端,输入以下命令查看网卡状态:
lspci -nnk | grep -iA3 net如果输出中包含类似Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller的信息,但后面没有显示Kernel driver in use,那就确认是驱动问题了。
常见误区排查:
- 确保网线已正确连接且路由器/交换机工作正常
- 检查BIOS设置中是否禁用了板载网卡
- 尝试不同的USB端口(如果是USB网卡)
提示:在开始安装驱动前,建议先连接手机USB网络共享或准备一个USB无线网卡,以便在安装过程中下载必要文件。
2. 驱动获取与临时安装
Realtek官方提供了Linux驱动源码,但找到正确的版本需要一些技巧:
- 访问Realtek官网的网络驱动下载页面
- 选择
2.5G Ethernet LINUX driver r8125 for kernel up to 5.17版本 - 下载最新驱动包(当前是r8125-9.009.01.tar.bz2)
下载完成后,解压并临时安装驱动:
tar -xjvf r8125-9.009.01.tar.bz2 cd r8125-9.009.01 sudo chmod +x autorun.sh sudo ./autorun.sh这个临时方案能立即恢复网络连接,但会在系统重启后失效。要永久解决问题,我们需要更完善的方案。
3. 使用DKMS永久安装驱动
DKMS(Dynamic Kernel Module Support)是解决内核更新后驱动失效的最佳方案。以下是详细步骤:
3.1 准备编译环境
首先安装必要的开发工具和内核头文件:
sudo apt update sudo apt install -y build-essential dkms linux-headers-$(uname -r)3.2 配置DKMS
将驱动源码移动到系统目录并创建DKMS配置文件:
sudo cp -r ~/r8125-9.009.01 /usr/src/r8125-9.009.01创建/usr/src/r8125-9.009.01/dkms.conf文件,内容如下:
PACKAGE_NAME="Realtek_r8125" PACKAGE_VERSION="9.009.01" BUILT_MODULE_NAME[0]="r8125" DEST_MODULE_LOCATION[0]="/updates/dkms" AUTOINSTALL="yes" MAKE[0]="make -C src/ all" CLEAN[0]="make -C src/ clean"3.3 安装并激活驱动
执行以下命令完成安装:
sudo dkms add -m r8125 -v 9.009.01 sudo dkms build -m r8125 -v 9.009.01 sudo dkms install -m r8125 -v 9.009.01 sudo depmod -a sudo modprobe r8125现在,驱动已经与内核绑定,即使系统更新也会自动重新编译。
4. 内核更新后的处理策略
虽然DKMS能自动处理大部分情况,但有时仍需要手动干预。这里提供两种应对策略:
4.1 自动恢复脚本
创建/usr/local/bin/net_recovery.sh:
#!/bin/bash sudo dkms install -m r8125 -v 9.009.01 sudo depmod -a sudo modprobe r8125赋予执行权限并创建快捷方式:
sudo chmod +x /usr/local/bin/net_recovery.sh sudo ln -s /usr/local/bin/net_recovery.sh /usr/bin/netfix以后遇到网络问题时,只需运行sudo netfix即可。
4.2 内核版本管理
如果系统稳定性比新特性更重要,可以考虑锁定内核版本:
sudo apt-mark hold linux-image-$(uname -r) sudo apt-mark hold linux-headers-$(uname -r)要解除锁定:
sudo apt-mark unhold linux-image-$(uname -r) sudo apt-mark unhold linux-headers-$(uname -r)5. 疑难问题排查
即使按照上述步骤操作,仍可能遇到各种问题。以下是一些常见问题的解决方法:
问题1:编译错误
- 确保安装了正确版本的内核头文件
- 检查gcc版本是否兼容
问题2:驱动加载但网络不通
- 检查
dmesg | grep r8125输出 - 尝试手动设置速度和双工模式:
sudo ethtool -s enpXsY speed 2500 duplex full autoneg off问题3:系统休眠后网络失效
- 创建
/etc/pm/sleep.d/10_network脚本:
#!/bin/sh case "$1" in resume|thaw) modprobe -r r8125 modprobe r8125 ;; esac经过这些步骤,你的Realtek 2.5G网卡应该能在Ubuntu 18.04上稳定工作了。我在三台不同配置的机器上测试了这个方案,包括一台搭载Intel 12代处理器的NUC和两台不同品牌的台式机,都能完美解决驱动问题。