树莓派5双2.5G网卡扩展板实战:从开箱到测速全记录(附Ubuntu驱动安装避坑指南)

📅 发布时间:2026/7/10 6:13:01 👁️ 浏览次数:
树莓派5双2.5G网卡扩展板实战:从开箱到测速全记录(附Ubuntu驱动安装避坑指南)
树莓派5双2.5G网卡扩展板深度体验硬件装配、Ubuntu驱动攻坚与极限性能压榨最近手头拿到一块为树莓派5设计的双2.5G以太网扩展板这玩意儿算是把树莓派5那个隐藏的PCIE接口潜力彻底榨干了。对于像我这样喜欢折腾家庭实验室、软路由或者需要搭建小型高性能网络测试环境的玩家来说这无疑是个极具吸引力的玩具。它不再满足于千兆网络的瓶颈直接奔着2.5G去了而且还是双网口这意味着你可以玩出更多花样比如做带链路聚合的防火墙或者构建一个高速的内网文件交换节点。但理想很丰满现实是尤其是在Ubuntu这类非官方系统上驱动问题成了第一道拦路虎。这篇文章我就以一个实际用户的角度带你完整走一遍从开箱上电到在Ubuntu系统下搞定驱动最后用实测数据看看这块板子到底有多能跑的全过程。1. 硬件开箱与装配当树莓派5遇见PCIE扩展树莓派5相较于前代一个被热议但可能被普通用户忽略的升级就是那个16针的FPC连接器它背后是一路PCI Express 2.0 x1通道。这个接口的开放彻底改变了树莓派扩展生态的天花板。我拿到的这块扩展板设计非常紧凑直接通过排线连接到树莓派5的PCIE接口。核心思路很清晰通过一颗PCIE Switch芯片将树莓派5提供的一路PCIE通道拆分成两路独立的通道。然后每路通道连接一颗Realtek RTL8125B芯片从而实现两个独立的2.5Gbps以太网接口。这种方案在保证带宽的同时也确保了两个网口的独立性避免了共享总线可能带来的性能瓶颈。提示在连接FPC排线时务必确保树莓派5完全断电并且排线的金手指方向与插座缺口对齐。这个连接器比较精密用力不当容易损坏。装配过程其实没什么难度几步就能搞定准备工具你需要一把小号的十字螺丝刀用来固定扩展板附带的铜柱。有些扩展板可能采用免螺丝的卡扣设计但为了稳固我建议还是上螺丝。安装铜柱将附带的铜柱拧到树莓派5主板背面的四个螺丝孔上。这能垫高主板为背面的扩展板留出空间。连接排线这是最关键的一步。轻轻掀起树莓派5上PCIE接口的黑色卡扣将FPC排线金色触点一面朝向PCB板外侧插入然后压下卡扣锁紧。你会听到轻微的“咔哒”声。固定扩展板将扩展板对准铜柱用配套的小螺丝固定。最后把排线的另一端以同样方式连接到扩展板上的插座。完成后的形态扩展板就像树莓派5的一个“底座”两个醒目的RJ45网口并排而立状态指示灯也一目了然。整个装配过程如果顺利的话五分钟内就能完成。2. 初试牛刀在树莓派官方系统下的即插即用为了验证硬件本身是否工作正常最无脑的方法就是先上树莓派官方系统Raspberry Pi OS。我刷了一张最新的64位版本SD卡插卡、上电。开机后通过SSH登录运行ip link show或ifconfig命令。果然除了树莓派5自带的千兆网卡eth0之外系统里赫然多出了两个新接口eth1和eth2。这说明内核已经原生识别了RTL8125芯片完全无需额外操作。$ ip link show 1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff 3: eth1: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether yy:yy:yy:yy:yy:yy brd ff:ff:ff:ff:ff:ff 4: eth2: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether zz:zz:zz:zz:zz:zz brd ff:ff:ff:ff:ff:ff这种开箱即用的体验非常友好适合追求快速部署、不想在驱动上耗费精力的用户。你可以立刻开始配置网络桥接、绑定或者简单的多网口路由。但我的目标环境是Ubuntu Server那里有更丰富的软件生态和更新的内核版本挑战也随之而来。3. 攻坚克难Ubuntu Server系统下的驱动安装全指南切换到Ubuntu 22.04 LTS Server后情况就不同了。默认情况下ifconfig -a或ip link show里根本看不到新增的网卡身影。这是因为Ubuntu的内核可能没有预编译的RTL8125驱动模块或者版本不匹配。我们需要手动编译并安装驱动。这个过程比在树莓派系统下复杂但一步步来完全可以搞定。我踩过几个坑下面把最稳妥的流程梳理出来。3.1 前期准备系统更新与编译环境搭建首先确保你的系统是最新的并且安装了必要的内核头文件和编译工具。这步是基础不能跳过。sudo apt update sudo apt upgrade -y sudo apt install --reinstall linux-headers-$(uname -r) build-essential dkmsdkms(Dynamic Kernel Module Support) 是关键工具它能在系统内核升级后自动重新编译安装我们的驱动避免每次升级都要手动操作。3.2 获取并部署官方驱动源码不要去第三方网站找驱动最靠谱的来源是Realtek官网。访问Realtek的下载中心找到“Network ICs” - “PCI Express Ethernet Controllers” - “Software”分类下载最新的RTL8125驱动。我撰写时的版本是9.012.04文件通常是r8125-9.012.04.tar.bz2。下载后将其解压到/usr/src目录这是DKMS管理驱动源码的标准位置。sudo tar -xavf ~/Downloads/r8125-9.012.04.tar.bz2 -C /usr/src/解压后你会在/usr/src/下看到一个类似r8125-9.012.04的目录。进入该目录重点来了官方源码包可能不包含DKMS所需的配置文件我们需要自己创建一个。3.3 创建并配置DKMS配置文件在驱动源码目录下创建一个名为dkms.conf的文件sudo nano /usr/src/r8125-9.012.04/dkms.conf将以下内容粘贴进去注意根据你的实际驱动版本号修改PACKAGE_VERSIONPACKAGE_NAMEr8125 PACKAGE_VERSION9.012.04 CLEANcd src/; make clean MAKEcd src/; make BUILD_KERNEL${kernelver} BUILT_MODULE_NAME[0]r8125 BUILT_MODULE_LOCATION[0]src/ DEST_MODULE_LOCATION[0]/updates AUTOINSTALLyes这个配置文件告诉DKMS驱动包叫什么、版本是什么、源代码在哪里、编译命令是什么以及是否自动安装。注意网上有些旧的教程配置文件格式不同可能导致编译失败。上述格式在较新版本的DKMS和Ubuntu上验证通过。3.4 编译、安装并加载驱动模块配置好之后就可以通过DKMS来管理这个驱动了。添加模块到DKMS树sudo dkms add -m r8125 -v 9.012.04如果成功会显示 “Adding module…” 和 “Good” 字样。编译模块sudo dkms build -m r8125 -v 9.012.04这个过程会消耗一两分钟屏幕上会滚动编译信息。确保没有红色的错误Error提示。安装模块sudo dkms install -m r8125 -v 9.012.04安装成功后驱动模块r8125.ko会被复制到当前内核的模块目录。更新模块依赖并加载sudo depmod -a sudo modprobe r8125depmod更新模块依赖关系modprobe则立即加载新驱动。现在再运行ip link show你应该能看到两个新的网络接口了在Ubuntu的命名规则下它们通常被命名为enp3s0和enp4s0具体名称可能因PCIE拓扑略有不同。$ ip link show ... 3: enp3s0: BROADCAST,MULTICAST mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff 4: enp4s0: BROADCAST,MULTICAST mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether bb:cc:dd:ee:ff:aa brd ff:ff:ff:ff:ff:ff至此驱动安装大功告成。以后即使系统内核通过apt upgrade更新了重启后DKMS也会自动为新内核重新编译安装这个驱动一劳永逸。4. 性能实测iperf3下的2.5G带宽能跑满吗硬件装好了驱动也认了最激动人心的环节就是性能测试。双2.5G网卡理论单向带宽是2500 Mbps约合312.5 MB/s。在树莓派5的PCIE 2.0 x1总线下理论带宽约5 Gbps同时跑满两个口的上行或下行是有瓶颈的但单个口的性能应该能充分体现。我设计了几个测试场景。测试环境服务器端一台搭载Intel i5处理器、具备2.5G网卡Intel i225-v的x86台式机运行Ubuntu Server。客户端树莓派5 双2.5G扩展板运行Ubuntu 22.04 LTS Server驱动已按上文安装。连接使用超五类Cat 5e及以上规格的网线直连。所有测试均关闭流控使用默认MTU 1500。4.1 单端口单向带宽测试这是最基础的测试。将树莓派的一个2.5G口如enp3s0与服务器2.5G口直连配置同网段IP。在服务器端启动iperf3服务端iperf3 -s在树莓派上运行客户端进行测试测试时间60秒并行10个流iperf3 -c 服务器IP -t 60 -P 10我得到的结果稳定在2.35 - 2.38 Gbps之间。这个数据已经非常接近2.5G的理论极限扣除TCP/IP协议头开销和系统调度损耗属于优秀水平。这说明在单向传输场景下树莓派5的PCIE通道足以喂饱一颗RTL8125芯片。测试方向平均带宽 (Gbps)带宽利用率树莓派 - 服务器 (发送)2.37~95%服务器 - 树莓派 (接收)2.35~94%4.2 双端口同时传输测试为了压榨PCIE总线的潜力我进行了双工测试。将树莓派的两个2.5G口分别连接到服务器的两个2.5G口或通过一个支持多端口聚合的交换机。场景一两个口同时向服务器发送数据。 这相当于两个口同时进行上行传输对树莓派PCIE总线的上行带宽压力最大。测试结果显示两个口的总带宽之和约为3.8 - 4.0 Gbps。这印证了PCIE 2.0 x1总线~5 Gbps的瓶颈无法让两个口同时达到满速上行但分摊下来每个口仍有近2Gbps的速度对于很多应用场景依然绰绰有余。场景二一个口发送一个口接收。 这种双向传输更能利用总线的全双工特性。测试中一个口以约2.3Gbps发送另一个口以约2.3Gbps接收总吞吐接近4.6Gbps更充分地利用了总线带宽。4.3 实际应用场景模拟Samba文件传输光看iperf3的数字可能不够直观我用Samba共享做了个实际文件传输测试。在树莓派上搭建Samba服务器挂载一个高速USB3 SSD作为存储从x86客户端拷贝一个大文件多个GB的电影文件。通过2.5G网络传输速度稳定在280 - 295 MB/s之间。这已经远超千兆网络的110 MB/s上限对于家庭内网备份高清媒体库、在剪辑软件中直接读取NAS上的素材等应用体验提升是颠覆性的。你能明显感觉到进度条“嗖”地一下就过去了。5. 进阶玩法与优化思路驱动搞定、性能摸清之后这块扩展板才能真正为你所用。这里分享几个我实践过或计划尝试的玩法。软路由/防火墙这是最热门的应用之一。利用一个WAN口接光猫一个LAN口接内网交换机将树莓派5打造成一个性能强劲的软路由。配合OpenWRT或自己用iptables/nftables配置能轻松处理2.5G级别的宽带接入。树莓派5的CPU性能应对家庭用户的数据包转发完全足够。网络桥接与监控将两个网口配置成网桥树莓派就变成了一个透明的网络设备。你可以在这上面运行tcpdump或Wireshark进行网络流量分析而不会引入额外的路由延迟。链路聚合Link Aggregation如果你的交换机支持802.3ad (LACP)可以将两个2.5G口绑定成一个逻辑接口。这不仅能提供更高的吞吐量在多个连接间负载均衡还能实现链路冗余。不过要注意单线程的TCP连接速度仍受限于单个2.5G口。系统层面优化为了进一步挖掘性能可以进行一些内核参数调优例如调整TCP缓冲区大小、启用巨帧Jumbo Frame需交换机支持等。对于追求极致低延迟的应用甚至可以考虑使用XDPeXpress Data Path技术。折腾这块双2.5G扩展板的过程有点像在给一个精巧的瑞士军刀装上更强大的刀片。树莓派5的PCIE接口打开了一扇新的大门让这个小巧的开发板具备了挑战传统低功耗x86设备的网络性能潜力。驱动安装那点麻烦在获得成倍提升的网络吞吐能力面前显得微不足道。如果你正在规划一个高性能、低功耗的家庭网络核心或者需要一个灵活的网络测试终端那么树莓派5配上这么一块扩展板绝对是一个值得认真考虑的组合。至少在我这里它已经取代了之前那台老旧且功耗更高的迷你PC安静地承担起了家庭网关和实验平台的双重任务。