Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Unraid 7.0.0] USB Coral Edge TPU Initialization Issue in Scrypted Docker Container

Featured Replies

Hi Unraid Community,

 

TL;DR: USB Coral Edge TPU is detected on Unraid 7.0.0 but fails to initialize in the Scrypted Docker container (libedgetpu.so.1 error). Falls back to CPU inference. Tried USB passthrough, drivers, and privileged mode—still no luck. Any advice?

 

I recently updated my server to Unraid 7.0.0 (from 6.12.4) and am encountering issues with setting up a USB Coral Edge TPU for TensorFlow Lite Object Detection in the Scrypted Docker container. While the Coral TPU is detected by the host, it fails to initialize within the container, resulting in fallback to CPU inference.

 

System and Setup Details

 

Unraid Host:

  • Version: Unraid 7.0.0
  • Plugins Installed:
    • Coral Accelerator Module Drivers by ich777 not needed for USB based Coral TPUs

 

Relevant lsusb Output:

 

Bus 002 Device 010: ID 18d1:9302 Google Inc.

 

The Coral Edge TPU device is detected by the host.

 

Scrypted Docker Container:

  • Repository: koush/scrypted
  • Network Type: Custom br0 (Internal 10G NIC, IP: 192.168.1.212)
  • Volume Bindings:
    • /mnt/disks/Scrypted/ -> /Volumes/Scrypted/
    • /dev/bus/usb -> /dev/bus/usb
    • /dev/dri -> /dev/dri
  • Privileged Mode: Enabled

 

Error Details

 

Scrypted Container Logs:

 

unable to use Coral Edge TPU Failed to load delegate from libedgetpu.so.1
model: scrypted_yolov8n_320
/server/volume/plugins/@scrypted/tensorflow-lite/files/v14/scrypted_yolov8n_320/best_full_integer_quant.tflite /server/volume/plugins/@scrypted/tensorflow-lite/files/v14/scrypted_labels.txt
i Tensorflow Lite Object Detection loaded @scrypted/tensorflow-lite

 

and

 

Coral edge tpu library loaded successfully
edge tpus [{'type': 'usb', 'path': '/sys/bus/usb/devices/2-2'}]
unable to use Coral Edge TPU Failed to load delegate from libedgetpu.so.1

 

The Coral Edge TPU is detected (via /sys/bus/usb/devices/2-2), but the TensorFlow Lite Object Detection plugin fails to load the required delegate library libedgetpu.so.1.

 

Steps Taken

 

 

  1. Updated to Unraid 7.0.0 from 6.12.4.
  2. Installed the Coral Accelerator Module Drivers plugin by ich777. not needed for USB based Coral TPUs
  3. Verified USB passthrough setup:
  4. Mapped /dev/bus/usb and /dev/dri from the Unraid host to the container.
  5. Confirmed the Coral Edge TPU appears in the host's lsusb output.
  6. Enabled privileged mode for the Scrypted Docker container.
  7. Confirmed the Coral device is detected by TensorFlow Lite but fails to load the delegate library.

 

Questions

 

  1. Has anyone successfully set up a USB Coral Edge TPU with the Scrypted Docker container on Unraid?
    • Are there additional steps required for the USB version to work correctly?
  2. Is additional configuration needed to ensure the container can access the TPU’s delegate library (libedgetpu.so.1)?
  3. Are there compatibility concerns between TensorFlow Lite, the Coral Edge TPU runtime, and the Scrypted container?

 

 

Please see attached logs. Let me know if additional logs or details are required. Thank you for your time and help! Any guidance or advice would be greatly appreciated.

tower-diagnostics-20250117-2303.zip

Edited by ich777
clarify that Coral TPU is not needed for USB Based TPUs

I have USB Coral and am getting the same errors after updating to Unraid 7.0

- Failed to load delegate from libedgetpu.so.1.0

 

It was not being detected as being plugged in, "lsusb" wouldn't show it being plugged in

 

