How to configure the Google Coral Edge TPU on the Raspberry Pi 5

This tutorial will guide you through the configuration process for the Google Coral Edge TPU on a Raspberry Pi 5, including hardware settings and software installation.

Prerequisites

  • A Raspberry Pi with Raspberry Pi OS installed.
  • An internet connection.
  • Basic knowledge of terminal commands.

Step 1: Configure Hardware Settings

First, you need to edit the Raspberry Pi configuration file to enable the necessary hardware settings for the Coral Edge TPU. Open the config file:

sudo nano /boot/firmware/config.txt

Add the following lines to the file:

[all]
# Enable the PCIe External connector.
dtparam=pciex1
kernel=kernel8.img
# Enable Pineboards Hat Ai
dtoverlay=pineboards-hat-ai

Save and close the file by pressing CTRL+X, then Y to confirm, and Enter to exit. Reboot your Raspberry Pi to apply these changes:

sudo reboot

Step 2: Update the Kernel

Kernel version 6.6.30 or higher is needed for the Pineboards Hat Ai overlay. This version is only available via rpi-update right now, please use this tutorial to install the Kernel). To check your kernel version use this command:

uname -a

Expected output:

Linux coralpi 6.6.30-v8+ #1761 SMP PREEMPT Thu May  2 16:54:52 BST 2024 aarch64 GNU/Linux

Step 3: Install the PCIe Driver and Edge TPU Runtime

Update your package list:

sudo apt update

Add the Google Coral Edge TPU package repository:

echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list

Import the repository GPG key:

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

Update your package list again:

sudo apt-get update

Install necessary packages:

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

Step 4: Install the Gasket Driver

Clone the Gasket driver repository:

git clone https://github.com/google/gasket-driver.git

Change into the directory and build the driver:

cd gasket-driver

sudo debuild -us -uc -tc -b

Go back to the parent directory and install the built package:

cd ..

sudo dpkg -i gasket-dkms_1.0-18_all.deb

Step 5: Set Up the udev Rule Add a udev rule to manage device permissions:

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

Create a new group and add your user to it:

sudo groupadd apex
sudo adduser $USER apex

Reboot your Raspberry Pi to apply all changes:

sudo reboot

Verify if the driver is loaded using the following command:

sudo lspci -v

Expected output:

0000:01:00.0 System peripheral: Global Unichip Corp. Coral Edge TPU (prog-if ff)
Subsystem: Global Unichip Corp. Coral Edge TPU
Flags: bus master, fast devsel, latency 0, IRQ 39
Memory at 1800100000 (64-bit, prefetchable) [size=16K]
Memory at 1800000000 (64-bit, prefetchable) [size=1M]
Capabilities: [80] Express Endpoint, MSI 00
Capabilities: [d0] MSI-X: Enable+ Count=128 Masked-
Capabilities: [e0] MSI: Enable- Count=1/32 Maskable- 64bit+
Capabilities: [f8] Power Management version 3
Capabilities: [100] Vendor Specific Information: ID=1556 Rev=1 Len=008 <?>
Capabilities: [108] Latency Tolerance Reporting
Capabilities: [110] L1 PM Substates
Capabilities: [200] Advanced Error Reporting
Kernel driver in use: apex
Kernel modules: apex

Conclusion

Your Raspberry Pi is now configured to use the Coral Edge TPU. You can begin deploying machine learning models and running inference tasks with improved processing power.

Back to blog