0006 MPTPU(M.2 E) EN:修订间差异

来自Mcuzone Wiki
第41行: 第41行:
<code>sudo nano /boot/firmware/config.txt</code>
<code>sudo nano /boot/firmware/config.txt</code>


or:
Or:


<code>sudo mousepad /boot/firmware/config.txt</code>
<code>sudo mousepad /boot/firmware/config.txt</code>
第138行: 第138行:
<code>sudo reboot</code>
<code>sudo reboot</code>


=== 4.5 验证模块检测以及驱动安装 ===
=== 4.5 Verification module testing and driver installation ===
系统启动后验证模块检测以及驱动安装:
After system starting, verification module testing and driver installation:


<code>lspci -nn | grep 089a</code>
<code>lspci -nn | grep 089a</code>
第147行: 第147行:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_14.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_14.jpg


这里板载单TPU,因此可以看到一个TPU模块。
This board has a single TPU onboard, so you can see a TPU module:


输入<code>sudo lspci -v</code>可以看到驱动加载:
By entering <code>sudo lspci -v</code>, you can see the driver loading:


http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_15.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_15.jpg


=== 4.6 代码运行环境配置 ===
=== 4.6 Configuration of the Code Execution Environment ===
Google TPU模块代码运行需要在Python3.6-3.9之间,而树莓派最新系统的Python版本为3.11,因此我们需要使用Pyenv来下载老版本Python。
Running Google TPU module code requires Python versions between 3.6 and 3.9, while the latest Raspberry Pi system is Python 3.11. Therefore, we need to use Pyenv to download an older version of Python.


首先进行依赖安装:
First, install the depends:


<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>
<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>
第164行: 第164行:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_18.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_18.jpg


依赖安装完成后进行pyenv的安装:
Install pyenv after the depends are installed:


<code>curl <nowiki>https://pyenv.run</nowiki> | bash</code>
<code>curl <nowiki>https://pyenv.run</nowiki> | bash</code>
第170行: 第170行:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_19.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_19.jpg


输入:
Enter the command:


<code>sudo nano ~/.bashrc</code>  
<code>sudo nano ~/.bashrc</code>  


或者:
Or:


<code>sudo mousepad ~/.bashrc</code>  
<code>sudo mousepad ~/.bashrc</code>  


在文件最下面添加以下代码:
Add the codes in the ending of this file:


<code>export PYENV_ROOT="$HOME/.pyenv"</code>
<code>export PYENV_ROOT="$HOME/.pyenv"</code>
第190行: 第190行:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_21.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_21.jpg


添加完成后保存退出并重新加载shell:
Save and exit after adding, then reload the shell:


<code>exec "$SHELL"</code>
<code>exec "$SHELL"</code>
第196行: 第196行:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_22.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_22.jpg


接下来我们可以利用pyenv安装老系统版本Python:
Then, we can use pyenv to install an older version of Python:


<code>pyenv install -v 3.8.8</code>
<code>pyenv install -v 3.8.8</code>
第204行: 第204行:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_24.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_24.jpg


等待安装成功后我们将系统Python版本更改为3.8.8:
After the installation is successful, we will change the system Python version to 3.8.8:


<code>pyenv global 3.8.8</code>
<code>pyenv global 3.8.8</code>


更改成功后可以查看当前Python使用版本为3.8.8:
After the change is successful, you can check the current Python version is 3.8.8:


<code>pyenv versions</code>
<code>pyenv versions</code>
第216行: 第216行:
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


== '''五、下载和运行演示代码''' ==
== '''Ⅴ、Download and run the demo code''' ==


=== 5.1 下载代码和运行模组 ===
=== 5.1 Download the code and run the module ===
依次输入以下命令进行下载:
Enter the following commands in sequence to download:


<code>mkdir coral && cd coral</code>
<code>mkdir coral && cd coral</code>
第235行: 第235行:
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_27.jpg
http://www.mcuzone.com/wiki/0006_MPW7_TPU/0006_MPW7_TPU_27.jpg


