PCIE Google Coral Install Instructions

Jake_Simek

New Member
Mar 12, 2024
4
5
3
I wanted to go ahead and show how I was able to get the pcie google coral functioning on my pve machine. It has been a complete nightmare for me, and it seems like it has been for many others as well. I am no professional, but these are simply the commands I used to get this running. There are several things that most likely could have been consolidated, like the reboots and apt installs, but this is what is tested and works for me.


This is the output of lscpu on my machine for reference

Code:
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         39 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  4
  On-line CPU(s) list:   0-3
Vendor ID:               GenuineIntel
  BIOS Vendor ID:        Intel(R) Corporation
  Model name:            Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz
    BIOS Model name:     Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz To Be Filled By O.E.M. CPU @ 3.7GHz
    BIOS CPU family:     206
    CPU family:          6
    Model:               94
    Thread(s) per core:  2
    Core(s) per socket:  2
    Socket(s):           1
    Stepping:            3
    CPU(s) scaling MHz:  80%
    CPU max MHz:         3700.0000
    CPU min MHz:         800.0000
    BogoMIPS:            7399.70
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fm
                         a cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves
                          dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi
Virtualization features:
  Virtualization:        VT-x
Caches (sum of all):     
  L1d:                   64 KiB (2 instances)
  L1i:                   64 KiB (2 instances)
  L2:                    512 KiB (2 instances)
  L3:                    3 MiB (1 instance)
NUMA:                   
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-3
Vulnerabilities:         
  Gather data sampling:  Vulnerable: No microcode
  Itlb multihit:         KVM: Mitigation: VMX disabled
  L1tf:                  Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerable
  Mds:                   Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable
  Meltdown:              Mitigation; PTI
  Mmio stale data:       Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable
  Retbleed:              Vulnerable
  Spec rstack overflow:  Not affected
  Spec store bypass:     Vulnerable
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Retpolines, STIBP disabled, RSB filling, PBRSB-eIBRS Not affected
  Srbds:                 Vulnerable: No microcode
  Tsx async abort:       Not affected






Coral Install
# This was all done from root user

#First verify your machine has MSI-X by running this command

lspci -vv | grep MSI-X

#Also make sure secure boot is disabled if you have that option



apt update && apt upgrade -y

# Not needed, just makes copy and pasting cmds easier
apt install sudo -y

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 -

wget -O- https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/coral-edgetpu.gpg

apt update

sudo apt-get install gasket-dkms libedgetpu1-std -y

#likely not needed, but I was just being over cautious
reboot now


apt remove gasket-dkms -y

apt install git devscripts dh-dkms -y

cd /home

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

cd gasket-driver/

debuild -us -uc -tc -b

cd ..

apt install pve-headers -y

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

cd

apt update && apt upgrade -y

reboot now



# Verify the drivers are functioning properly

lspci -nn | grep 089a

ls /dev/apex_0



I hope this helps someone, if you have a question let me know, I am no expert, but I will try to help.
 
I feel your pain, been there.

If you haven't already, pin a kernel to 6.2 version -- lots of issues with coral/apex under 6.5 kernels. Do that and you don't have to build your own version, the "off the net" directions work fine.

Code:
root@pmx:~# proxmox-boot-tool kernel list
Manually selected kernels:
None.

Automatically selected kernels:
6.2.16-20-pve
6.5.11-7-pve
6.5.13-1-pve

root@pmx:~# proxmox-boot-tool kernel pin 6.2.16-20-pve
Setting '6.2.16-20-pve' as grub default entry and running update-grub.
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.5.13-1-pve
Found initrd image: /boot/initrd.img-6.5.13-1-pve
Found linux image: /boot/vmlinuz-6.5.11-7-pve
Found initrd image: /boot/initrd.img-6.5.11-7-pve
Found linux image: /boot/vmlinuz-6.2.16-20-pve
Found initrd image: /boot/initrd.img-6.2.16-20-pve
Found linux image: /boot/vmlinuz-6.2.16-3-pve
Found initrd image: /boot/initrd.img-6.2.16-3-pve
Found memtest86+ 64bit EFI image: /boot/memtest86+x64.efi
Adding boot menu entry for UEFI Firmware Settings ...
done
root@pmx:~#

then reboot
 
Last edited:
I wanted to go ahead and show how I was able to get the pcie google coral functioning on my pve machine. It has been a complete nightmare for me, and it seems like it has been for many others as well. I am no professional, but these are simply the commands I used to get this running. There are several things that most likely could have been consolidated, like the reboots and apt installs, but this is what is tested and works for me.


