尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

新硬件装旧系统?手把手解决Ubuntu 18.04下Realtek 2.5G网卡没网络的尴尬

新硬件装旧系统?手把手解决Ubuntu 18.04下Realtek 2.5G网卡没网络的尴尬 新硬件装旧系统手把手解决Ubuntu 18.04下Realtek 2.5G网卡没网络的尴尬那天下午当我兴奋地在新买的华硕主板上安装Ubuntu 18.04时突然发现右上角那个熟悉的有线连接图标消失了。作为一名长期依赖Linux进行开发的程序员我立刻意识到这是新硬件与旧系统不兼容的典型症状。Realtek 2.5G网卡在Ubuntu 20.04上运行良好但为了项目需要我必须使用18.04这个LTS版本。接下来的几个小时里我经历了一场从驱动编译到系统集成的技术冒险最终不仅解决了问题还找到了让驱动永久存活的妙招。1. 问题诊断与前期准备遇到网络连接问题时很多人的第一反应是检查网线或路由器。但在Linux系统中新硬件不被识别往往是内核驱动缺失导致的。要确认这一点我们需要进行系统级的排查。首先打开终端输入以下命令查看网卡识别情况lspci | grep -i ethernet如果输出中包含Realtek Semiconductor Co., Ltd. Device 8125之类的信息说明硬件已被检测到但缺乏驱动。进一步验证可以尝试ifconfig -a这个命令会显示所有网络接口包括未激活的。如果看不到eth0或enpXsXX代表数字这类有线接口基本可以确定是驱动问题。关键检查点确认网卡型号完全匹配RTL8125/8168/8411检查系统内核版本uname -r确保已安装基本构建工具build-essential注意Ubuntu 18.04默认内核版本为4.15而Realtek 2.5G网卡需要更高版本的内核支持。这就是问题的根源所在。2. 驱动获取与手动编译Realtek官方提供了Unix/Linux驱动源码但官网导航可能不太直观。直接访问Realtek下载中心选择Network Interface Controllers类别下的2.5G Ethernet LINUX driver r8125。下载的驱动包通常是这样的命名格式r8125-9.009.01.tar.bz2解压后进入目录你会看到这些关键文件autorun.sh src/ (驱动源代码) README (安装说明)编译安装前需要确保系统已准备好构建环境sudo apt update sudo apt install linux-headers-$(uname -r) dkms libelf-dev然后执行编译安装sudo chmod x autorun.sh sudo ./autorun.sh这个过程会编译驱动模块(.ko文件)将其安装到/lib/modules/对应内核版本目录运行depmod更新模块依赖加载新驱动常见问题处理错误类型解决方案Header文件缺失安装准确的linux-headers包编译失败检查gcc版本必要时降级权限不足确保所有操作使用sudo模块加载失败检查内核日志(dmesg)3. DKMS驱动持久化方案手动编译的驱动虽然能用但有两个致命缺陷系统内核升级后会失效需要手动重新编译DKMS(Dynamic Kernel Module Support)正是解决这个问题的完美方案。它会自动为每个新内核重新编译驱动。3.1 配置DKMS首先将驱动源码复制到DKMS标准目录sudo cp -r ~/r8125-9.009.01 /usr/src/r8125-9.009.01然后在驱动目录创建dkms.conf配置文件sudo nano /usr/src/r8125-9.009.01/dkms.conf文件内容如下根据实际版本调整PACKAGE_NAMEr8125 PACKAGE_VERSION9.009.01 BUILT_MODULE_NAME[0]r8125 DEST_MODULE_LOCATION[0]/updates/dkms AUTOINSTALLyes注册并安装DKMS模块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验证安装dkms status应该能看到类似输出r8125, 9.009.01, 4.15.0-xx-generic, x86_64: installed3.2 内核升级处理策略即使有了DKMS有时仍需手动干预。我推荐两种策略策略一创建自动恢复脚本#!/bin/bash # 网卡驱动恢复脚本 dkms install -m r8125 -v 9.009.01 depmod -a modprobe r8125 systemctl restart networking策略二选择性内核更新# 查看可用内核 apt list --installed | grep linux-image # 锁定当前内核 sudo apt-mark hold linux-image-$(uname -r) sudo apt-mark hold linux-headers-$(uname -r)4. 高级调试与优化驱动安装后还可以进一步优化网络性能。Realtek 2.5G网卡有几个可调参数查看当前设置ethtool -g enpXsX # 查看环形缓冲区 ethtool -k enpXsX # 查看卸载设置推荐调整的参数sudo ethtool -G enpXsX rx 4096 tx 4096 # 增大缓冲区 sudo ethtool -K enpXsX gro on gso on tso on # 启用硬件卸载将这些设置持久化创建service文件[Unit] DescriptionRealtek NIC tuning [Service] Typeoneshot ExecStart/sbin/ethtool -G enpXsX rx 4096 tx 4096 ExecStart/sbin/ethtool -K enpXsX gro on gso on tso on [Install] WantedBymulti-user.target5. 备选方案与故障转移如果上述方法都失败还有几个备选方案方案A使用mainline内核# 安装Ubuntu主线内核工具 sudo apt install ubuntu-mainline-kernel # 安装较新内核如5.4 LTS sudo ubuntu-mainline-kernel install 5.4.0-rc1方案BUSB网卡临时方案使用兼容性更好的USB转以太网适配器常见芯片型号AX88179、RTL8153方案C虚拟机桥接# 在支持的主机上创建虚拟机 virt-install --name ubuntu18 \ --memory 4096 \ --disk size20 \ --network bridgebr0 \ --os-variant ubuntu18.04经过这番折腾我的Realtek 2.5G网卡终于在Ubuntu 18.04上稳定工作了。最让我自豪的是那个自动恢复脚本——上周系统自动升级内核后它完美地完成了驱动重装工作让我免去了又一次手动配置的麻烦。
返回列表