接下来下载代码运行模组
Then, download the code and run the module:


<code>pip3 install numpy</code>
<code>pip3 install numpy</code>
第249行: 第249行:
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


=== 5.2 运行代码 ===
=== 5.2 Run the code ===
模组下载完成后返回 coral/pycoral路径下
After the module download is complete, back to the coral/pycoral path:


<code>cd ..</code>
<code>cd ..</code>


输入以下代码进行代码运行
Enter the following code to run it:


<code>python3 examples/classify_image.py \</code>
<code>python3 examples/classify_image.py \</code>
第266行: 第266行:
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


'''<big>鉴于本开发板的测试需要在外网下载大量数据,为了方便用户进行测试,用户在购买本开发板后,可以联系我司获取已经配置完毕的树莓派OS镜像。</big>'''
'''<big>You should downloading a large amount of data from the internet out of China to use the testing of this development board, so users can contact our company after buying this development board to obtain a pre-configured Raspberry Pi OS image.</big>'''


{{联系我们_图标}}
{{联系我们_图标}}

2024年8月14日 (三) 10:14的版本

Keywords

Raspberry Pi5, PCIe, TPU, DTPU, Driver installation, Operation demonstration, AI, Google, Coral

Ⅰ、Introduction

MPTPU is a TPU expansion board specifically designed for the Raspberry Pi 5, driven by a Coral TPU module through PCIe 1x Gen2. TPU module on the Raspberry Pi system requires the installation of drivers and configuration of the operating environment. This document is based on the MPTPU expansion board (single TPU), and the driver installation is also applicable for dual TPU setups.

Note: The operation requires a stable internet connection to the regions out of China (you may need to find your own method). Otherwise, many files may not download or may only partially download, which could ultimately lead to the code failing to run.

Ⅱ、Hardware Resources

2.1 Specifically designed for the PCIe interface of the Raspberry Pi 5.

2.2 Support M.2 E-KEY PCIe and Google coral Edge TPU.

2.3 CSI/DSI slots: Supports 0.5mm pitch 22-pin cables and 1mm pitch 15-pin cables.

2.4 An onboard power indicator LED ("PWR").

2.5 Adopts high-quality electronic components, lead-free production, immersion gold process; the PCB board is UL certified and RoHS compliant.

2.6 The board has four M2.5 mounting holes, with a recessed design on the top of the board to facilitate the use of the 40-Pin GPIO without affecting the use of the Raspberry Pi 5's 40-Pin GPIO. 0006_MPW7_TPU_33.jpg

0006_MPW7_TPU_34.jpg

0006_MPW7_TPU_35.jpg

Ⅲ、System flashing

3.1 The Raspberry Pi OS used in this document is: 2024-07-04-raspios-bookworm-armhf.img.xz(Raspberry Pi OS with desktop)。

You can download it in:

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

3.2 Use Imager or balenaEtcher to flash the OS image in TF card. Click here to read the instructions for System flashing

Ⅳ、Driver installation and configuration

4.1 Config config.txt

After the system starts, open the Raspberry Pi terminal and enter the command:

sudo nano /boot/firmware/config.txt

Or:

sudo mousepad /boot/firmware/config.txt

Add the codes in the ending of this file:

dtparam=pciex1

kernel=kernel8.img

dtoverlay=pineboards-hat-ai

0006_MPW7_TPU_01.jpg

0006_MPW7_TPU_02.jpg

Then, save the file and reboot the system:

sudo reboot

4.2 Ensuring software environment

After reboot the system, open the Raspberry Pi terminal and enter the command:

uname -r

After ensuring the kernel version is greater than 4.18, enter:

lsmod | grep apex

Ensure there is no output, then you can begin installing the TPU driver.

0006_MPW7_TPU_03.jpg

4.3 Install necessary software

Ensure the network is connected to internet connection to the regions out of China (you may need to find your own method), and then add the Google TPU software library:

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 -

0006_MPW7_TPU_04.jpg

Update the software list after adding:

sudo apt-get update