After unplugging a USB Bluetooth Dongle i had passthrough to a VM it seemed to show up and is now being detected by Frigate.

 

Not sure if that helps but took me a couple hours of troubleshooting to fix it

On 1/18/2025 at 7:06 AM, generalkenobi said:

Coral Accelerator Module Drivers by ich777

If you are using the USB version you don't need the plugin since the plugin is only for PCI based Coral modules.

 

On 1/18/2025 at 7:06 AM, generalkenobi said:

Repository: koush/scrypted

I would recommend that you create a post in the support thread from that container if there is any or create an Issue on GitHub, since this library is shipped with the Docker container and maybe needs to be updated.

  • 3 months later...

Hi has anyone had anyone made any progress with this? I am still unable to get Frigate to detect my USB Coral after upgrading to Unraid 7

  • 2 months later...
  • Author

topherino, your post caused me to take a look at this again.

Not sure if this will work for everyone, but I was able to get it working and no longer get the “Failed to load delegate from libedgetpu.so.1” errors. Here's what fixed it for me:

  1. Plug the Coral directly into a motherboard USB-C/USB-A port. Mine was on a front-panel hub. May not be the fix, but moving it off the hub eliminated one failure point.

  2. I needed to tell the kernel to keep the USB link awake. So, edit /boot/syslinux/syslinux.cfg and add these parameters to every append line you boot with:

    usbcore.quirks=1a6e:089a:k,18d1:9302:k usbcore.autosuspend=-1
    

    Those are the Coral’s pre- and post-firmware USB IDs corresponding to Global Unichip Corp and Google Inc.

    My /boot/syslinux/syslinux.cfg file in full reads:

    default menu.c32
    menu title Lime Technology, Inc.
    prompt 0
    timeout 50
    label Unraid OS
      menu default
      kernel /bzimage
      append initrd=/bzroot transparent_hugepage=never usbcore.quirks=1a6e:089a:k,18d1:9302:k usbcore.autosuspend=-1
    label Unraid OS GUI Mode
      kernel /bzimage
      append initrd=/bzroot,/bzroot-gui usbcore.quirks=1a6e:089a:k,18d1:9302:k usbcore.autosuspend=-1
    label Unraid OS Safe Mode (no plugins, no GUI)
      kernel /bzimage
      append initrd=/bzroot unraidsafemode
    label Unraid OS GUI Safe Mode (no plugins)
      kernel /bzimage
      append initrd=/bzroot,/bzroot-gui unraidsafemode
    label Memtest86+
      kernel /memtest
    


    Reboot. When I run:

    dmesg | grep -i 1a6e
    

    I can see confirmation that the kernel commands persisted.

  3. I switched to the plain koush/scrypted image (not :nvidia) and drop --runtime=nvidia.
    While my Coral was not working, I was running on an RTX 3090, but obviously this isn't needed with the Coral.

  4. Check inside Scrypted: I checked inside the TENSORFLOW LITE OBJECT DETECTION plugin. Hit "Restart Plugin" to generate logs, and I see the following:

    coral edge tpu library loaded successfully
    edge tpus [{'type': 'usb', 'path': '/sys/bus/usb/devices/2-5'}]
    model: scrypted_yolov9s_relu_sep_320
    Tensorflow Lite Object Detection: loaded @scrypted/tensorflow-lite
    Interpreter initialized on thread tflite_0
    

    The Scrypted docker container also shows this in the logs:

coral edge tpu library loaded successfully

Basically, I needed these syslinux quirks because without them the TPU seems to drop out, generating that "Failed to load delegate from libedgetpu.so.1" error.

Note that I am still on Unraid 7.0.0.

  • 1 month later...

Hi @generalkenobi and thank's, I was struggling a bit since I try to pass my NVidia GPU to the Scrypted container, dropping --runtime=nvidia was the key to make Scrypted my Coral TPU again !

So, it means that I have to choose between my GPU ou my Coral...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.