新硬件装老系统?手把手解决Ubuntu18.04下Realtek 2.5G网卡没网络的尴尬
新硬件装老系统手把手解决Ubuntu18.04下Realtek 2.5G网卡没网络的尴尬最近给工作室配了台新主机华硕主板搭配11代i7想着性能应该杠杠的。结果装完Ubuntu18.04傻眼了——网卡死活识别不出来。作为一名常年和Linux打交道的开发者这种新硬件装老系统的兼容性问题其实很常见。今天就带大家一步步解决Realtek 2.5G网卡在Ubuntu18.04下的驱动安装难题。1. 问题诊断为什么新网卡在老系统上失联先说说这个问题的本质。Realtek RTL8125这类2.5G网卡是近几年才普及的新硬件而Ubuntu18.04发布于2018年其默认内核版本(4.15)根本不可能预装对新硬件的支持。这就好比给老爷车装了个最新款的涡轮增压器——硬件再先进ECU不认也是白搭。几个关键判断点lspci | grep -i ethernet命令能看到网卡设备但无驱动加载ifconfig -a输出中找不到eth0或enpXsX这类网卡接口dmesg | grep r8125显示驱动加载失败或硬件未识别遇到这种情况别慌手动编译驱动就能解决。下面我会用最稳妥的DKMS方案确保系统更新后驱动也能自动重建。2. 驱动准备从源码到编译环境2.1 获取官方驱动源码首先访问Realtek官网下载专区https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software选择对应版本时要注意确认网卡型号是RTL8125通过Windows设备管理器或lspci -nn | grep 8125下载标有2.5G Ethernet LINUX driver r8125的Unix/Linux版本当前最新稳定版是9.009.01但后续版本也兼容下载后传到Ubuntu系统或用U盘拷贝。我习惯用scp传输scp r8125-9.009.01.tar.gz userip:/home/user/2.2 搭建编译环境Ubuntu18.04需要先配置基础开发工具sudo apt update sudo apt install -y build-essential linux-headers-$(uname -r) dkms常见坑点如果遇到Unable to locate package linux-headers-xxx先执行sudo apt --fix-broken install企业内网可能需要先配置代理注意此处不涉及任何敏感网络工具3. 驱动安装从临时方案到永久配置3.1 快速测试驱动解压并运行自动安装脚本tar xvf r8125-9.009.01.tar.gz cd r8125-9.009.01 sudo chmod x autorun.sh sudo ./autorun.sh如果看到Driver installed successfully执行ifconfig应该能看到网卡了。但这种方式只是临时生效重启后就会失效。3.2 DKMS永久安装方案把驱动纳入DKMS管理系统才能应对内核更新sudo cp -r ~/r8125-9.009.01 /usr/src/r8125-9.009.01创建DKMS配置文件/usr/src/r8125-9.009.01/dkms.confPACKAGE_NAMERealtek_r8125 PACKAGE_VERSION9.009.01 BUILT_MODULE_NAMEr8125 DEST_MODULE_LOCATION/updates/dkms AUTOINSTALLyes MAKE[0]make -C src/ all CLEANmake -C src/ clean注册并编译驱动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验证驱动状态dkms status | grep r8125 # 应该显示r8125, 9.009.01: added, built, installed4. 系统调优与故障排查4.1 处理内核更新问题DKMS虽然能自动重建驱动但某些情况下可能需要手动干预方案一创建自动恢复脚本#!/bin/bash dkms remove r8125/9.009.01 --all dkms install -m r8125 -v 9.009.01 depmod -a modprobe r8125方案二临时锁定内核版本不推荐长期使用sudo apt-mark hold linux-image-$(uname -r) sudo apt-mark hold linux-headers-$(uname -r)4.2 性能优化参数在/etc/modprobe.d/r8125.conf中添加options r8125 speed2500 duplexfull autonegoff查看当前链路状态ethtool eth0 # 关注Speed/Duplex/Auto-negotiation字段4.3 常见错误处理问题1编译时报错field has incomplete type解决方法升级gcc到7.x以上版本sudo apt install gcc-7 g-7 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70问题2modprobe报错Unknown symbol需要重新生成模块依赖sudo depmod -a sudo update-initramfs -u5. 替代方案评估如果不想折腾驱动编译还有几个备选方案方案对比表方案优点缺点适用场景手动编译DKMS永久生效支持内核更新步骤复杂长期使用的生产环境升级到Ubuntu20.04开箱即用可能破坏现有环境新项目部署USB转以太网即插即用性能损失临时调试使用更换Intel网卡内核原生支持硬件成本采购新设备时个人建议如果是开发测试机用USB网卡临时应付也行但生产环境还是老老实实装官方驱动最稳妥。最近帮客户部署的几台机器都是这样解决的运行半年多从没出过网络问题。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2576182.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!