0006_MPW7_TPU_06.jpg

Install the necessary software after the update is completed:

sudo apt-get install cmake libedgetpu1-std devscripts debhelper dkms dh-dkms

0006_MPW7_TPU_07.jpg

0006_MPW7_TPU_08.jpg

4.4 Install Gasket Driver

Enter the following commands in sequence to install the 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

0006_MPW7_TPU_09.jpg

0006_MPW7_TPU_10.jpg

0006_MPW7_TPU_11.jpg

After the installation is complete, enter the following command to ensure that the driver and software were installed successfully:

sudo apt-get install gasket-dkms libedgetpu1-std

0006_MPW7_TPU_12.jpg

Then, add a udev rule to obtain device operation permissions:

sudo sh -c "echo 'SUBSYSTEM==\"apex\", MODE=\"0660\", GROUP=\"apex\"' >> /etc/udev/rules.d/65-apex.rules"

add user to apex:

sudo groupadd apex

sudo adduser $USER apex

0006_MPW7_TPU_13.jpg

Reboot the system after the setup is complete:

sudo reboot

4.5 Verification module testing and driver installation

After system starting, verification module testing and driver installation:

lspci -nn | grep 089a

ls /dev/apex_0

0006_MPW7_TPU_14.jpg

This board has a single TPU onboard, so you can see a TPU module:

By entering sudo lspci -v, you can see the driver loading:

0006_MPW7_TPU_15.jpg

4.6 Configuration of the Code Execution Environment

Running Google TPU module code requires Python versions between 3.6 and 3.9, while the latest Raspberry Pi system is Python 3.11. Therefore, we need to use Pyenv to download an older version of Python.

First, install the depends:

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

0006_MPW7_TPU_17.jpg

0006_MPW7_TPU_18.jpg

Install pyenv after the depends are installed:

curl https://pyenv.run | bash

0006_MPW7_TPU_19.jpg

Enter the command:

sudo nano ~/.bashrc

Or:

sudo mousepad ~/.bashrc

Add the codes in the ending of this file:

export PYENV_ROOT="$HOME/.pyenv"

[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"

eval "$(pyenv init -)"

0006_MPW7_TPU_20.jpg

0006_MPW7_TPU_21.jpg

Save and exit after adding, then reload the shell:

exec "$SHELL"

0006_MPW7_TPU_22.jpg

Then, we can use pyenv to install an older version of Python:

pyenv install -v 3.8.8

0006_MPW7_TPU_23.jpg

0006_MPW7_TPU_24.jpg

After the installation is successful, we will change the system Python version to 3.8.8:

pyenv global 3.8.8

After the change is successful, you can check the current Python version is 3.8.8:

pyenv versions

python3 -V

0006_MPW7_TPU_25.jpg

Ⅴ、Download and run the demo code

5.1 Download the code and run the module

Enter the following commands in sequence to download:

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

0006_MPW7_TPU_26.jpg

0006_MPW7_TPU_27.jpg

Then, download the code and run the module:

pip3 install numpy

0006_MPW7_TPU_28.jpg

pip3 install Pillow

0006_MPW7_TPU_29.jpg

pip3 install --extra-index-url https://google-coral.github.io/py-repo/ pycoral

0006_MPW7_TPU_30.jpg

5.2 Run the code

After the module download is complete, back to the coral/pycoral path:

cd ..

Enter the following code to run it:

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

0006_MPW7_TPU_31.jpg

You should downloading a large amount of data from the internet out of China to use the testing of this development board, so users can contact our company after buying this development board to obtain a pre-configured Raspberry Pi OS image.

联系我们

4f7e81daf8791971.jpg 79c020da7ad0af9b.jpg 2851e01a0549e6f7.gif 0003_bb.jpg 0005_qq.jpg QQ:8204136

邮件:mcuzone@vip.qq.com

电话:13957118045

如本页面有任何疏漏、错误或者侵权,请通过上述途径联系我们,谢谢!

Copyright 2004-2024 野芯科技