0006 MPTPU(M.2 E):修订间差异
无编辑摘要 |
|||
(未显示3个用户的40个中间版本) | |||
第1行: | 第1行: | ||
[[0006 MPTPU(M.2 E) EN|Change the language to English]] | |||
== '''关键词''' == | == '''关键词''' == | ||
树莓派5、PCIe、TPU、DTPU、驱动安装、操作演示、AI、google、Coral | |||
== '''一、简介''' == | == '''一、简介''' == | ||
MPTPU是一款专为树莓派5设计的TPU扩展板,通过PCIe 1x Gen2驱动来自Coral的TPU模组。树莓派系统下使用TPU模块需要安装驱动以及操作环境配置,本文操作演示基于MPTPU扩展板(单TPU),对于双TPU的驱动安装也适用。 | |||
'''''注意:此操作演示需要确保能稳定连通外网(需自备方法),否则许多文件无法下载或下载不全,最后可能会造成代码运行失败。''''' | |||
== '''二、硬件资源''' == | == '''二、硬件资源''' == | ||
1 专为树莓派5的PCIe接口设计; | |||
2 采用M.2 E-KEY接口,支持Google Coral Edge TPU; | |||
3 预留CSI/DSI穿线槽:支持0.5mm间距的22Pin线缆和1mm间距的15Pin线缆; | |||
4 板载一路电源指示灯("PWR"); | |||
5 采用优质电子元件,无铅生产,沉金工艺,PCB板通过UL认证和RoHS认证; | |||
6 四个M2.5固定孔,板子上方内凹设计,方便40Pin GPIO的操作使用,不影响树莓派5的40Pin GPIO使用; | |||
7 可选配铝合金外壳。 | |||
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_41.jpg | |||
== '''三、系统烧写''' == | |||
3.1 本文档使用的镜像为2024-07-04-raspios-bookworm-arm64.img.xz(树莓派OS,Raspberry Pi OS with desktop)。 | |||
树莓派OS下载地址: | |||
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit | |||
3.2 系统烧写在SD(TF)卡上,[[0005 MPS2242 2280 2280P(单SSD扩展板)#3.2 从TF卡启动|点击直达烧写方法说明]]。 | |||
'''''注意:烧写系统用的TF卡的容量至少为16G,否则可能会在安装配置过程中报空间不足!''''' | |||
== '''四、树莓派OS的操作演示''' == | |||
=== 4.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.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.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.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.5 验证模块检测以及驱动安装 === | |||
系统启动后验证模块检测以及驱动安装: | |||
<code>lspci -nn | grep 089a</code> | |||
<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>可以看到驱动加载: | |||
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_15.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>[[</code><code> -d $PYENV_ROOT/bin </code><code>]]</code><code> && 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 | |||
'''<big>鉴于本转接板的测试需要在外网下载大量数据,为了方便用户进行测试,用户在购买本转接板后,可以联系我司获取已经配置完毕的树莓派OS镜像。</big>''' | |||
{{联系我们_图标}} | |||
2024年10月16日 (三) 21:31的最新版本
Change the language to English
关键词
树莓派5、PCIe、TPU、DTPU、驱动安装、操作演示、AI、google、Coral
一、简介
MPTPU是一款专为树莓派5设计的TPU扩展板,通过PCIe 1x Gen2驱动来自Coral的TPU模组。树莓派系统下使用TPU模块需要安装驱动以及操作环境配置,本文操作演示基于MPTPU扩展板(单TPU),对于双TPU的驱动安装也适用。
注意:此操作演示需要确保能稳定连通外网(需自备方法),否则许多文件无法下载或下载不全,最后可能会造成代码运行失败。
二、硬件资源
1 专为树莓派5的PCIe接口设计;
2 采用M.2 E-KEY接口,支持Google Coral Edge TPU;
3 预留CSI/DSI穿线槽:支持0.5mm间距的22Pin线缆和1mm间距的15Pin线缆;
4 板载一路电源指示灯("PWR");
5 采用优质电子元件,无铅生产,沉金工艺,PCB板通过UL认证和RoHS认证;
6 四个M2.5固定孔,板子上方内凹设计,方便40Pin GPIO的操作使用,不影响树莓派5的40Pin GPIO使用;
7 可选配铝合金外壳。
三、系统烧写
3.1 本文档使用的镜像为2024-07-04-raspios-bookworm-arm64.img.xz(树莓派OS,Raspberry Pi OS with desktop)。
树莓派OS下载地址:
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
3.2 系统烧写在SD(TF)卡上,点击直达烧写方法说明。
注意:烧写系统用的TF卡的容量至少为16G,否则可能会在安装配置过程中报空间不足!
四、树莓派OS的操作演示
4.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.2 确认软件环境
系统重启后打开打开树莓派终端输入命令:
uname -r
确保内核版本大于4.18后输入:
lsmod | grep apex
确保没有输出则可以开始安装TPU驱动。
4.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.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.5 验证模块检测以及驱动安装
系统启动后验证模块检测以及驱动安装:
lspci -nn | grep 089a
ls /dev/apex_0
这里板载单TPU,因此可以看到一个TPU模块。
输入sudo lspci -v
可以看到驱动加载:
4.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.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.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
鉴于本转接板的测试需要在外网下载大量数据,为了方便用户进行测试,用户在购买本转接板后,可以联系我司获取已经配置完毕的树莓派OS镜像。
联系我们
电话:13957118045
如本页面有任何疏漏、错误或者侵权,请通过上述途径联系我们,谢谢!
Copyright 2004-2024 野芯科技