0001 MPRG4(基于树莓派5 PCIe设计)

来自Mcuzone Wiki

Change the language to English

关键词

树莓派5、Raspberry Pi 5、MPRG4、MPG4、RTL8111H、四千兆网口扩展板、Pi OS、Ubuntu、OpenWrt、软路由、交换机、Radxa、Rock 5C

一、简介

MPRG4(或称MPG4)是一款专为树莓派5设计的,通过PCIe接口扩展的四千兆网口扩展板。该扩展板通过PCIe接口外挂RTL8111H PCIe网口,然后进一步通过交换机芯片扩展成四路千兆网口。可用于以下几种场景:

1.1 树莓派系统或Ubuntu系统下,其中一个网口连接上级路由器,剩余3个网口为附近其它需要联网的设备提供网络接入(四个网口位于同一个网段),可省却一个外挂的交换机和电源。

1.2 OpenWrt软路由系统下,原生千兆配置为WAN口,扩展的四个网口配置为LAN口,可为四台设备提供网络接入服务。

注意1:四个千兆口位于同一个网段,由上游路由器来分配地址池。如果不接上游路由器,则在树莓派系统和Ubuntu系统下将无法获取合法IP地址(会收到169.254.xx.xx的IP地址,表示仅有物理网线连接但无合法IP地址)。

注意2:在树莓派系统和Ubuntu系统下如果开机时没有插网线一段时间后系统将会获取到169.254.xx.xx的IP地址,此时即便插入来自上游路由器的网线后系统也获取不到合法IP,需要按一下扩展板上的交换机复位键才能重新获取到合法IP地址。

二、硬件资源

2.1 通过16Pin 0.5mm PCIe FPC线和树莓派5连接;

2.2 板载RTL8111H芯片,实现PCIe转千兆以太网;

2.3 板载交换机芯片,将RTL8111H网口扩展为四个千兆以太网,这四个网口具备独立IP,但隶属于同一个网段;

2.4 一盏电源指示灯;

2.5 一个交换机复位键(Switch RST),适用于树莓派系统和Ubuntu系统下开机一段时间后再插入网线获取不到合法IP的情况;

2.6 一个外延的树莓派5开关机按键(同树莓派5自带开关机按键);

2.7 可选3D打印底座,可保护桌面不被划伤;

2.8 可选钣金外壳,美观可靠;

2.9 可选配4G模块安装在树莓派5上方来搭建4G路由器;

2.10 尺寸:约86mmx75mm。

MPRG4_31.jpg

注意:四网口无法接入不同网段的上游路由设备,即无法实现一条电信一条移动一条联通这样的多网聚合应用,也无法实现一个网口接外网一个网口接内网网段的桥接应用。

三、树莓派系统下使用演示

注意,使用PCIe屏蔽线时,上面有标记树莓派5的朝向。

树莓派系统下默认已经集成驱动,可直接使用。

树莓派OS下载地址:

https://www.raspberrypi.com/software/operating-systems/

3.1 请根据需要烧写树莓派系统,支持32位和64位系统,由于PCIe接口已被占用,可从TF卡启动;

点击直达烧写方法说明

3.2 系统启动后,执行ifconfig,可看到有eth1设备,即为扩展的RTL8111H网卡:

MPRG4_02.jpg

3.3 PC连接至四网口中的任意一个,树莓派和PC各自运行iperf3进行测速,基本跑满:

Windows版iperf3下载:

http://www.mcuzone.com/down/Software.asp?ID=10000634

Linux下iperf3安装:

sudo apt-get install iperf3

MPRG4_03.jpg

四网口之间的iperf3测试也一样可以跑满。

注意1:四个端口的交换机是物理层设备,系统下不可见。

注意2:如果开机前没有插网线连接至上级路由器,一段时间后即便接入网线也会无法联网(IP地址为169.254.xx.xx),此时需要按一下交换机的复位键(丝印标记为Switch RST).

四、Ubuntu系统下的使用演示

Ubuntu系统下载地址:

https://ubuntu.com/download/raspberry-pi

