跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
Mcuzone Wiki
搜索
搜索
登录
个人工具
登录
查看“0013 MPSTPU(M.2 E)”的源代码
页面
讨论
大陆简体
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
←
0013 MPSTPU(M.2 E)
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[0013 MPSTPU(M.2 E) EN|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定位孔吻合;可选配铝合金外壳。 http://www.mcuzone.com/wiki/0013_MPTPU_M/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)卡上 === [[0005 MPS2242 2280 2280P(单SSD扩展板)#3.2 从TF卡启动|点击直达烧写方法说明]]。 === 3.3 系统烧写在SSD硬盘上 === [[0005 MPS2242 2280 2280P(单SSD扩展板)#3.3 从SSD硬盘启动|点击直达烧写方法说明]]。 == '''四、树莓派OS下操作演示''' == 本章介绍如何在树莓派OS运行TPU模组。 本章的操作步骤同时适用于系统从TF卡启动和从SSD硬盘启动。 === 4.1 TPU模组的使用 === ==== 4.1.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> ==== 4.1.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 ==== 4.1.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 ==== 4.1.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> ==== 4.1.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.1.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.1.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.1.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 === '''4.2 树莓派系统下使用SSD硬盘''' === 关于对SSD硬盘的基本操作,我们可以参考以下链接: [[0005 MPS2242 2280(单SSD扩展板)#4.1 SSD用作存储扩展|SSD用作存储扩展(树莓派OS下)]] [[0005 MPS2242 2280(单SSD扩展板)#六、对SSD进行分区等操作|对SSD进行分区等操作]] [[0005 MPS2242 2280(单SSD扩展板)#cite ref-1|调整外设启动顺序]] [[0005 MPS2242 2280(单SSD扩展板)#7.2 在PCIe Gen2下测试硬盘速度|安装硬盘测速软件hdparm]] 关于如何测试SSD硬盘,我们可以参考以下链接: [[0008 MPS2.5G(SSD和2.5G以太网)#4.2 SSD硬盘测试|SSD硬盘测试(树莓派OS下)]] == '''五、Ubuntu系统下使用SSD硬盘''' == 关于对SSD硬盘的基本操作,我们可以参考以下链接,除了SSD用作存储扩展中与树莓派OS下操作略有不同,其余部分基本相同: [[0005 MPS2242 2280(单SSD扩展板)#5.1 SSD用作存储扩展|SSD用作存储扩展(Ubuntu系统下)]] [[0005 MPS2242 2280(单SSD扩展板)#六、对SSD进行分区等操作|对SSD进行分区等操作]] [[0005 MPS2242 2280(单SSD扩展板)#cite ref-1|调整外设启动顺序]] [[0005 MPS2242 2280(单SSD扩展板)#7.2 在PCIe Gen2下测试硬盘速度|安装硬盘测速软件hdparm]] 关于如何测试SSD硬盘,我们可以参考以下链接: [[0008 MPS2.5G(SSD和2.5G以太网)#5.2 SSD硬盘测试|SSD硬盘测试(Ubuntu系统下)]] == '''六、OpenWrt系统下使用SSD硬盘''' == 关于如何在OpenWrt系统下使用SSD硬盘,我们可以参考以下链接: [[2001 CM4 Ultra(CM4核心板的扩展板)#5.5 SSD硬盘测试|SSD硬盘测试(OpenWrt系统下)]] {{联系我们_图标}}
本页使用的模板:
模板:联系我们 图标
(
查看源代码
)
返回
0013 MPSTPU(M.2 E)
。
开关有限宽度模式