[SOLVED] Coral USB device, udev rules not correctly identifying

paulmorabi

Member
Mar 30, 2019
81
8
13
44
Hi,

I've built an ASRock X300 with AMD 4650g processor to run a couple of small VM's including Home Assistant and also Frigate (hence the need for the Coral USB). I've installed the latest Proxmox and gotten everything up and running except the Coral USB seems to be not identifying. lsusb reports:

Code:
Bus 003 Device 004: ID 1a6e:089a Global Unichip Corp.

I then installed the gasket-dkms and libedgetpu1-std as per the Coral instructions. This makes a udev rule:

cat /usr/lib/udev/rules.d/60-libedgetpu1-std.rules SUBSYSTEM=="usb",ATTRS{idVendor}=="1a6e",GROUP="plugdev" SUBSYSTEM=="usb",ATTRS{idVendor}=="18d1",GROUP="plugdev"

The problem is, the rule never seems to match the device. I've tried to hot plug, reboot etc. I also tried adding gasket to /etc/modules but also it didn't do anything. udev debug shows as follows:

May 31 14:52:48 littleman kernel: usb 3-2.2: New USB device found, idVendor=1a6e, idProduct=089a, bcdDevice= 1.00 May 31 14:52:48 littleman kernel: usb 3-2.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0 May 31 14:52:48 littleman systemd-udevd[432]: Validate module index May 31 14:52:48 littleman systemd-udevd[432]: Check if link configuration needs reloading. May 31 14:52:48 littleman systemd-udevd[432]: Successfully forked off 'n/a' as PID 3992. May 31 14:52:48 littleman systemd-udevd[432]: 3-2.2: Worker [3992] is forked for processing SEQNUM=3717. May 31 14:52:48 littleman systemd-udevd[432]: 3-2.2:1.0: Device (SEQNUM=3718, ACTION=add) is queued May 31 14:52:48 littleman systemd-udevd[432]: 3-2.2: Device (SEQNUM=3719, ACTION=bind) is queued May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: Processing device (SEQNUM=3717, ACTION=add) May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: IMPORT builtin 'usb_id' /usr/lib/udev/rules.d/50-udev-default.rules:13 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: IMPORT builtin 'hwdb' /usr/lib/udev/rules.d/50-udev-default.rules:13 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: MODE 0664 /usr/lib/udev/rules.d/50-udev-default.rules:45 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: GROUP 46 /usr/lib/udev/rules.d/60-libedgetpu1-std.rules:1 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: Handling device node '/dev/bus/usb/003/009', devnum=c189:264, mode=0664, uid=0, gid=46 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: Setting permissions /dev/bus/usb/003/009, 020664, uid=0, gid=46 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: Creating symlink '/dev/char/189:264' to '../bus/usb/003/009' May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: sd-device: Created db file '/run/udev/data/c189:264' for '/devices/pci0000:00/0000:00:08.1/0000:03:00.4/usb3/3-2/3-2.2' May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: Device (SEQNUM=3717, ACTION=add) processed May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: sd-device-monitor: Passed 517 byte to netlink monitor May 31 14:52:48 littleman systemd-udevd[432]: 3-2.2:1.0: sd-device-monitor: Passed 315 byte to netlink monitor May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2:1.0: Processing device (SEQNUM=3718, ACTION=add) May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2:1.0: IMPORT builtin 'hwdb' /usr/lib/udev/rules.d/50-udev-default.rules:14 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2:1.0: RUN 'kmod load $env{MODALIAS}' /usr/lib/udev/rules.d/80-drivers.rules:5 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2:1.0: sd-device: Created db file '/run/udev/data/+usb:3-2.2:1.0' for '/devices/pci0000:00/0000:00:08.1/0000:03:00.4/usb3/3-2/3-2.2/3-2.2:1.0' May 31 14:52:48 littleman systemd-udevd[3992]: Loading module: usb:v1A6Ep089Ad0100dc00dsc00dp00icFEisc01ip02in00 May 31 14:52:48 littleman systemd-udevd[3992]: Failed to find module 'usb:v1A6Ep089Ad0100dc00dsc00dp00icFEisc01ip02in00' May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2:1.0: Device (SEQNUM=3718, ACTION=add) processed May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2:1.0: sd-device-monitor: Passed 360 byte to netlink monitor May 31 14:52:48 littleman systemd-udevd[432]: 3-2.2: sd-device-monitor: Passed 308 byte to netlink monitor May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: Processing device (SEQNUM=3719, ACTION=bind) May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: IMPORT builtin 'usb_id' /usr/lib/udev/rules.d/50-udev-default.rules:13 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: IMPORT builtin 'hwdb' /usr/lib/udev/rules.d/50-udev-default.rules:13 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: GROUP 46 /usr/lib/udev/rules.d/60-libedgetpu1-std.rules:1 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: Handling device node '/dev/bus/usb/003/009', devnum=c189:264, mode=0660, uid=0, gid=46 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: Setting permissions /dev/bus/usb/003/009, 020660, uid=0, gid=46 May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: Preserve already existing symlink '/dev/char/189:264' to '../bus/usb/003/009' May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: sd-device: Created db file '/run/udev/data/c189:264' for '/devices/pci0000:00/0000:00:08.1/0000:03:00.4/usb3/3-2/3-2.2' May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: Device (SEQNUM=3719, ACTION=bind) processed May 31 14:52:48 littleman systemd-udevd[3992]: 3-2.2: sd-device-monitor: Passed 529 byte to netlink monitor

