0013 MPSTPU(M.2 E):修订间差异

来自Mcuzone Wiki
 
(未显示2个用户的19个中间版本)
第1行: 第1行:
[[0013 MPSTPU(M.2 E) EN|Change the language to English]]
== '''关键词''' ==
== '''关键词''' ==
树莓派5、PCIe、TPU、DTPU、驱动安装、操作演示、AI、google、Coral、2230、2242、2280、NVMe SSD、固态硬盘 X1
树莓派5、PCIe、TPU、DTPU、驱动安装、操作演示、AI、google、Coral、2230、2242、2280、NVMe SSD、固态硬盘 X1


== '''一、简介''' ==
== '''一、简介''' ==
Coral M.2加速器是一款M.2尺寸的模组,可以通过PCIE接口为树莓派等平台扩展边缘TPU协处理器。我司的MPSTPU扩展板通过PCIe Switch扩展出了两路PCIe接口,其中一路为M.2 E key接口,可外接A+E Key接口的TPU模组;另一路为M.2 M key接口,可外接NVMe SSD固态硬盘。MPSTPU扩展板可在加入TPU边缘计算能力的同时为系统提供SSD海量存储。


== '''二、硬件资源''' ==
== '''二、硬件资源''' ==
第9行: 第12行:
2. 扩展板通过PCIe Switch进行一扩二;
2. 扩展板通过PCIe Switch进行一扩二;


3. 一路PICe扩M.2 E key接口,用于接Google coral Edge TPU,树莓派官方OS加载驱动;
3. 一路PCIe扩展M.2 E-key接口,用于接Google coral Edge TPU,树莓派官方OS加载驱动;


4. 一路PCIe可扩展NVMe SSD(PCIe X1,仅支持Gen2模式),支持2230/2242/2280尺寸(默认焊接2280铜柱);
4. 一路PCIe扩展M.2 M-key接口,接NVMe SSD(PCIe X1,仅支持Gen2模式),支持2230/2242/2280尺寸(默认焊接2280铜柱),不支持SATA和NGFF SSD硬盘;


5. SSD可用于存储数据和S系统启动,从SSD启动时,需树莓派官方固件是2024.5.13以后的版本;
5. SSD可用于存储数据和系统启动;从SSD启动时,需树莓派官方固件是2024.5.13以后的版本;


6. 40Pin GPIO部分采用开窗设计,可通过杜邦线连接,不影响树莓派5自身GPIO引脚使用;
6. 40Pin GPIO部分采用开窗设计,可通过杜邦线连接,不影响树莓派5自身GPIO引脚使用;


7. PCB板通过UL认证,符合ROHS标准。
7. PCB板沉金工艺,无铅生产,且通过UL认证,符合ROHS标准,防火等级94V-0;


http://www.mcuzone.com/wiki/0013_MPTPU_M/0013_MPTPU_M_02.jpg<nowiki/>注意:
8. 采用4个M2.5固定孔,和树莓派5定位孔吻合,可选配铝合金外壳。


1. 树莓派5固件更新后,不能修改设置,不然固件会自动退回至老版本;
http://www.mcuzone.com/wiki/0013_MPTPU_M/0013_MPTPU_M_03.jpg


2. 受限于Switch,PClIE仅支持X1Gen2,SSD速度约400MB/s。
'''''注意:'''''
 
1. 树莓派5固件更新后,不能修改设置,不然固件会自动退回至老版本;
 
2. 受限于Switch,PCle仅支持X1Gen2,SSD速度约400MB/s。


== '''三、系统烧写及设置''' ==
== '''三、系统烧写及设置''' ==
第30行: 第37行:
本文档采用树莓派OS、Ubuntu系统和OpenWrt系统进行测试。
本文档采用树莓派OS、Ubuntu系统和OpenWrt系统进行测试。


树莓派OS的版本为2024-07-04-raspios-bookworm-arm64.img.xz,树莓派OS下载地址:
1) 树莓派OS的版本为2024-07-04-raspios-bookworm-arm64.img.xz,树莓派OS下载地址:


https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit


Ubuntu系统的版本为ubuntu-24.04-preinstalled-desktop-arm64+raspi.img.xz,Ubuntu OS下载地址:
'''''注意:如果需要在树莓派OS下运行TPU模组,烧写系统用的TF卡的容量至少为16G,否则可能会在安装配置过程中报空间不足!'''''
 
2) Ubuntu系统的版本为ubuntu-24.04-preinstalled-desktop-arm64+raspi.img.xz,Ubuntu OS下载地址:


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


OpenWrt系统版本:
3) OpenWrt系统版本:


openwrt-bcm27xx-bcm2712-rpi-5-squashfs-sysupgrade-linux-6.1.100-20240805.img.gz
openwrt-bcm27xx-bcm2712-rpi-5-squashfs-sysupgrade-linux-6.1.100-20240805.img.gz


=== 3.2 系统烧写在SD(TF)卡上 ===
=== 3.2 系统烧写在SD(TF)卡上 ===
[[0005 MPS2242 2280(单SSD扩展板)#3.2 从TF卡启动|点击直达烧写方法说明]]。
[[0005 MPS2242 2280 2280P(单SSD扩展板)#3.2 从TF卡启动|点击直达烧写方法说明]]。


=== 3.3 系统烧写在SSD硬盘上 ===
=== 3.3 系统烧写在SSD硬盘上 ===
[[0005 MPS2242 2280(单SSD扩展板)#3.3 从SSD硬盘启动|点击直达烧写方法说明]]。
[[0005 MPS2242 2280 2280P(单SSD扩展板)#3.3 从SSD硬盘启动|点击直达烧写方法说明]]。


== '''四、运行TPU模组''' ==
== '''四、树莓派OS下操作演示''' ==
本章介绍如何在树莓派OS运行TPU模组。
本章介绍如何在树莓派OS运行TPU模组。


本章的操作步骤同时适用于系统从TF卡启动和从SSD硬盘启动。
本章的操作步骤同时适用于系统从TF卡启动和从SSD硬盘启动。


=== 4.1 配置config.txt ===
=== 4.1 TPU模组的使用 ===
 
==== 4.1.1 配置config.txt ====
系统启动后打开树莓派终端输入命令:
系统启动后打开树莓派终端输入命令:


第78行: 第89行:
<code>sudo reboot</code>
<code>sudo reboot</code>


=== 4.2 确认软件环境 ===
==== 4.1.2 确认软件环境 ====
系统重启后打开打开树莓派终端输入命令:
系统重启后打开打开树莓派终端输入命令:


第91行: 第102行:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_03.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_03.jpg


=== 4.3 安装必要软件 ===
==== 4.1.3 安装必要软件 ====
确保网络能连通外网(需自备方法)后,添加Google TPU软件库:
确保网络能连通外网(需自备方法)后,添加Google TPU软件库:


第114行: 第125行:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_08.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_08.jpg


=== 4.4 安装Gasket Driver ===
==== 4.1.4 安装Gasket Driver ====
依次输入以下命令安装Gasket Driver:
依次输入以下命令安装Gasket Driver:


第155行: 第166行:
<code>sudo reboot</code>
<code>sudo reboot</code>


=== 4.5 验证模块检测以及驱动安装 ===
==== 4.1.5 验证模块检测以及驱动安装 ====
系统启动后验证模块检测以及驱动安装:
系统启动后验证模块检测以及驱动安装:


第172行: 第183行:
http://www.mcuzone.com/wiki/0013_MPTPU_M/0013_MPTPU_M_01.jpg
http://www.mcuzone.com/wiki/0013_MPTPU_M/0013_MPTPU_M_01.jpg


=== 4.6 代码运行环境配置 ===
==== 4.1.6 代码运行环境配置 ====
Google TPU模块代码运行需要在Python3.6-3.9之间,而树莓派最新系统的Python版本为3.11,因此我们需要使用Pyenv来下载老版本Python。
Google TPU模块代码运行需要在Python3.6-3.9之间,而树莓派最新系统的Python版本为3.11,因此我们需要使用Pyenv来下载老版本Python。


第235行: 第246行:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_25.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_25.jpg


=== 4.7 下载代码和运行模组 ===
==== 4.1.7 下载代码和运行模组 ====
依次输入以下命令进行下载:
依次输入以下命令进行下载:


第266行: 第277行:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_30.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_30.jpg


=== 4.8 运行代码 ===
==== 4.1.8 运行代码 ====
模组下载完成后返回 coral/pycoral路径下
模组下载完成后返回 coral/pycoral路径下


第287行: 第298行:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_31.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_31.jpg


== '''五、树莓派系统下使用SSD硬盘''' ==
=== 4.2 树莓派系统下使用SSD硬盘 ===
关于对SSD硬盘的基本操作,我们可以参考以下链接:
关于对SSD硬盘的基本操作,我们可以参考以下链接:


[[0005 MPS2242 2280(单SSD扩展板)#4.1 SSD用作存储扩展|SSD用作存储扩展(树莓派OS下)]]
[[0005 MPS2242 2280 2280P(单SSD扩展板)#4.1 SSD用作存储扩展|SSD用作存储扩展(树莓派OS下)]]


[[0005 MPS2242 2280(单SSD扩展板)#六、对SSD进行分区等操作|对SSD进行分区等操作]]
[[0005 MPS2242 2280 2280P(单SSD扩展板)#六、对SSD进行分区等操作|对SSD进行分区等操作]]


[[0005 MPS2242 2280(单SSD扩展板)#cite ref-1|调整外设启动顺序]]
[[0005 MPS2242 2280 2280P(单SSD扩展板)#cite ref-1|调整外设启动顺序]]


[[0005 MPS2242 2280(单SSD扩展板)#7.2 在PCIe Gen2下测试硬盘速度|安装硬盘测速软件hdparm]]
[[0005 MPS2242 2280 2280P(单SSD扩展板)#7.2 在PCIe Gen2下测试硬盘速度|安装硬盘测速软件hdparm]]


关于如何测试SSD硬盘,我们可以参考以下链接:
关于如何测试SSD硬盘,我们可以参考以下链接:
第302行: 第313行:
[[0008 MPS2.5G(SSD和2.5G以太网)#4.2 SSD硬盘测试|SSD硬盘测试(树莓派OS下)]]
[[0008 MPS2.5G(SSD和2.5G以太网)#4.2 SSD硬盘测试|SSD硬盘测试(树莓派OS下)]]


== '''六、Ubuntu系统下使用SSD硬盘''' ==
== '''五、Ubuntu系统下使用SSD硬盘''' ==
关于对SSD硬盘的基本操作,我们可以参考以下链接,除了SSD用作存储扩展中与树莓派OS下操作略有不同,其余部分基本相同:
关于对SSD硬盘的基本操作,我们可以参考以下链接,除了SSD用作存储扩展中与树莓派OS下操作略有不同,其余部分基本相同:


[[0005 MPS2242 2280(单SSD扩展板)#5.1 SSD用作存储扩展|SSD用作存储扩展(Ubuntu系统下)]]
[[0005 MPS2242 2280 2280P(单SSD扩展板)#5.1 SSD用作存储扩展|SSD用作存储扩展(Ubuntu系统下)]]


[[0005 MPS2242 2280(单SSD扩展板)#六、对SSD进行分区等操作|对SSD进行分区等操作]]
[[0005 MPS2242 2280 2280P(单SSD扩展板)#六、对SSD进行分区等操作|对SSD进行分区等操作]]


[[0005 MPS2242 2280(单SSD扩展板)#cite ref-1|调整外设启动顺序]]
[[0005 MPS2242 2280 2280P(单SSD扩展板)#cite ref-1|调整外设启动顺序]]


[[0005 MPS2242 2280(单SSD扩展板)#7.2 在PCIe Gen2下测试硬盘速度|安装硬盘测速软件hdparm]]
[[0005 MPS2242 2280 2280P(单SSD扩展板)#7.2 在PCIe Gen2下测试硬盘速度|安装硬盘测速软件hdparm]]


关于如何测试SSD硬盘,我们可以参考以下链接:
关于如何测试SSD硬盘,我们可以参考以下链接:
第317行: 第328行:
[[0008 MPS2.5G(SSD和2.5G以太网)#5.2 SSD硬盘测试|SSD硬盘测试(Ubuntu系统下)]]
[[0008 MPS2.5G(SSD和2.5G以太网)#5.2 SSD硬盘测试|SSD硬盘测试(Ubuntu系统下)]]


== '''七、OpenWrt系统下使用SSD硬盘''' ==
== '''六、OpenWrt系统下使用SSD硬盘''' ==
关于如何在OpenWrt系统下使用SSD硬盘,我们可以参考以下链接:
关于如何在OpenWrt系统下使用SSD硬盘,我们可以参考以下链接:



2024年9月6日 (五) 17:28的最新版本

Change the language to English

关键词

树莓派5、PCIe、TPU、DTPU、驱动安装、操作演示、AI、google、Coral、2230、2242、2280、NVMe SSD、固态硬盘 X1

一、简介

Coral M.2加速器是一款M.2尺寸的模组,可以通过PCIE接口为树莓派等平台扩展边缘TPU协处理器。我司的MPSTPU扩展板通过PCIe Switch扩展出了两路PCIe接口,其中一路为M.2 E key接口,可外接A+E Key接口的TPU模组;另一路为M.2 M key接口,可外接NVMe SSD固态硬盘。MPSTPU扩展板可在加入TPU边缘计算能力的同时为系统提供SSD海量存储。

二、硬件资源

1. 基于树莓派5设计,采用16Pin FPC和树莓派5的PCle接口连接;

2. 扩展板通过PCIe Switch进行一扩二;

3. 一路PCIe扩展M.2 E-key接口,用于接Google coral Edge TPU,树莓派官方OS加载驱动;

4. 一路PCIe扩展M.2 M-key接口,接NVMe SSD(PCIe X1,仅支持Gen2模式),支持2230/2242/2280尺寸(默认焊接2280铜柱),不支持SATA和NGFF SSD硬盘;

5. SSD可用于存储数据和系统启动;从SSD启动时,需树莓派官方固件是2024.5.13以后的版本;

6. 40Pin GPIO部分采用开窗设计,可通过杜邦线连接,不影响树莓派5自身GPIO引脚使用;

7. PCB板沉金工艺,无铅生产,且通过UL认证,符合ROHS标准,防火等级94V-0;

8. 采用4个M2.5固定孔,和树莓派5定位孔吻合,可选配铝合金外壳。

0013_MPTPU_M_03.jpg

注意:

1. 树莓派5固件更新后,不能修改设置,不然固件会自动退回至老版本;

2. 受限于Switch,PCle仅支持X1Gen2,SSD速度约400MB/s。

三、系统烧写及设置

3.1 概述

本文档采用树莓派OS、Ubuntu系统和OpenWrt系统进行测试。

1) 树莓派OS的版本为2024-07-04-raspios-bookworm-arm64.img.xz,树莓派OS下载地址:

https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit

注意:如果需要在树莓派OS下运行TPU模组,烧写系统用的TF卡的容量至少为16G,否则可能会在安装配置过程中报空间不足!

2) Ubuntu系统的版本为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)卡上

点击直达烧写方法说明

3.3 系统烧写在SSD硬盘上

点击直达烧写方法说明

四、树莓派OS下操作演示

本章介绍如何在树莓派OS运行TPU模组。

本章的操作步骤同时适用于系统从TF卡启动和从SSD硬盘启动。

4.1 TPU模组的使用

4.1.1 配置config.txt

系统启动后打开树莓派终端输入命令:

sudo nano /boot/firmware/config.txt

或者:

sudo mousepad /boot/firmware/config.txt

在文件最下方添加以下代码:

dtparam=pciex1

kernel=kernel8.img

dtoverlay=pineboards-hat-ai

0006_MPW7_TPU_01.jpg

0006_MPW7_TPU_02.jpg

代码添加成功后,保存并重启系统:

sudo reboot

4.1.2 确认软件环境

系统重启后打开打开树莓派终端输入命令:

uname -r

确保内核版本大于4.18后输入:

lsmod | grep apex

确保没有输出则可以开始安装TPU驱动。

0006_MPW7_TPU_03.jpg

4.1.3 安装必要软件

确保网络能连通外网(需自备方法)后,添加Google TPU软件库:

echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

0006_MPW7_TPU_04.jpg

添加完成后更新软件列表:

sudo apt-get update

0006_MPW7_TPU_06.jpg

更新完成后安装必要的软件:

sudo apt-get install cmake libedgetpu1-std devscripts debhelper dkms dh-dkms

0006_MPW7_TPU_07.jpg

0006_MPW7_TPU_08.jpg

4.1.4 安装Gasket Driver

依次输入以下命令安装Gasket Driver:

git clone https://github.com/google/gasket-driver.git

cd gasket-driver

sudo debuild -us -uc -tc -b

cd ..

sudo dpkg -i gasket-dkms_1.0-18_all.deb

0006_MPW7_TPU_09.jpg

0006_MPW7_TPU_10.jpg

0006_MPW7_TPU_11.jpg

安装完成后输入以下命令确保驱动以及软件安装成功:

sudo apt-get install gasket-dkms libedgetpu1-std

0006_MPW7_TPU_12.jpg

接下来添加udev rule去获得设备操作权限:

sudo sh -c "echo 'SUBSYSTEM==\"apex\", MODE=\"0660\", GROUP=\"apex\"' >> /etc/udev/rules.d/65-apex.rules"

添加用户到apex:

sudo groupadd apex

sudo adduser $USER apex

0006_MPW7_TPU_13.jpg

设置完成后重启系统:

sudo reboot

4.1.5 验证模块检测以及驱动安装

系统启动后验证模块检测以及驱动安装:

lspci -nn | grep 089a

这里需要看到TPU模块,如下图所示(具体参数显示以实际为准):

ls /dev/apex_0

0006_MPW7_TPU_14.jpg

这里插了一个TPU模块,因此可以看到一个TPU模块。

输入sudo lspci -v可以看到驱动加载,其中必须包括TPU驱动,如果插了SSD硬盘,还需要包括SSD模块,如下图所示:

0013_MPTPU_M_01.jpg

4.1.6 代码运行环境配置

Google TPU模块代码运行需要在Python3.6-3.9之间,而树莓派最新系统的Python版本为3.11,因此我们需要使用Pyenv来下载老版本Python。

首先进行依赖安装:

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

0006_MPW7_TPU_17.jpg

0006_MPW7_TPU_18.jpg

依赖安装完成后进行pyenv的安装:

curl https://pyenv.run | bash

0006_MPW7_TPU_19.jpg

输入:

sudo nano ~/.bashrc

或者:

sudo mousepad ~/.bashrc

在文件最下面添加以下代码:

export PYENV_ROOT="$HOME/.pyenv"

[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"

eval "$(pyenv init -)"

0006_MPW7_TPU_36.jpg

0006_MPW7_TPU_21.jpg

添加完成后保存退出并重新加载shell:

exec "$SHELL"

0006_MPW7_TPU_22.jpg

接下来我们可以利用pyenv安装老系统版本Python:

pyenv install -v 3.8.8

0006_MPW7_TPU_23.jpg

0006_MPW7_TPU_24.jpg

等待安装成功后我们将系统Python版本更改为3.8.8:

pyenv global 3.8.8

更改成功后可以查看当前Python使用版本为3.8.8:

pyenv versions

python3 -V

0006_MPW7_TPU_25.jpg

4.1.7 下载代码和运行模组

依次输入以下命令进行下载:

mkdir coral && cd coral

git clone https://github.com/google-coral/pycoral.git

cd pycoral

cd test_data

git clone https://github.com/google-coral/test_data.git

0006_MPW7_TPU_26.jpg

0006_MPW7_TPU_27.jpg

接下来下载代码运行模组

pip3 install numpy

0006_MPW7_TPU_28.jpg

pip3 install Pillow

0006_MPW7_TPU_29.jpg

pip3 install --extra-index-url https://google-coral.github.io/py-repo/ pycoral

0006_MPW7_TPU_30.jpg

4.1.8 运行代码

模组下载完成后返回 coral/pycoral路径下

cd ..

输入以下代码进行代码运行

0006_MPW7_TPU_39.jpg

注意:我们可以复制下列代码,但是请先粘贴到文本软件中,按照上图的格式,删除多余的回车符,再复制然后粘贴到终端中运行:

python3 examples/classify_image.py \

--model test_data/test_data/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \

--labels test_data/test_data/inat_bird_labels.txt \

--input test_data/test_data/parrot.jpg

0006_MPW7_TPU_31.jpg

4.2 树莓派系统下使用SSD硬盘

关于对SSD硬盘的基本操作,我们可以参考以下链接:

SSD用作存储扩展(树莓派OS下)

对SSD进行分区等操作

调整外设启动顺序

安装硬盘测速软件hdparm

关于如何测试SSD硬盘,我们可以参考以下链接:

SSD硬盘测试(树莓派OS下)

五、Ubuntu系统下使用SSD硬盘

关于对SSD硬盘的基本操作,我们可以参考以下链接,除了SSD用作存储扩展中与树莓派OS下操作略有不同,其余部分基本相同:

SSD用作存储扩展(Ubuntu系统下)

对SSD进行分区等操作

调整外设启动顺序

安装硬盘测速软件hdparm

关于如何测试SSD硬盘,我们可以参考以下链接:

SSD硬盘测试(Ubuntu系统下)

六、OpenWrt系统下使用SSD硬盘

关于如何在OpenWrt系统下使用SSD硬盘,我们可以参考以下链接:

SSD硬盘测试(OpenWrt系统下)

联系我们

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

邮件:mcuzone@vip.qq.com

电话:13957118045

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

Copyright 2004-2024 野芯科技