跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
Mcuzone Wiki
搜索
搜索
登录
个人工具
登录
查看“0001 MPRG4(基于树莓派5 PCIe设计)”的源代码
页面
讨论
大陆简体
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
←
0001 MPRG4(基于树莓派5 PCIe设计)
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[0001 MPRG4(Designed based on Raspberry Pi 5 PCIe)|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。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_31.jpg 注意:四网口无法接入不同网段的上游路由设备,即无法实现一条电信一条移动一条联通这样的多网聚合应用,也无法实现一个网口接外网一个网口接内网网段的桥接应用。 == '''三、树莓派OS的使用''' == 树莓派系统下默认已经集成驱动,可直接使用。 树莓派OS下载地址: https://www.raspberrypi.com/software/operating-systems/ 3.1 请根据需要烧写树莓派系统,支持32位和64位系统,由于PCIe接口已被占用,只能从TF卡启动; [[0005 MPS2242 2280 2280P(单SSD扩展板)#3.2 从TF卡启动|点击直达烧写方法说明]] 3.2 系统启动后,执行ifconfig,可看到有eth1设备,即为扩展的RTL8111H网卡: http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_32.jpg 3.3 PC连接至四网口中的任意一个,树莓派和PC各自运行iperf3进行测速,基本跑满: Windows版iperf3下载: http://www.mcuzone.com/down/Software.asp?ID=10000634 Linux下iperf3安装: <code>sudo apt-get install iperf3</code> http://www.mcuzone.com/wiki/0001_MPRG4/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 下载网卡RTL8111H驱动 === https://www.realtek.com/Download/List?cate_id=584 找到此驱动将其下载至本地。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_33.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 更新系统和头文件 ==== <code>sudo apt-get update</code> <code>sudo apt-get upgrade</code> 理论上不需要更新头文件,Ubuntu不同于Pi OS,upgrade的时候头文件也会一并更新。 如果后续报头文件问题,用以下命令检查头文件: <code>sudo apt-get install linux-headers-$(uname -r)</code> ==== 4.2.2 准备编译环境 ==== <code>sudo apt-get install --reinstall linux-headers-$(uname -r) linux-headers-generic build-essential dkms</code> ==== 4.2.3 解压对应的源码到/usr/src ==== <code>sudo tar xvf r8168-8.052.01.tar.bz2 -C /usr/src</code> ==== 4.2.4 添加一个dkms.conf ==== 添加一个dkms.conf到/usr/src/r8168-8.052.01/dkms.conf,内容如下: <code>PACKAGE_NAME=Realtek_r8168</code> <code>PACKAGE_VERSION=8.052.01</code> <code>DEST_MODULE_LOCATION=/updates/dkms</code> <code>BUILT_MODULE_NAME=r8168</code> <code>BUILT_MODULE_LOCATION=src/</code> <code>MAKE="'make' -C src/ all"</code> <code>CLEAN="'make' -C src/ clean"</code> <code>AUTOINSTALL="yes"</code> '''''注意:请在本Ubuntu系统下建立此文件,如果在Windows下建立此文件并直接拷入本Ubuntu系统的话会有字符格式问题,从而造成编译无法通过。''''' ==== 4.2.5 编译DKMS ==== <code>sudo dkms add -m r8168 -v 8.052.01</code> <code>sudo dkms build -m r8168 -v 8.052.01</code> <code>sudo dkms install -m r8168 -v 8.052.01</code> <code>sudo depmod -a</code> <code>sudo modprobe r8168</code> 如果dkms.conf的字符格式有问题,在执行add时就会编译错误,之后即使改正了dkms.conf,在执行add时仍会报<code>Error! DKMS tree already contains</code>,此时请执行下列语句,之后再重新执行add: <code>sudo rm -r /var/lib/dkms/8812au</code> 如果在执行build时报<code>binary update-secureboot-policy not found</code>,请执行下列语句,之后再重新执行build: <code>apt-get install shim-signed</code> === 4.3 加载和验证驱动(Ubuntu24.04下) === Ubuntu24.04下可以直接下载驱动源码并编译,步骤如下: 准备编译环境: <code>sudo apt-get install --reinstall linux-headers-$(uname -r) linux-headers-generic build-essential dkms</code> 下载编译驱动: <code>sudo apt install r8168-dkms</code> <code>sudo modprobe r8168</code> '''''注意:如果按照上面的Ubuntu23.10的步骤执行的话,会在在执行build时报<code>ERROR (dkms apport)</code>,从而无法进行下去。''''' === 4.4 验证安装结果 === 运行如下命令即可看到enxxx的有线网接口: <code>ifconfig -a</code> http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_34.jpg 使用iperf3测速,基本能跑满千兆。 http://www.mcuzone.com/wiki/0001_MPRG4/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系统。 默认用户名为<code>root</code>,默认密码为<code>password</code>。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_17.png 浏览器地址可以在Windows设置中找到网络和Internet,在以太网中打开连接的网络查看IP地址。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_18.png 在电脑端使用终端软件(如SecureCRT等)连接开发板,可以看到设备识别: http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_21.png http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_22.png SecureCRT软件可按照以下方式设置: http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_19.png http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_20.png === 5.3 设置OpenWrt系统 === 设备正常识别后,我们打开网络-接口。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_23.png 随后我们点击添加新接口,设置好名称、接口协议,将WAN口设置为eth0。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_24.png 点击”提交“后在防火墙设置选中WAN。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_25.png 设置完后我们点击”保存“,注意不要点击”保存&应用“,否则将进入不了系统。 点击返回至概况后,我们点击LAN口修改。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_26.png 在物理设置下将接口设置为eth1。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_27.png 设置完成后我们点击”保存&应用“。注意,因为此时网络设置发生了变化,所以会一直显示”正在应用更改“,这不是故障,我们稍等片刻后就可以进行下一步操作。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_28.png === 5.4 网络测试 === 将WAN口接入上级路由器,扩展板的四个网口就可以连接其他网络设备获取网络,我们将两个网口连接两台PC简单测试一下网络带宽。 使用iperf3在两台电脑之间互相测试: http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_29.png http://www.mcuzone.com/wiki/0001_MPRG4/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四网口扩展板 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_09.png http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_10.png === 6.2 准备工作 === 6.2.1 连接好Rock 5C和MPRG4。 6.2.2 系统烧写到TF卡后插卡启动,默认账户登录密码是radxa。 6.2.3 进入系统后在菜单下找到konsole进入命令行终端。 6.2.4 执行<code>lspci</code>,确保能看到RTL8111的设备信息。(能看到说明扩展板硬件正常,如果看不到要检查FPC连接可靠性,注意FPC线缆有朝向,有一侧注明了RPi5要连接到Rock 5C。) http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_15.png 6.2.5 将网线连接至原生千兆,执行: <code>sudo apt-get update</code> <code>sudo apt-get upgrade</code> <code>sudo apt-get install net-tools</code> 安装完毕net-tools后才能使用ifconfig工具,当然你也可以使用其它工具来操作网络。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_11.png === 6.3 安装驱动 === 6.3.1 以dkms的方式安装驱动即可。 <code>sudo apt-get install r8168-dkms</code> <code>sudo modprobe r8168</code> 6.3.2 安装完毕后执行<code>sudo ifconfig -a</code>检查是否有enp开头网卡,即为RTL8111网卡,注意,交换机是物理层设备,ifconfig是看不到的。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_16.png 6.3.3 通过ping包确认网络是否连通: http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_13.png 至此,网卡驱动已经安装完成并可正常运行。 6.3.4 使用iperf3测速,基本能跑满千兆。 http://www.mcuzone.com/wiki/0001_MPRG4/MPRG4_14.png {{联系我们_图标}}
本页使用的模板:
模板:联系我们 图标
(
查看源代码
)
返回
0001 MPRG4(基于树莓派5 PCIe设计)
。
开关有限宽度模式