I don't fully understand the above but also can't see any obvious errors. Either way, lsusb keeps reporting the same device ID which means it's not working. Is there any ideas for how to correct or further debug this?

(My plan is to pass this through to an LXC running Debian & docker to run Frigate and then use the Renior integrated graphics also for processing the video streams. I've already installed kernel 5.11 and am getting ffmpeg errors from passing through /dev/dri but that's secondary to trying to get the above working).

Any help would be really appreciated!
 
Last edited:
Managed to somehow get this working by loading an application that needs the TPU. This must trigger the library and the udev rule kicks in. Then you need to pass the new device also to the LXC container.

I'm not sure how this will work after a reboot but I'll give it a try.
 
Did you get this working.. I am trying to do the same and I having the same issues with both the Coral/ USB and /dev/dri.
For me the Coral works on the Proxmox Host, but I am having issues passing the USB to the LXC container.

I can see the USB port in the LXI container (/dev/bus/usb/002/004) but coral fails with the "ValueError: Failed to load delegate from libedgetpu.so.1" error
 
Did you get this working.. I am trying to do the same and I having the same issues with both the Coral/ USB and /dev/dri.
For me the Coral works on the Proxmox Host, but I am having issues passing the USB to the LXC container.

I can see the USB port in the LXI container (/dev/bus/usb/002/004) but coral fails with the "ValueError: Failed to load delegate from libedgetpu.so.1" error

Yep I did manage to get it working. What are you passing through to the container? It should be the devices that map to the Genesys Logic and also the Google Inc. device.
 
Managed to somehow get this working by loading an application that needs the TPU. This must trigger the library and the udev rule kicks in. Then you need to pass the new device also to the LXC container.

I'm not sure how this will work after a reboot but I'll give it a try.
Thanks for this - what was the app you used to trigger the TPU? I have a system that worked well up until a power outage and now the TPU just shows up in lsusb as Global Chipset Corp. I can't seem to activate it to switch to Google and the correct address...
 
Thanks for this - what was the app you used to trigger the TPU? I have a system that worked well up until a power outage and now the TPU just shows up in lsusb as Global Chipset Corp. I can't seem to activate it to switch to Google and the correct address...

I used Frigate and ran it in a LXC container via docker. Make sure to pass through the right devices also.
 

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!