F2-423 Using the M.2 slots for Coral AI

Discuss, seek assistance, and report issues related to hardware components, such as hardware platforms, memory, network ports, power supplies, UPS systems, and so on.
Locked
User avatar
DarthStroyer
Posts: 5
Joined: 17 May 2024, 16:33
Great Britain

F2-423 Using the M.2 slots for Coral AI

Post by DarthStroyer »

I'm looking to set up an NVR application on my NAS, probably Frigate, and would like to implement AI detection of people, cars, objects, etc. I'm not using the M.2 slots for SSDs, so I was hoping I could buy a Coral AI M.2 Accelerator and use that in one of the slots instead. However, all the documentation and references I can find suggests those slots are only for NVMe SSDs.

If I buy the Coral AI Accelerator and put it in one of those slots, will it work?
User avatar
crisisacting
Silver Member
Posts: 500
Joined: 20 Jan 2022, 16:42

Re: F2-423 Using the M.2 slots for Coral AI

Post by crisisacting »

Hopefully someone from their engineering team can provide a definite answer to this inquiry.

You should be able to install the Coral device (there's no way to hold it in place since those slots are designed for 80mm cards, so hopefully you find a way to retain it there) & as long as the Linux kernel that TOS is build off can detect it, it should be able to passthrough the existence of the hardware to Docker with some yaml modification.

Since a TNAS is just a low power ×86/64 PC, if TOS is not capable of doing the above, replace the base OS with frigate’s recommendation of bare metal Debian, install Docker, adjust yaml to have access to that Coral device.
User avatar
DarthStroyer
Posts: 5
Joined: 17 May 2024, 16:33
Great Britain

Re: F2-423 Using the M.2 slots for Coral AI

Post by DarthStroyer »

It looks like it may not be as simple as I'd hoped. The PCIe device shows up but kernel drivers aren't present so I don't get a `/dev/apex_0` file to pass to the docker container.

Code: Select all

$ lspci -v
...

03:00.0 Class 0880: Device 1ac1:089a (prog-if ff)
        Subsystem: Device 1ac1:089a
        Flags: fast devsel, IRQ 255
        Memory at 6000100000 (64-bit, prefetchable) [disabled] [size=16K]
        Memory at 6000000000 (64-bit, prefetchable) [disabled] [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
I'm not sure if there's a straightforward approach if I can't map the device in. It's a little outside my Docker comfort zone.
Locked

Return to “Hardware, Power and Accessories”