0013 MPSTPU(M.2 E):修订间差异
(→二、硬件资源) 标签:已被回退 |
|||
(未显示2个用户的23个中间版本) | |||
第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海量存储。 | |||
== '''二、硬件资源''' == | == '''二、硬件资源''' == | ||
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定位孔吻合,可选配铝合金外壳。 | |||
http://www.mcuzone.com/wiki/0013_MPTPU_M/0013_MPTPU_M_03.jpg | |||
'''''注意:''''' | |||
1. 树莓派5固件更新后,不能修改设置,不然固件会自动退回至老版本; | |||
2. 受限于Switch,PCle仅支持X1Gen2,SSD速度约400MB/s。 | |||
== '''三、系统烧写及设置''' == | == '''三、系统烧写及设置''' == | ||
第17行: | 第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 | [[0005 MPS2242 2280 2280P(单SSD扩展板)#3.2 从TF卡启动|点击直达烧写方法说明]]。 | ||
=== 3.3 系统烧写在SSD硬盘上 === | === 3.3 系统烧写在SSD硬盘上 === | ||
[[0005 MPS2242 | [[0005 MPS2242 2280 2280P(单SSD扩展板)#3.3 从SSD硬盘启动|点击直达烧写方法说明]]。 | ||
== ''' | == '''四、树莓派OS下操作演示''' == | ||
本章介绍如何在树莓派OS运行TPU模组。 | 本章介绍如何在树莓派OS运行TPU模组。 | ||
本章的操作步骤同时适用于系统从TF卡启动和从SSD硬盘启动。 | 本章的操作步骤同时适用于系统从TF卡启动和从SSD硬盘启动。 | ||
=== 4.1 配置config.txt === | === 4.1 TPU模组的使用 === | ||
==== 4.1.1 配置config.txt ==== | |||
系统启动后打开树莓派终端输入命令: | 系统启动后打开树莓派终端输入命令: | ||
第65行: | 第89行: | ||
<code>sudo reboot</code> | <code>sudo reboot</code> | ||
=== 4.2 确认软件环境 === | ==== 4.1.2 确认软件环境 ==== | ||
系统重启后打开打开树莓派终端输入命令: | 系统重启后打开打开树莓派终端输入命令: | ||
第78行: | 第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软件库: | ||
第101行: | 第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: | ||
第142行: | 第166行: | ||
<code>sudo reboot</code> | <code>sudo reboot</code> | ||
=== 4.5 验证模块检测以及驱动安装 === | ==== 4.1.5 验证模块检测以及驱动安装 ==== | ||
系统启动后验证模块检测以及驱动安装: | 系统启动后验证模块检测以及驱动安装: | ||
第159行: | 第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。 | ||
第222行: | 第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 下载代码和运行模组 ==== | ||
依次输入以下命令进行下载: | 依次输入以下命令进行下载: | ||
第253行: | 第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路径下 | ||
第274行: | 第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 | ||
== | === 4.2 树莓派系统下使用SSD硬盘 === | ||
关于对SSD硬盘的基本操作,我们可以参考以下链接: | 关于对SSD硬盘的基本操作,我们可以参考以下链接: | ||
[[0005 MPS2242 | [[0005 MPS2242 2280 2280P(单SSD扩展板)#4.1 SSD用作存储扩展|SSD用作存储扩展(树莓派OS下)]] | ||
[[0005 MPS2242 | [[0005 MPS2242 2280 2280P(单SSD扩展板)#六、对SSD进行分区等操作|对SSD进行分区等操作]] | ||
[[0005 MPS2242 | [[0005 MPS2242 2280 2280P(单SSD扩展板)#cite ref-1|调整外设启动顺序]] | ||
[[0005 MPS2242 | [[0005 MPS2242 2280 2280P(单SSD扩展板)#7.2 在PCIe Gen2下测试硬盘速度|安装硬盘测速软件hdparm]] | ||
关于如何测试SSD硬盘,我们可以参考以下链接: | 关于如何测试SSD硬盘,我们可以参考以下链接: | ||
[[ | [[0008 MPS2.5G(SSD和2.5G以太网)#4.2 SSD硬盘测试|SSD硬盘测试(树莓派OS下)]] | ||
== ''' | == '''五、Ubuntu系统下使用SSD硬盘''' == | ||
关于对SSD硬盘的基本操作,我们可以参考以下链接,除了SSD用作存储扩展中与树莓派OS下操作略有不同,其余部分基本相同: | 关于对SSD硬盘的基本操作,我们可以参考以下链接,除了SSD用作存储扩展中与树莓派OS下操作略有不同,其余部分基本相同: | ||
[[0005 MPS2242 | [[0005 MPS2242 2280 2280P(单SSD扩展板)#5.1 SSD用作存储扩展|SSD用作存储扩展(Ubuntu系统下)]] | ||
[[0005 MPS2242 | [[0005 MPS2242 2280 2280P(单SSD扩展板)#六、对SSD进行分区等操作|对SSD进行分区等操作]] | ||
[[0005 MPS2242 | [[0005 MPS2242 2280 2280P(单SSD扩展板)#cite ref-1|调整外设启动顺序]] | ||
[[0005 MPS2242 | [[0005 MPS2242 2280 2280P(单SSD扩展板)#7.2 在PCIe Gen2下测试硬盘速度|安装硬盘测速软件hdparm]] | ||
关于如何测试SSD硬盘,我们可以参考以下链接: | 关于如何测试SSD硬盘,我们可以参考以下链接: | ||
[[ | [[0008 MPS2.5G(SSD和2.5G以太网)#5.2 SSD硬盘测试|SSD硬盘测试(Ubuntu系统下)]] | ||
== ''' | == '''六、OpenWrt系统下使用SSD硬盘''' == | ||
关于如何在OpenWrt系统下使用SSD硬盘,我们可以参考以下链接: | 关于如何在OpenWrt系统下使用SSD硬盘,我们可以参考以下链接: | ||
[[ | [[2001 CM4 Ultra(CM4核心板的扩展板)#5.5 SSD硬盘测试|SSD硬盘测试(OpenWrt系统下)]] | ||
{{联系我们_图标}} | {{联系我们_图标}} |
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定位孔吻合,可选配铝合金外壳。
注意:
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
代码添加成功后,保存并重启系统:
sudo reboot
4.1.2 确认软件环境
系统重启后打开打开树莓派终端输入命令:
uname -r
确保内核版本大于4.18后输入:
lsmod | grep apex
确保没有输出则可以开始安装TPU驱动。
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 -
添加完成后更新软件列表:
sudo apt-get update
更新完成后安装必要的软件:
sudo apt-get install cmake libedgetpu1-std devscripts debhelper dkms dh-dkms
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
安装完成后输入以下命令确保驱动以及软件安装成功:
sudo apt-get install gasket-dkms libedgetpu1-std
接下来添加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
设置完成后重启系统:
sudo reboot
4.1.5 验证模块检测以及驱动安装
系统启动后验证模块检测以及驱动安装:
lspci -nn | grep 089a
这里需要看到TPU模块,如下图所示(具体参数显示以实际为准):
ls /dev/apex_0
这里插了一个TPU模块,因此可以看到一个TPU模块。
输入sudo lspci -v
可以看到驱动加载,其中必须包括TPU驱动,如果插了SSD硬盘,还需要包括SSD模块,如下图所示:
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
依赖安装完成后进行pyenv的安装:
curl https://pyenv.run | bash
输入:
sudo nano ~/.bashrc
或者:
sudo mousepad ~/.bashrc
在文件最下面添加以下代码:
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
添加完成后保存退出并重新加载shell:
exec "$SHELL"
接下来我们可以利用pyenv安装老系统版本Python:
pyenv install -v 3.8.8
等待安装成功后我们将系统Python版本更改为3.8.8:
pyenv global 3.8.8
更改成功后可以查看当前Python使用版本为3.8.8:
pyenv versions
python3 -V
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
接下来下载代码运行模组
pip3 install numpy
pip3 install Pillow
pip3 install --extra-index-url https://google-coral.github.io/py-repo/ pycoral
4.1.8 运行代码
模组下载完成后返回 coral/pycoral路径下
cd ..
输入以下代码进行代码运行
注意:我们可以复制下列代码,但是请先粘贴到文本软件中,按照上图的格式,删除多余的回车符,再复制然后粘贴到终端中运行:
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
4.2 树莓派系统下使用SSD硬盘
关于对SSD硬盘的基本操作,我们可以参考以下链接:
关于如何测试SSD硬盘,我们可以参考以下链接:
五、Ubuntu系统下使用SSD硬盘
关于对SSD硬盘的基本操作,我们可以参考以下链接,除了SSD用作存储扩展中与树莓派OS下操作略有不同,其余部分基本相同:
关于如何测试SSD硬盘,我们可以参考以下链接:
六、OpenWrt系统下使用SSD硬盘
关于如何在OpenWrt系统下使用SSD硬盘,我们可以参考以下链接:
联系我们
电话:13957118045
如本页面有任何疏漏、错误或者侵权,请通过上述途径联系我们,谢谢!
Copyright 2004-2024 野芯科技