This is the output of lscpu on my machine for reference
Code:
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         39 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  4
  On-line CPU(s) list:   0-3
Vendor ID:               GenuineIntel
  BIOS Vendor ID:        Intel(R) Corporation
  Model name:            Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz
    BIOS Model name:     Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz To Be Filled By O.E.M. CPU @ 3.7GHz
    BIOS CPU family:     206
    CPU family:          6
    Model:               94
    Thread(s) per core:  2
    Core(s) per socket:  2
    Socket(s):           1
    Stepping:            3
    CPU(s) scaling MHz:  80%
    CPU max MHz:         3700.0000
    CPU min MHz:         800.0000
    BogoMIPS:            7399.70
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fm
                         a cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves
                          dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi
Virtualization features:
  Virtualization:        VT-x
Caches (sum of all):    
  L1d:                   64 KiB (2 instances)
  L1i:                   64 KiB (2 instances)
  L2:                    512 KiB (2 instances)
  L3:                    3 MiB (1 instance)
NUMA:                  
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-3
Vulnerabilities:        
  Gather data sampling:  Vulnerable: No microcode
  Itlb multihit:         KVM: Mitigation: VMX disabled
  L1tf:                  Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerable
  Mds:                   Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable
  Meltdown:              Mitigation; PTI
  Mmio stale data:       Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable
  Retbleed:              Vulnerable
  Spec rstack overflow:  Not affected
  Spec store bypass:     Vulnerable
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Retpolines, STIBP disabled, RSB filling, PBRSB-eIBRS Not affected
  Srbds:                 Vulnerable: No microcode
  Tsx async abort:       Not affected






Coral Install
# This was all done from root user

#First verify your machine has MSI-X by running this command

lspci -vv | grep MSI-X

#Also make sure secure boot is disabled if you have that option



apt update && apt upgrade -y

# Not needed, just makes copy and pasting cmds easier
apt install sudo -y

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 -

wget -O- https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/coral-edgetpu.gpg

apt update

sudo apt-get install gasket-dkms libedgetpu1-std -y

#likely not needed, but I was just being over cautious
reboot now


apt remove gasket-dkms -y

apt install git devscripts dh-dkms -y

cd /home

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

cd gasket-driver/

debuild -us -uc -tc -b

cd ..

apt install pve-headers -y

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

cd

apt update && apt upgrade -y

reboot now



# Verify the drivers are functioning properly

lspci -nn | grep 089a

ls /dev/apex_0



I hope this helps someone, if you have a question let me know, I am no expert, but I will try to help.
This is very helpfull. It worked. Thank you!!
 
Man, the nightmare continues for me. After following a bunch of guides and always coming to the same conclusion, ls: cannot access '/dev/apex_0': No such file or directory, I thought maybe finally your guide would of done it.

Unfortunately it says the same thing at the end.

Do you think my machine is not compatible or something? Currently on Linux pve 6.8.12-4-pve, the card gets recognized,
root@pve:~# lspci -nn | grep 089a
02:00.0 System peripheral [0880]: Global Unichip Corp. Coral Edge TPU [1ac1:089a], but always the same apex error.

I've learned a bunch of linux commands but your guide put them together to make sense so I appreciate that. Thanks.
 
Man, the nightmare continues for me. After following a bunch of guides and always coming to the same conclusion, ls: cannot access '/dev/apex_0': No such file or directory, I thought maybe finally your guide would of done it.

Unfortunately it says the same thing at the end.

Do you think my machine is not compatible or something? Currently on Linux pve 6.8.12-4-pve, the card gets recognized,
root@pve:~# lspci -nn | grep 089a
02:00.0 System peripheral [0880]: Global Unichip Corp. Coral Edge TPU [1ac1:089a], but always the same apex error.

I've learned a bunch of linux commands but your guide put them together to make sense so I appreciate that. Thanks.
I'm sorry to hear that. What is the output of lspci -vv | grep MSI-Xon your machine? If it returns nothing it means your machine does not support it. According to the official docs, your machine must support MSI-X. This was my first issue when doing this, I was using an ancient dell tower. You could possibly try the solution dlasher came up with as well if you haven't already.

Since I wrote that guide I have recently upgraded to a PowerEdge r630 that i got for $100, you can find them pretty much everywhere, and depending on what you are doing with your system, it is most likely overkill.
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!