注意,Ubuntu系统下需要安装RTL8111H,而且要注意的是系统版本和驱动版本强相关,如有驱动编译问题可以联系我们获取已配置好驱动的镜像文件。

驱动编译流程如下:

4.1 官网下载网卡驱动包

https://www.realtek.com/Download/List?cate_id=584  找到此驱动将其下载至本地。


MPRG4_04.jpg


官网最新驱动不适用于Ubuntu23.10系统,如果安装不了请使用我司当前的驱动版本

http://www.mcuzone.com/wiki/0001_MPRG4/r8168-8.052.01.tar.bz2

4.2 加载和验证驱动(Ubuntu23.10下)

下载完成后使用SSH等工具将压缩包放至Ubuntu系统下,接下来按照以下步骤进行驱动安装:

4.2.1 更新系统和头文件

sudo apt-get update

sudo apt-get upgrade

理论上不需要更新头文件,Ubuntu不同于Pi OS,upgrade的时候头文件也会一并更新。

如果后续报头文件问题,用以下命令检查头文件:

sudo apt-get install linux-headers-$(uname -r)

4.2.2 准备编译环境

sudo apt-get install --reinstall linux-headers-$(uname -r) linux-headers-generic build-essential dkms

4.2.3 解压对应的源码到/usr/src

sudo tar xvf r8168-8.052.01.tar.bz2 -C /usr/src

4.2.4 添加一个dkms.conf

添加一个dkms.conf到/usr/src/r8168-8.052.01/dkms.conf,内容如下:

PACKAGE_NAME=Realtek_r8168

PACKAGE_VERSION=8.052.01

DEST_MODULE_LOCATION=/updates/dkms

BUILT_MODULE_NAME=r8168

BUILT_MODULE_LOCATION=src/

MAKE="'make' -C src/ all"

CLEAN="'make' -C src/ clean"

AUTOINSTALL="yes"

注意:请在本Ubuntu系统下建立此文件,如果在Windows下建立此文件并直接拷入本Ubuntu系统的话会有字符格式问题,从而造成编译无法通过。

4.2.5 编译DKMS

sudo dkms add -m r8168 -v 8.052.01

sudo dkms build -m r8168 -v 8.052.01

sudo dkms install -m r8168 -v 8.052.01

sudo depmod -a

sudo modprobe r8168

如果dkms.conf的字符格式有问题,在执行add时就会编译错误,之后即使改正了dkms.conf,在执行add时仍会报Error! DKMS tree already contains,此时请执行下列语句,之后再重新执行add:

sudo rm -r /var/lib/dkms/8812au

如果在执行build时报binary update-secureboot-policy not found,请执行下列语句,之后再重新执行build:

apt-get install shim-signed

4.3 加载和验证驱动(Ubuntu24.04下)

Ubuntu24.04下可以直接下载驱动源码并编译,步骤如下:

准备编译环境:

sudo apt-get install --reinstall linux-headers-$(uname -r) linux-headers-generic build-essential dkms

下载编译驱动:

sudo apt install r8168-dkms

sudo modprobe r8168

注意:如果按照上面的Ubuntu23.10的步骤执行的话,会在在执行build时报ERROR (dkms apport),从而无法进行下去。

4.4 验证安装结果

运行如下命令即可看到enxxx的有线网接口:

ifconfig -a

MPRG4_05.png

使用iperf3测速,基本能跑满千兆。

MPRG4_06.png

注意,在Ubuntu系统下RTL8111H网卡被识别成了enxxxx的名称,同样的交换机作为物理层芯片并不会显示在网卡列表里面。

五、OpenWrt系统下MPRG4扩展板操作演示

5.1 概述

MPRG4扩展板在OpenWrt系统下可配置为一进四出的交换机模式,树莓派自带网口配置为WAN口,扩展板四个网口可以供其他设备使用,获得同网段的IP地址。

5.2 准备工作

本文使用的OpenWrt系统为:openwrt-bcm27xx-bcm2712-rpi-5-squashfs-sysupgrade-linux-6.1.92-20240530a.img.gz

