0013 MPSTPU(M.2 E):修订间差异

来自Mcuzone Wiki
第9行: 第9行:


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


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


https://ubuntu.com/download/raspberry-pi
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.2 系统烧写在SD(TF)卡上 ===
第275行: 第279行:
[[0005 MPS2242 2280(单SSD扩展板)#7.2 在PCIe Gen2下测试硬盘速度|安装硬盘测速软件hdparm]]
[[0005 MPS2242 2280(单SSD扩展板)#7.2 在PCIe Gen2下测试硬盘速度|安装硬盘测速软件hdparm]]


因为MPS2.5G无法工作在PCIe Gen3模式下,所以我们无需更改PCIe模式,直接使用hdparm软件测试速度即可。
关于如何测试SSD硬盘,我们可以参考以下链接:
 
[http://wiki.mcuzone.com/index.php?title=0008_MPS2.5G%EF%BC%88SSD%E5%92%8C2.5G%E4%BB%A5%E5%A4%AA%E7%BD%91%EF%BC%89#4.2_SSD%E7%A1%AC%E7%9B%98%E6%B5%8B%E8%AF%95 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硬盘,我们可以参考以下链接:
 
[http://wiki.mcuzone.com/index.php?title=0008_MPS2.5G%EF%BC%88SSD%E5%92%8C2.5G%E4%BB%A5%E5%A4%AA%E7%BD%91%EF%BC%89#5.2_SSD%E7%A1%AC%E7%9B%98%E6%B5%8B%E8%AF%95 SSD硬盘测试(Ubuntu系统下)]
 
== '''七、OpenWrt系统下使用SSD硬盘''' ==
关于如何在OpenWrt系统下使用SSD硬盘,我们可以参考以下链接:


在树莓派终端下运行<code>df</code>,查看SSD分区名为nvme0n1p1:
[http://wiki.mcuzone.com/index.php?title=2001_CM4_Ultra%EF%BC%88CM4%E6%A0%B8%E5%BF%83%E6%9D%BF%E7%9A%84%E6%89%A9%E5%B1%95%E6%9D%BF%EF%BC%89#5.5_SSD%E7%A1%AC%E7%9B%98%E6%B5%8B%E8%AF%95 SSD硬盘测试(OpenWrt系统下)]

2024年8月19日 (一) 10:37的版本

关键词

树莓派5、PCIe、TPU、DTPU、驱动安装、操作演示、AI、google、Coral、2230、2242、2280、NVMe SSD、固态硬盘 X1

一、简介

二、硬件资源

三、系统烧写及设置

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硬盘上

点击直达烧写方法说明

四、运行TPU模组

本章介绍如何在树莓派OS运行TPU模组。

本章的操作步骤同时适用于系统从TF卡启动和从SSD硬盘启动。

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

0006_MPW7_TPU_01.jpg

0006_MPW7_TPU_02.jpg

代码添加成功后,保存并重启系统:

sudo reboot

4.2 确认软件环境

系统重启后打开打开树莓派终端输入命令:

uname -r

确保内核版本大于4.18后输入:

lsmod | grep apex

确保没有输出则可以开始安装TPU驱动。

0006_MPW7_TPU_03.jpg

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 -

0006_MPW7_TPU_04.jpg

添加完成后更新软件列表:

sudo apt-get update

0006_MPW7_TPU_06.jpg

更新完成后安装必要的软件:

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

0006_MPW7_TPU_07.jpg

0006_MPW7_TPU_08.jpg

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

0006_MPW7_TPU_09.jpg

0006_MPW7_TPU_10.jpg

0006_MPW7_TPU_11.jpg

安装完成后输入以下命令确保驱动以及软件安装成功:

sudo apt-get install gasket-dkms libedgetpu1-std

0006_MPW7_TPU_12.jpg

接下来添加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

0006_MPW7_TPU_13.jpg

设置完成后重启系统:

sudo reboot

4.5 验证模块检测以及驱动安装

系统启动后验证模块检测以及驱动安装:

lspci -nn | grep 089a

这里需要看到TPU模块,如下图所示(具体参数显示以实际为准):

ls /dev/apex_0

0006_MPW7_TPU_14.jpg

这里插了一个TPU模块,因此可以看到一个TPU模块。

输入sudo lspci -v可以看到驱动加载,其中必须包括TPU驱动,如果插了SSD硬盘,还需要包括SSD模块,如下图所示:

0013_MPTPU_M_01.jpg

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

0006_MPW7_TPU_17.jpg

0006_MPW7_TPU_18.jpg

依赖安装完成后进行pyenv的安装:

curl https://pyenv.run | bash

0006_MPW7_TPU_19.jpg

输入:

sudo nano ~/.bashrc

或者:

sudo mousepad ~/.bashrc

在文件最下面添加以下代码:

export PYENV_ROOT="$HOME/.pyenv"

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

eval "$(pyenv init -)"

0006_MPW7_TPU_36.jpg

0006_MPW7_TPU_21.jpg

添加完成后保存退出并重新加载shell:

exec "$SHELL"

0006_MPW7_TPU_22.jpg

接下来我们可以利用pyenv安装老系统版本Python:

pyenv install -v 3.8.8

0006_MPW7_TPU_23.jpg

0006_MPW7_TPU_24.jpg

等待安装成功后我们将系统Python版本更改为3.8.8:

pyenv global 3.8.8

更改成功后可以查看当前Python使用版本为3.8.8:

pyenv versions

python3 -V

0006_MPW7_TPU_25.jpg

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

0006_MPW7_TPU_26.jpg

0006_MPW7_TPU_27.jpg

接下来下载代码运行模组

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

4.8 运行代码

模组下载完成后返回 coral/pycoral路径下

cd ..

输入以下代码进行代码运行

0006_MPW7_TPU_39.jpg

注意:我们可以复制下列代码,但是请先粘贴到文本软件中,按照上图的格式,删除多余的回车符,再复制然后粘贴到终端中运行:

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

五、树莓派系统下使用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系统下)