0022 MPSTPU(M.2 M):修订间差异
(→二、硬件资源) |
无编辑摘要 |
||
(未显示2个用户的8个中间版本) | |||
第1行: | 第1行: | ||
[[0022 MPSTPU(M.2 M) 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 M-key接口,可外接M-Key接口的TPU模组;另一路为M.2 M key接口,可外接NVMe SSD固态硬盘。MPSTPU扩展板可在加入TPU边缘计算能力的同时为系统提供SSD海量存储。 | |||
== '''二、硬件资源''' == | == '''二、硬件资源''' == | ||
http://www.mcuzone.com/wiki/0022_MPSTPU/ | 1. 利用树莓派5的PCIe接口,采用PCIe Switch芯片,将PCIe一扩二;采用0.5mm间距16Pin PCIe2.0 x1接口连接; | ||
2. 引出一路PCIe M.2 M-key接口,支持NVMe协议2230/2242/2280尺寸固态硬盘(默认焊接2280固定柱);注意:不支持NGFF和SATA协议的盘; | |||
3. 引出一路PCIe M.2 M-key,支持M key接口的Google Coral Edge TPU; | |||
4. 引出一路5V电源指示灯("PWR"),一路硬盘工作状态指示灯; | |||
5. 设计采用1.5A高效DC-DC电路,可支持绝大部分固态盘(受限于x1接口,固态盘的实际峰值功耗仅为额定功耗的1/3); | |||
6. 扩展板采用内凹开槽设计,40Pin上方无遮挡不影响杜邦线连接; | |||
7. 四个M2.5固定孔,和树莓派5定位孔吻合; | |||
8. 沉金工艺,无铅生产;PCB板符合UL和RoHS认证,防火等级94V-0; | |||
9. 可选配铝合金外壳。 | |||
http://www.mcuzone.com/wiki/0022_MPSTPU/0022_MPSTPU_02.jpg | |||
== '''三、系统烧写及设置''' == | == '''三、系统烧写及设置''' == | ||
第12行: | 第33行: | ||
本文档采用树莓派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操作演示''' == | ||
=== 4.1 运行TPU模组 === | |||
本章介绍如何在树莓派OS运行TPU模组。 | 本章介绍如何在树莓派OS运行TPU模组。 | ||
本章的操作步骤同时适用于系统从TF卡启动和从SSD硬盘启动。 | 本章的操作步骤同时适用于系统从TF卡启动和从SSD硬盘启动。 | ||
=== 4.1 配置config.txt === | ==== 4.1.1 配置config.txt ==== | ||
系统启动后打开树莓派终端输入命令: | 系统启动后打开树莓派终端输入命令: | ||
第60行: | 第85行: | ||
<code>sudo reboot</code> | <code>sudo reboot</code> | ||
=== 4.2 确认软件环境 === | ==== 4.1.2 确认软件环境 ==== | ||
系统重启后打开打开树莓派终端输入命令: | 系统重启后打开打开树莓派终端输入命令: | ||
第73行: | 第98行: | ||
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软件库: | ||
第96行: | 第121行: | ||
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: | ||
第137行: | 第162行: | ||
<code>sudo reboot</code> | <code>sudo reboot</code> | ||
=== 4.5 验证模块检测以及驱动安装 === | ==== 4.1.5 验证模块检测以及驱动安装 ==== | ||
系统启动后验证模块检测以及驱动安装: | 系统启动后验证模块检测以及驱动安装: | ||
第154行: | 第179行: | ||
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。 | ||
第217行: | 第242行: | ||
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 下载代码和运行模组 ==== | ||
依次输入以下命令进行下载: | 依次输入以下命令进行下载: | ||
第248行: | 第273行: | ||
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路径下 | ||
第269行: | 第294行: | ||
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 NVMe 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硬盘,我们可以参考以下链接: | ||
第284行: | 第309行: | ||
[[0008 MPS2.5G(SSD和2.5G以太网)#4.2 SSD硬盘测试|SSD硬盘测试(树莓派OS下)]] | [[0008 MPS2.5G(SSD和2.5G以太网)#4.2 SSD硬盘测试|SSD硬盘测试(树莓派OS下)]] | ||
== ''' | == '''五、Ubuntu系统下使用SSD硬盘''' == | ||
关于对SSD硬盘的基本操作,我们可以参考以下链接,除了SSD用作存储扩展中与树莓派OS下操作略有不同,其余部分基本相同: | 关于对SSD硬盘的基本操作,我们可以参考以下链接,除了SSD用作存储扩展中与树莓派OS下操作略有不同,其余部分基本相同: | ||
第299行: | 第324行: | ||
[[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硬盘,我们可以参考以下链接: | ||
2024年9月4日 (三) 15:55的最新版本
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 M-key接口,可外接M-Key接口的TPU模组;另一路为M.2 M key接口,可外接NVMe SSD固态硬盘。MPSTPU扩展板可在加入TPU边缘计算能力的同时为系统提供SSD海量存储。
二、硬件资源
1. 利用树莓派5的PCIe接口,采用PCIe Switch芯片,将PCIe一扩二;采用0.5mm间距16Pin PCIe2.0 x1接口连接;
2. 引出一路PCIe M.2 M-key接口,支持NVMe协议2230/2242/2280尺寸固态硬盘(默认焊接2280固定柱);注意:不支持NGFF和SATA协议的盘;
3. 引出一路PCIe M.2 M-key,支持M key接口的Google Coral Edge TPU;
4. 引出一路5V电源指示灯("PWR"),一路硬盘工作状态指示灯;
5. 设计采用1.5A高效DC-DC电路,可支持绝大部分固态盘(受限于x1接口,固态盘的实际峰值功耗仅为额定功耗的1/3);
6. 扩展板采用内凹开槽设计,40Pin上方无遮挡不影响杜邦线连接;
7. 四个M2.5固定孔,和树莓派5定位孔吻合;
8. 沉金工艺,无铅生产;PCB板符合UL和RoHS认证,防火等级94V-0;
9. 可选配铝合金外壳。
三、系统烧写及设置
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操作演示
4.1 运行TPU模组
本章介绍如何在树莓派OS运行TPU模组。
本章的操作步骤同时适用于系统从TF卡启动和从SSD硬盘启动。
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 NVMe SSD硬盘的使用
关于对SSD硬盘的基本操作,我们可以参考以下链接:
关于如何测试SSD硬盘,我们可以参考以下链接:
五、Ubuntu系统下使用SSD硬盘
关于对SSD硬盘的基本操作,我们可以参考以下链接,除了SSD用作存储扩展中与树莓派OS下操作略有不同,其余部分基本相同:
关于如何测试SSD硬盘,我们可以参考以下链接:
六、OpenWrt系统下使用SSD硬盘
关于如何在OpenWrt系统下使用SSD硬盘,我们可以参考以下链接:
联系我们
电话:13957118045
如本页面有任何疏漏、错误或者侵权,请通过上述途径联系我们,谢谢!
Copyright 2004-2024 野芯科技