跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
Mcuzone Wiki
搜索
搜索
登录
个人工具
登录
查看“0023 MP2.5GTPU(M.2 E)”的源代码
页面
讨论
大陆简体
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
←
0023 MP2.5GTPU(M.2 E)
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== '''关键词''' == 树莓派5、PCIe、Switch、RL8125、2.5Gbps、以太网、iperf3测速、TPU、DTPU、驱动安装、操作演示、AI、google、Coral、M.2 E key == '''一、简介''' == 树莓派5具备一个16Pin的PCIe接口,我们可以利用该接口进行多种外设的扩展。这次我们利用PCIe接口,一路为M.2 E key接口,可外接A+E Key接口的TPU模组,一路通过RTL8125芯片2.5Gbps以太网扩展。该扩展板的2.5G以太网在树莓派系统下无需驱动上电后即可自动识别成eth1。如果使用Ubuntu系统则需要先安装RTL8125的驱动才可使用。而Coral M.2加速器是一款M.2尺寸的模组,可以通过PCIE接口为树莓派等平台扩展边缘TPU协处理器。 == '''二、硬件资源''' == 1. 采用0.5mm 16P PCIe线连接树莓派5的PCIE接口; 2. 一路PCIe扩展2.5Gbps以太网; 3. 一路PCIe扩展M.2 E-key接口,用于接Google coral Edge TPU,树莓派官方OS加载驱动; 4. 2.5Gbps以太网在树莓派官方OS和Openwrt系统免驱,Ubuntu系统下需安装驱动; 5. 采用优质电子元器件和沉金工艺,无铅生产;PCB板通过UL和ROHS认证,防火等级94V-0; 6. 四个M2.5固定孔,板子上方内凹设计,方便40Pin GPIO的操作使用; == '''三、系统烧写及设置''' == === 3.1 概述 === 本文档采用树莓派OS、Ubuntu OS和OpenWrt系统进行测试。 1) 树莓派OS的版本为2024-07-04-raspios-bookworm-arm64.img.xz,树莓派OS下载地址: https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit 2) Ubuntu OS的版本为ubuntu-24.04-preinstalled-desktop-arm64+raspi.img.xz,Ubuntu OS下载地址: https://ubuntu.com/download/raspberry-pi 3) OpenWrt系统版本为:openwrt-bcm27xx-bcm2712-rpi-5-squashfs-sysupgrade-linux-6.1.100-20240805.img.gz === 3.2 系统烧写在SD(TF)卡上 === [[0005 MPS2242 2280 2280P(单SSD扩展板)#3.2 从TF卡启动|点击直达烧写方法说明]]。 == '''四、树莓派系统下使用演示''' == === 4.1 Internet网络测试 === MP2.5GTPU扩展板上的2.5G网口在树莓派OS下免驱 即插即用,系统起来后,在树莓派终端中输入ifconfig -a命令,2.5G网口被识别为eth1: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_01.jpg 使用[https://test.ustc.edu.cn/ 中国科技大学测速网站],对2.5G网口连外网(200M宽带)测速,结果如下: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_02.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' === 4.2 2.5G内网测试 === 安装网络测速工具iperf3: <code>sudo apt install iperf3</code> http://www.mcuzone.com/wiki/0008_MPS2_5G/0008_MPS2_5G_04.jpg 利用iperf3,通过2.5G路由器,在树莓派OS与PC之间进行测速。 '''eth1测速结果如下:''' 当树莓派OS作为client时,速度大约为2.35Gbps: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_03.jpg 当树莓派OS作为server时,速度大约为1.82Gbps: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_04.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' == '''五、Ubuntu系统下使用演示''' == === 5.1 安装Ubuntu系统下RTL8125驱动 === MP2.5GTPU扩展板上的2.5G网口在Ubuntu系统下不能即插即用,需要安装RTL8125驱动。 因为树莓派5的无线网卡模块在Ubuntu系统下是即插即用的,所以我们需要使用无线网卡连接无线网络: http://www.mcuzone.com/wiki/0009_MP2_5GD/0009_MP2_5GD_11.jpg 也可以使用网线连接树莓派5上的原生网口。 Ubuntu系统默认不安装ifconfig工具,所以需要手动安装: <code>sudo apt install net-tools</code> http://www.mcuzone.com/wiki/0008_MPS2_5G/0008_MPS2_5G_13.jpg 输入<code>ifconfig -a</code>,可见此时并没有显示2.5G网卡: http://www.mcuzone.com/wiki/0009_MP2_5GD/0009_MP2_5GD_12.jpg 接下来我们开始安装RTL8125驱动。 首先需要更新系统: <code>sudo apt-get update</code> http://www.mcuzone.com/wiki/0009_MP2_5GD/0009_MP2_5GD_13.jpg 接着准备编译环境: <code>sudo apt-get install --reinstall linux-headers-$(uname -r) linux-headers-generic build-essential dkms</code> http://www.mcuzone.com/wiki/0009_MP2_5GD/0009_MP2_5GD_14.jpg 然后安装驱动: <code>sudo apt-get install r8125-dkms</code> 按提示安装即可: http://www.mcuzone.com/wiki/0009_MP2_5GD/0009_MP2_5GD_15.jpg 安装完成后输入: <code>sudo modprobe r8125</code> http://www.mcuzone.com/wiki/0009_MP2_5GD/0009_MP2_5GD_16.jpg 输入<code>ifconfig -a</code>就可以看到一个enxxx的网卡接口,这样就安装完毕2.5G网卡驱动: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_05.jpg === 5.2 Internet网络测试 === 将2.5G网口连外网(200M宽带)测速,结果如下: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_06.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' 如果使用Ubuntu内置的Firefox浏览器时运行速度很慢或者经常无响应,建议安装轻量浏览器Falkon: <code>sudo apt install falkon</code> === 5.3 2.5G内网测试 === 安装网络测速软件iperf3: <code>sudo apt install iperf3</code> http://www.mcuzone.com/wiki/0009_MP2_5GD/0009_MP2_5GD_20.jpg 利用iperf3,在Ubuntu系统与PC之间进行测速。 '''测速结果如下:''' 当Ubuntu系统作为client时,速度大约为2.35Gbps: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_07.jpg 当Ubuntu系统作为server时,速度大约为1.85Gbps: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_08.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' == '''六、OpenWrt系统操作演示''' == === 6.1 概述 === MP2.5G扩展板在OpenWrt系统下,默认树莓派上的原生千兆网口为LAN口,我们可以把扩展板上的2.5G网口作为LAN口,而把树莓派5上的原生网口作为WAN口,这样就能利用2.5G网口在内网高速传输文件。 === 6.2 准备工作 === 本文档使用的OpenWrt系统为:openwrt-bcm27xx-bcm2712-rpi-5-squashfs-sysupgrade-linux-6.1.100-20240805.img.gz 烧写OpenWrt系统并上电启动后,我们将网线一端插在树莓派5的原生网口上,另一端插在PC上,待PC的网卡与树莓派5上的网口连接成功后,我们在Windows设置中找到网络和Internet,在以太网中打开连接的网络查看默认网关的IP地址,这个地址就是OpenWrt系统的后台配置页面地址,如图所示,本文测试的地址为192.168.198.1: http://www.mcuzone.com/wiki/2001_CM4_Ultra/2001_CM4_Ultra_53.jpg 然后打开网页浏览器输入192.168.198.1进入OpenWrt系统。默认用户名为<code>root</code>,默认密码为<code>password</code>: http://www.mcuzone.com/wiki/2001_CM4_Ultra/2001_CM4_Ultra_54.jpg === 6.3 MP2.5G的2.5G网口的配置和应用 === 进入“系统 - TTYD终端”,输入ifconfig -a命令,可以看到有eth0和eth1两个网口,其中eth0为树莓派5的原生网口,eth1为扩展板的2.5G网口: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_09.jpg 我们使用的宽带一般不会超过千兆,为了获得更好的内网性能,建议将树莓派5的原生千兆配置从默认的LAN配置为WAN,然后把扩展板的2.5G以太网口配置为LAN。 点击“网络 - 接口”,点击“修改”: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_10.jpg 在“物理设置”中,把eth1选中,然后点击“保存&应用”按钮: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_11.jpg 将网线从树莓派5的原生网口中拔出,插入2.5G网口,待PC的网卡与2.5G网口连接成功后,我们刷新管理页面,点击“网络 - 接口”,点击“修改”: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_12.jpg 在“物理设置”中,把eth0前面的勾去掉,然后点击“保存”按钮: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_13.jpg 回到“网络 - 接口”,点击“添加新接口”: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_14.jpg 接口名称设置为WAN,接口协议选择DHCP客户端,接口选择eth0后点击“提交”按钮: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_15.jpg 在防火墙设置中选择WAN口后点击“保存&应用”按钮: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_16.jpg 把连接Internet网络的网线插到树莓派5的原生网口上,然后回到“网络 - 接口”,稍等片刻,就可以看见新建的WAN接口获取了IP地址,这样PC就可以通过连接2.5G网口进入内网上网了,此时网络结构为千兆网口(接Internet,树莓派上)进,2.5G网口(接内网,扩展板上)出: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_17.jpg 我们在树莓派5的USB3.0接口上插入一个支持USB3.0的U盘或者移动硬盘,参考下面链接,将这个U盘或者移动硬盘配置为共享目录: [[2001 CM4 Ultra(CM4核心板的扩展板)#5.5 SSD硬盘测试|设置SSD硬盘为共享目录]] 设置完毕后,我们在资源管理器中输入<code>\\192.168.198.1</code>(地址为扩展板的地址,视实际情况而不同),就能看到所映射的共享目录了: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_18.jpg 将任意文件拖拽到桌面进行读取速度测试: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_19.jpg 将任意文件拖拽到SSD进行写入速度测试: http://www.mcuzone.com/wiki/0015_MP2_5G/0015_MP2_5G_20.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' === 6.4 其它应用 === 树莓派5的无线模块可以作为无线AP,也可以作为无线WAN口,关于这些应用的实现,请参考下列链接: [[0008 MPS2.5G(SSD和2.5G以太网)#6.4 树莓派5的无线模块作为无线AP|树莓派5的无线模块作为无线AP]] [[0008 MPS2.5G(SSD和2.5G以太网)#6.5 PC通过树莓派5的无线模块上网|PC通过树莓派5的无线模块上网]] == '''七、树莓派OS运行TPU模组''' == 本章介绍如何在树莓派OS运行TPU模组。 === 7.1 配置config.txt === 系统启动后打开树莓派终端输入命令: <code>sudo nano /boot/firmware/config.txt</code> 或者: <code>sudo mousepad /boot/firmware/config.txt</code> 在文件最下方添加以下代码: <code>dtparam=pciex1</code> <code>kernel=kernel8.img</code> <code>dtoverlay=pineboards-hat-ai</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_01.jpg http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_02.jpg 代码添加成功后,保存并重启系统: <code>sudo reboot</code> === 7.2 确认软件环境 === 系统重启后打开打开树莓派终端输入命令: <code>uname -r</code> 确保内核版本大于4.18后输入: <code>lsmod | grep apex</code> 确保没有输出则可以开始安装TPU驱动。 http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_03.jpg === 7.3 安装必要软件 === 确保网络能连通外网(需自备方法)后,添加Google TPU软件库: <code>echo "deb <nowiki>https://packages.cloud.google.com/apt</nowiki> coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list</code> <code>curl <nowiki>https://packages.cloud.google.com/apt/doc/apt-key.gpg</nowiki> | sudo apt-key add -</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_04.jpg 添加完成后更新软件列表: <code>sudo apt-get update</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_06.jpg 更新完成后安装必要的软件: <code>sudo apt-get install cmake libedgetpu1-std devscripts debhelper dkms dh-dkms</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_07.jpg http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_08.jpg === 7.4 安装Gasket Driver === 依次输入以下命令安装Gasket Driver: <code>git clone <nowiki>https://github.com/google/gasket-driver.git</nowiki></code> <code>cd gasket-driver</code> <code>sudo debuild -us -uc -tc -b</code> <code>cd ..</code> <code>sudo dpkg -i gasket-dkms_1.0-18_all.deb</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_09.jpg http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_10.jpg http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_11.jpg 安装完成后输入以下命令确保驱动以及软件安装成功: <code>sudo apt-get install gasket-dkms libedgetpu1-std</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_12.jpg 接下来添加udev rule去获得设备操作权限: <code>sudo sh -c "echo 'SUBSYSTEM==\"apex\", MODE=\"0660\", GROUP=\"apex\"' >> /etc/udev/rules.d/65-apex.rules"</code> 添加用户到apex: <code>sudo groupadd apex</code> <code>sudo adduser $USER apex</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_13.jpg 设置完成后重启系统: <code>sudo reboot</code> === 7.5 验证模块检测以及驱动安装 === 系统启动后验证模块检测以及驱动安装: <code>lspci -nn | grep 089a</code> 这里需要看到TPU模块,如下图所示(具体参数显示以实际为准): <code>ls /dev/apex_0</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_14.jpg 这里插了一个TPU模块,因此可以看到一个TPU模块。 输入<code>sudo lspci -v</code>可以看到驱动加载,其中必须包括TPU驱动,如果插了SSD硬盘,还需要包括SSD模块,如下图所示: http://www.mcuzone.com/wiki/0013_MPTPU_M/0013_MPTPU_M_01.jpg === 7.6 代码运行环境配置 === Google TPU模块代码运行需要在Python3.6-3.9之间,而树莓派最新系统的Python版本为3.11,因此我们需要使用Pyenv来下载老版本Python。 首先进行依赖安装: <code>sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_17.jpg http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_18.jpg 依赖安装完成后进行pyenv的安装: <code>curl <nowiki>https://pyenv.run</nowiki> | bash</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_19.jpg 输入: <code>sudo nano ~/.bashrc</code> 或者: <code>sudo mousepad ~/.bashrc</code> 在文件最下面添加以下代码: <code>export PYENV_ROOT="$HOME/.pyenv"</code> <code><nowiki>[[ -d $PYENV_ROOT/bin ]]</nowiki> && export PATH="$PYENV_ROOT/bin:$PATH"</code> <code>eval "$(pyenv init -)"</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_36.jpg http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_21.jpg 添加完成后保存退出并重新加载shell: <code>exec "$SHELL"</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_22.jpg 接下来我们可以利用pyenv安装老系统版本Python: <code>pyenv install -v 3.8.8</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_23.jpg http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_24.jpg 等待安装成功后我们将系统Python版本更改为3.8.8: <code>pyenv global 3.8.8</code> 更改成功后可以查看当前Python使用版本为3.8.8: <code>pyenv versions</code> <code>python3 -V</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_25.jpg === 7.7 下载代码和运行模组 === 依次输入以下命令进行下载: <code>mkdir coral && cd coral</code> <code>git clone <nowiki>https://github.com/google-coral/pycoral.git</nowiki></code> <code>cd pycoral</code> <code>cd test_data</code> <code>git clone <nowiki>https://github.com/google-coral/test_data.git</nowiki></code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_26.jpg http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_27.jpg 接下来下载代码运行模组 <code>pip3 install numpy</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_28.jpg <code>pip3 install Pillow</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_29.jpg <code>pip3 install --extra-index-url <nowiki>https://google-coral.github.io/py-repo/</nowiki> pycoral</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_30.jpg === 7.8 运行代码 === 模组下载完成后返回 coral/pycoral路径下 <code>cd ..</code> 输入以下代码进行代码运行 http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_39.jpg 注意:我们可以复制下列代码,但是请先粘贴到文本软件中,按照上图的格式,删除多余的回车符,再复制然后粘贴到终端中运行: <code>python3 examples/classify_image.py \</code> <code>--model test_data/test_data/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \</code> <code>--labels test_data/test_data/inat_bird_labels.txt \</code> <code>--input test_data/test_data/parrot.jpg</code> http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_31.jpg {{联系我们_图标}}
本页使用的模板:
模板:RTL8125 MAC SINGLE
(
查看源代码
)
模板:联系我们 图标
(
查看源代码
)
返回
0023 MP2.5GTPU(M.2 E)
。
开关有限宽度模式