0021 MPSAI:修订间差异

来自Mcuzone Wiki
(创建页面,内容为“== '''关键词''' == 树莓派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…”)
 
第51行: 第51行:
[[0005 MPS2242 2280(单SSD扩展板)#3.3 从SSD硬盘启动|点击直达烧写方法说明]]。
[[0005 MPS2242 2280(单SSD扩展板)#3.3 从SSD硬盘启动|点击直达烧写方法说明]]。


== '''四、运行TPU模组''' ==
== '''八、Ai模块(HAILO 8L)在MPS2242上的使用演示''' ==
本章介绍如何在树莓派OS运行TPU模组。


本章的操作步骤同时适用于系统从TF卡启动和从SSD硬盘启动。
=== 8.1 概述 ===
在各种实际应用的场合中,人们对于摄像头图像检测识别的需求逐渐增加,市面上也有许多利用AI的解决方案,本文所演示的方案是树莓派5搭配OV5647摄像头、MPS2242和HAILO 8L AI模块在树莓派5上的使用演示'''''。'''''


=== 4.1 配置config.txt ===
此操作演示同时也适用于我们司所有树莓派5的SSD相关的PCIE转接板,包括MPS2242-POE、MPS2280、MPS2280P、MPS2280Bi、MPS2280-POE、MPS2280D、MPS2.5G、MPSAI、MPSD2.5GD等。
系统启动后打开树莓派终端输入命令:


<code>sudo nano /boot/firmware/config.txt</code>
(另外我司树莓派CM4扩展板上其它带CSI接口+M.2 SSD接口的板子均可使用,如CM4_SSD扩展板、CM4_3PCIE扩展板、CM4_Ultra扩展板、CM4_SSD+WiFi扩展板、CM4_SSD+双以太网、CM4_NAS等。)


或者:
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_44.jpg


<code>sudo mousepad /boot/firmware/config.txt</code>
'''''注意:此操作演示需要确保能稳定连通外网(需自备方法),否则许多文件无法下载或下载不全,最后可能会造成代码运行失败。'''''


在文件最下方添加以下代码:
=== 8.2 更新系统 ===
8.2.1 启动树莓派OS,在终端中执行:


<code>dtparam=pciex1</code>
<code>sudo apt update</code>


<code>kernel=kernel8.img</code>
<code>sudo apt full-upgrade</code>


<code>dtoverlay=pineboards-hat-ai</code>
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_28.jpg


http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_01.jpg
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_29.jpg


http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_02.jpg
8.2.2 执行<code>sudo rpi-eeprom-update</code>,查看树莓派固件,确保树莓派的固件日期在2023年12月6日之后:


代码添加成功后,保存并重启系统:
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_30.jpg


<code>sudo reboot</code>
如上图所示,固件时间是2024年6月5日。


=== 4.2 确认软件环境 ===
8.2.3 执行<code>sudo raspi-config</code>,根据下图依次选择对应选项:
系统重启后打开打开树莓派终端输入命令:


<code>uname -r</code>
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_31.jpg


确保内核版本大于4.18后输入:
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_32.jpg


<code>lsmod | grep apex</code>
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_33.jpg


确保没有输出则可以开始安装TPU驱动。
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_34.jpg


http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_03.jpg
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_35.jpg


=== 4.3 安装必要软件 ===
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_36.jpg
确保网络能连通外网(需自备方法)后,添加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>sudo reboot</code> ,重启系统。


<code>curl <nowiki>https://packages.cloud.google.com/apt/doc/apt-key.gpg</nowiki> | sudo apt-key add -</code>
=== 8.3 AI模块所需要的依赖安装 ===
执行<code>sudo apt install hailo-all</code>,安装AI模块所需要的依赖安装:


http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_04.jpg
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_37.jpg


添加完成后更新软件列表:
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_38.jpg


<code>sudo apt-get update</code>
完成后执行 <code>sudo reboot</code> ,重启系统,使这些设置生效。


http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_06.jpg
执行<code>hailortcli fw-control identify</code>,如果出现以下输出则成功安装了HAILO 8L的依赖:


更新完成后安装必要的软件:
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_39.jpg


<code>sudo apt-get install cmake libedgetpu1-std devscripts debhelper dkms dh-dkms</code>
最后再执行<code>rpicam-hello -t 10s</code>,打开摄像头并出现预览窗口,确定摄像头正常。


http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_07.jpg
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_40.jpg


http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_08.jpg
=== 8.4 图像识别检测 ===
执行:


=== 4.4 安装Gasket Driver ===
<code>git clone --depth 1 <nowiki>https://github.com/raspberrypi/rpicam-apps.git</nowiki> ~/rpicam-apps</code>
依次输入以下命令安装Gasket Driver:


<code>git clone <nowiki>https://github.com/google/gasket-driver.git</nowiki></code>
克隆rpicam-apps库:


<code>cd gasket-driver</code>
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_41.jpg


<code>sudo debuild -us -uc -tc -b</code>
克隆完成后,就可以开始进行图像的识别检测:


<code>cd ..</code>
<code>rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov6_inference.json --lores-width 640 --lores-height 640</code>


<code>sudo dpkg -i gasket-dkms_1.0-18_all.deb</code>
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_42.jpg


http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_09.jpg
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_43.jpg


http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_10.jpg
'''<big>鉴于本开发板的测试需要在外网下载大量数据,为了方便用户进行测试,用户在购买本开发板后,可以联系我司获取已经配置完毕的树莓派OS镜像。</big>'''
 
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>
 
=== 4.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
 
=== 4.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
 
=== 4.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
 
=== 4.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


== '''五、树莓派系统下使用SSD硬盘''' ==
== '''五、树莓派系统下使用SSD硬盘''' ==

2024年9月2日 (一) 13:06的版本

关键词

树莓派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. 一路PICe扩M.2 E key接口,用于接Google coral Edge TPU,树莓派官方OS加载驱动;

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

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

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

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

0013_MPTPU_M_03.jpg

注意:

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

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

三、系统烧写及设置

3.1 概述

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

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

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

Ubuntu系统的版本为ubuntu-24.04-preinstalled-desktop-arm64+raspi.img.xz,Ubuntu OS下载地址:

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

OpenWrt系统版本:

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

3.2 系统烧写在SD(TF)卡上

点击直达烧写方法说明

3.3 系统烧写在SSD硬盘上

点击直达烧写方法说明

八、Ai模块(HAILO 8L)在MPS2242上的使用演示

8.1 概述

在各种实际应用的场合中,人们对于摄像头图像检测识别的需求逐渐增加,市面上也有许多利用AI的解决方案,本文所演示的方案是树莓派5搭配OV5647摄像头、MPS2242和HAILO 8L AI模块在树莓派5上的使用演示

此操作演示同时也适用于我们司所有树莓派5的SSD相关的PCIE转接板,包括MPS2242-POE、MPS2280、MPS2280P、MPS2280Bi、MPS2280-POE、MPS2280D、MPS2.5G、MPSAI、MPSD2.5GD等。

(另外我司树莓派CM4扩展板上其它带CSI接口+M.2 SSD接口的板子均可使用,如CM4_SSD扩展板、CM4_3PCIE扩展板、CM4_Ultra扩展板、CM4_SSD+WiFi扩展板、CM4_SSD+双以太网、CM4_NAS等。)

0005_MPS2242_2280_44.jpg

注意:此操作演示需要确保能稳定连通外网(需自备方法),否则许多文件无法下载或下载不全,最后可能会造成代码运行失败。

8.2 更新系统

8.2.1 启动树莓派OS,在终端中执行:

sudo apt update

sudo apt full-upgrade

0005_MPS2242_2280_28.jpg

0005_MPS2242_2280_29.jpg

8.2.2 执行sudo rpi-eeprom-update,查看树莓派固件,确保树莓派的固件日期在2023年12月6日之后:

0005_MPS2242_2280_30.jpg

如上图所示,固件时间是2024年6月5日。

8.2.3 执行sudo raspi-config,根据下图依次选择对应选项:

0005_MPS2242_2280_31.jpg

0005_MPS2242_2280_32.jpg

0005_MPS2242_2280_33.jpg

0005_MPS2242_2280_34.jpg

0005_MPS2242_2280_35.jpg

0005_MPS2242_2280_36.jpg

选择完之后退出,系统会自动重启,如果没有自动重启,请手动执行 sudo reboot ,重启系统。

8.3 AI模块所需要的依赖安装

执行sudo apt install hailo-all,安装AI模块所需要的依赖安装:

0005_MPS2242_2280_37.jpg

0005_MPS2242_2280_38.jpg

完成后执行 sudo reboot ,重启系统,使这些设置生效。

执行hailortcli fw-control identify,如果出现以下输出则成功安装了HAILO 8L的依赖:

0005_MPS2242_2280_39.jpg

最后再执行rpicam-hello -t 10s,打开摄像头并出现预览窗口,确定摄像头正常。

0005_MPS2242_2280_40.jpg

8.4 图像识别检测

执行:

git clone --depth 1 https://github.com/raspberrypi/rpicam-apps.git ~/rpicam-apps

克隆rpicam-apps库:

0005_MPS2242_2280_41.jpg

克隆完成后,就可以开始进行图像的识别检测:

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov6_inference.json --lores-width 640 --lores-height 640

0005_MPS2242_2280_42.jpg

0005_MPS2242_2280_43.jpg

鉴于本开发板的测试需要在外网下载大量数据,为了方便用户进行测试,用户在购买本开发板后,可以联系我司获取已经配置完毕的树莓派OS镜像。

五、树莓派系统下使用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 野芯科技