烧写OpenWrt系统并上电启动后,我们通过树莓派自带网口连接网线至PC网口,然后打开网页浏览器输入192.168.198.1进入OpenWrt系统。

默认用户名为root,默认密码为password

MPRG4_17.png

浏览器地址可以在Windows设置中找到网络和Internet,在以太网中打开连接的网络查看IP地址。

MPRG4_18.png

在电脑端使用终端软件(如SecureCRT等)连接开发板,可以看到设备识别:

MPRG4_21.png

MPRG4_22.png

SecureCRT软件可按照以下方式设置:

MPRG4_19.png

MPRG4_20.png

5.3 设置OpenWrt系统

设备正常识别后,我们打开网络-接口。

MPRG4_23.png

随后我们点击添加新接口,设置好名称、接口协议,将WAN口设置为eth0。

MPRG4_24.png

点击”提交“后在防火墙设置选中WAN。

MPRG4_25.png

设置完后我们点击”保存“,注意不要点击”保存&应用“,否则将进入不了系统。

点击返回至概况后,我们点击LAN口修改。

MPRG4_26.png

在物理设置下将接口设置为eth1。

MPRG4_27.png

设置完成后我们点击”保存&应用“。注意,因为此时网络设置发生了变化,所以会一直显示”正在应用更改“,这不是故障,我们稍等片刻后就可以进行下一步操作。

MPRG4_28.png

5.4 网络测试

将WAN口接入上级路由器,扩展板的四个网口就可以连接其他网络设备获取网络,我们将两个网口连接两台PC简单测试一下网络带宽。

使用iperf3在两台电脑之间互相测试:

MPRG4_29.png

MPRG4_30.png

可见测试结果正常。

六、Radxa Rock 5C(RK3588S2)搭配四网口扩展板MPRG4操作演示

6.1 概述

Radxa的Rock 5C基于RK3588S2设计,具备一路千兆以太网和四个USB口,并引出了和树莓派5兼容的PCIe接口,我们可以通过该接口来扩展各类原本为树莓派5设计的PCIe扩展板。这次我们演示使用的是四网口扩展板。

演示使用的软硬件平台:

本文采用的系统版本为:debian bullseye kde b3,github下载地址:

https://github.com/radxa-build/rock-5c/releases/

扩展板:MPRG4四网口扩展板

MPRG4_09.png

MPRG4_10.png

6.2 准备工作

6.2.1 连接好Rock 5C和MPRG4。

6.2.2 系统烧写到TF卡后插卡启动,默认账户登录密码是radxa。

6.2.3 进入系统后在菜单下找到konsole进入命令行终端。

6.2.4 执行lspci,确保能看到RTL8111的设备信息。(能看到说明扩展板硬件正常,如果看不到要检查FPC连接可靠性,注意FPC线缆有朝向,有一侧注明了RPi5要连接到Rock 5C。)

MPRG4_15.png

6.2.5 将网线连接至原生千兆,执行:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install net-tools

安装完毕net-tools后才能使用ifconfig工具,当然你也可以使用其它工具来操作网络。

MPRG4_11.png

6.3 安装驱动

6.3.1 以dkms的方式安装驱动即可。

sudo apt-get install r8168-dkms

sudo modprobe r8168

6.3.2 安装完毕后执行sudo ifconfig -a检查是否有enp开头网卡,即为RTL8111网卡,注意,交换机是物理层设备,ifconfig是看不到的。

MPRG4_16.png

6.3.3 通过ping包确认网络是否连通:

MPRG4_13.png

至此,网卡驱动已经安装完成并可正常运行。

6.3.4 使用iperf3测速,基本能跑满千兆。

MPRG4_14.png

联系我们

4f7e81daf8791971.jpg 79c020da7ad0af9b.jpg 2851e01a0549e6f7.gif 0003_bb.jpg 0005_qq.jpg QQ:8204136

邮件:mcuzone@vip.qq.com

电话:13957118045

如本页面有任何疏漏、错误或者侵权,请通过上述途径联系我们,谢谢!

Copyright 2004-2024 野芯科技