Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save dataslayermedia/714ec5a9601249d9ee754919dea49c7e to your computer and use it in GitHub Desktop.
Save dataslayermedia/714ec5a9601249d9ee754919dea49c7e to your computer and use it in GitHub Desktop.
Install Coral AI PCIe Edge TPU on Raspberry Pi 5
#!/bin/bash
cd /
sudo apt update
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 libedgetpu1-std
sudo apt install -y devscripts debhelper
sudo apt install dkms
sudo apt-get install dh-dkms
# Clone the Gasket driver repository
sudo git clone https://github.com/google/gasket-driver.git
# Change directory to the cloned repository
cd gasket-driver
# Build the Gasket driver package
sudo debuild -us -uc -tc -b
# Go back to the parent directory
cd ..
# Install the built Gasket driver package
sudo dpkg -i gasket-dkms_1.0-18_all.deb
sudo sh -c "echo 'SUBSYSTEM==\"apex\", MODE=\"0660\", GROUP=\"apex\"' >> /etc/udev/rules.d/65-apex.rules"
sudo groupadd apex
sudo adduser $USER apex
# Update the boot configuration for Raspberry Pi
echo "kernel=kernel8.img" | sudo tee -a /boot/firmware/config.txt
# Back up the Device Tree Blob (DTB)
sudo cp /boot/firmware/bcm2712-rpi-5-b.dtb /boot/firmware/bcm2712-rpi-5-b.dtb.bak
# Decompile the DTB into a DTS file
sudo dtc -I dtb -O dts /boot/firmware/bcm2712-rpi-5-b.dtb -o ~/test.dts
# Modify the Device Tree Source (DTS)
sudo sed -i '/pcie@110000 {/,/};/{/msi-parent = <[^>]*>;/{s/msi-parent = <[^>]*>;/msi-parent = <0x67>;/}}' ~/test.dts
# Recompile the DTS back into a DTB
sudo dtc -I dts -O dtb ~/test.dts -o ~/test.dtb
# Replace the old DTB with the new one
sudo mv ~/test.dtb /boot/firmware/bcm2712-rpi-5-b.dtb
sudo reboot now
@MappyMatty
Copy link

Thanks. Can you please clarify the kernel downgrade process to 6.6.74+rpt-rpi-v8? Sorry for noob question!
I think I use rpi-config _firmware code_ but I’m confused about how I determine that firmware code.

@PedroViniciusMelo
Copy link

I had problems when downgrading using the sudo apt install --reinstall raspi-firmware given in the official docs Docs, so unfortunatly the easiest way for me was to reinstall the system using the Raspberry PI Imager (the installed version has the compatible kernel)

@vasimv
Copy link

vasimv commented Apr 23, 2025

Thanks. Can you please clarify the kernel downgrade process to 6.6.74+rpt-rpi-v8? Sorry for noob question! I think I use rpi-config _firmware code_ but I’m confused about how I determine that firmware code.

I've did that first time, had nice answer from google ai. But not sure if can be repeated as is. First, you have to install specific version "apt install linux-image-6.6.51+rpt-rpi-v8 linux-image-6.6.51+rpt-rpi-2712". Then set newest kernel on hold - "dpkg --get-selections |grep linux-image" and then "echo 'linux-image-6.12.20+rpt-rpi-v8 hold' | dpkg --set-selections" for both newest kernels. Remove old kernel packages by "apt remove linux-image-6.12.20+rpt-rpi-v8 linux-image-6.12.20+rpt-rpi-2712". And force reinstall old kernel version to get everything updated - "apt install --force linux-image-6.6.51+rpt-rpi-v8 linux-image-6.6.51+rpt-rpi-2712".

Probably good idea to remove gasket-dkms package before doing all of this as it can affect the whole process and install it after.

@MappyMatty
Copy link

Thanks @PedroViniciusMelo and @vasimv. When I create using Raspberry Pi Imager I get 6.12.20 presumably because the hosting RPi is on a later kernel version. I'll try the steps vasimv has outlined once I have some time and can backup my current setup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment