Google Coral USB + Frigate + PROXMOX

ok, but when I go to “lsusb” after each restart it is assigned somewhere else. once 003, once 004, once 002. Different after each restart

ok, but when I go to “lsusb” after each restart it is assigned somewhere else. once 003, once 004, once 002. Different after each restart

Hello,

I’m currently troubleshooting the Coral USB on two different devices, essentially starting fresh on both. However, I’m encountering an issue where it remains identified as Global Unichip Corp. rather than transitioning to Google Inc.

Here’s the breakdown of the systems:

  1. Computer 1 - Intel i7 4790 running Proxmox 8.1.3
  2. Computer 2 - Intel i7 4470k running Proxmox 8.1.3
  3. Computer 3 - Intel i7 10800u running Windows 11 (Laptop)

Here are the steps I’ve taken:

Computer 1:

  • Installed the Coral drivers, re-plugged the device, rebooted the system, and even attempted running a LXC container with the tteck script. Despite these efforts, the state remains unchanged.

Computer 2:

  • Installed the Coral USB drivers prior to plugging in the TPU, re-plugged the device, and rebooted the system. However, it’s still detected as Global Unichip Corp.

Bus 004 Device 002: ID 1a6e:089a Global Unichip Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 9
idVendor 0x1a6e Global Unichip Corp.
idProduct 0x089a
bcdDevice 1.00
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x001b
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 896mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 254 Application Specific Interface
bInterfaceSubClass 1 Device Firmware Update
bInterfaceProtocol 2
iInterface 0
Device Firmware Upgrade Interface Descriptor:
bLength 9
bDescriptorType 33
bmAttributes 7
Will Not Detach
Manifestation Tolerant
Upload Supported
Download Supported
wDetachTimeout 1000 milliseconds
wTransferSize 256 bytes
bcdDFUVersion 1.01
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 0x0016
bNumDeviceCaps 2
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000006
BESL Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000c
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 2
Lowest fully-functional device speed is High Speed (480Mbps)
bU1DevExitLat 10 micro seconds
bU2DevExitLat 2047 micro seconds
Device Status: 0x000c
(Bus Powered)
U1 Enabled
U2 Enabled

Computer 3:

  • Interestingly, when I used the same Coral USB on a Windows environment, after installing the drivers, it successfully transitions to Google Inc.

I’m puzzled by the discrepancy between Computer 3 and the others. Any insights or suggestions would be greatly appreciated.

I’m not sure, I had my usb coral working in proxmox for a months in a proxmox VM and I know it sait Google inc. I put in new hardware a few weeks ago, rebuilt things a bit, moved from a separate frigate VM to just using the add-in. When I went to map the coral over I get the same thing, Global Unichip. It works fine for me, so I kind of ignored the change.

Dear all,

this is just to summarize my experience with Coral + Proxmox + HA guest on my rather old Xeon/Intel system.

I spend several hours (around 10) to get the setup working. Despite the common tips and tricks and around 10 different parameters and factors that I tried (boot parameters about iommu, vfio-pci, pcie_aspm, several bios options for PCIE gen1/2/3 and apsm power management) I found a root cause in much simpler things:

The root cause for the device not working properly (it was always detected, but did give errors on memory timeout etc.) was physical:

  1. I had chosen the wrong PCI slot – one seems to only support Gen2, whereas Gen3 was needed due to MSI-X support that needs to be enabled. My mainboard is an Supermicro X10SLM-F and I needed to use the “big slot”.
  2. I had bought a cheap “riser card” from AliE, which was basically a ribbon cable attached to two plugs/sockets. It seems this changed the timing of the card quite a bit, so it did not run stable at all. Even when I had changed 1, the device worked for about 5 minutes and then stopped service.
    I have now bought a good quality riser cable, which seems to be rock solid (very short cable) for 11 euro at Amazon. It works for a day now without flaw.

My configuration is:

boot options in /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="pcie_aspm=off vfio-pci.ids=1ac1:089a"

Modprobe Options

# cat blacklist-apex.conf 
					
blacklist gasket
blacklist apex
options vfio-pci ids=1ac1:089a

The device used to be on 04:00 and switched to 01:00 when I changed slots. I have mapped the PCI device within promox and I run HA OS within the VM.
In some configurations I had very weird effects: The system was very very very slow (boot time of 5 minutes) and sometimes froze. I have no idea what caused it (kernel params pcie_aspm and iommu possibly), but it went away when changing parameters and pci slots.

My Bios is back on defaults (Gen3 for all PCI).

I have not changed boot options or alike within the HA OS guest.

Versions:

Host:

Linux host 6.8.8-2-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.8-2 (2024-06-24T09:00Z) x86_64 GNU/Linux
pve-manager/8.2.4/faa83925c9641325 (running kernel: 6.8.8-2-pve)

Guest:

HA OS 12.4
Linux core-ssh 6.6.33-haos #1 SMP PREEMPT_DYNAMIC Tue Jun 18 13:51:59 UTC 2024 x86_64 Linux

lspci on proxmox:

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06) (prog-if 00 [Normal decode])
        Subsystem: Super Micro Computer Inc Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 25
        IOMMU group: 1
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        I/O behind bridge: f000-0fff [disabled] [16-bit]
        Memory behind bridge: fff00000-000fffff [disabled] [32-bit]
        Prefetchable memory behind bridge: f7d00000-f7efffff [size=2M] [32-bit]
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
        BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16+ MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: [88] Subsystem: Super Micro Computer Inc Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller
        Capabilities: [80] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
                Address: fee00218  Data: 0000
        Capabilities: [a0] Express (v2) Root Port (Slot+), MSI 00
                DevCap: MaxPayload 256 bytes, PhantFunc 0
                        ExtTag- RBE+
                DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 256 bytes, MaxReadReq 128 bytes
                DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
                LnkCap: Port #2, Speed 8GT/s, Width x8, ASPM L0s L1, Exit Latency L0s <1us, L1 <8us
                        ClockPM- Surprise- LLActRep- BwNot+ ASPMOptComp+
                LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 5GT/s, Width x1
                        TrErr- Train- SlotClk+ DLActive- BWMgmt+ ABWMgmt+
                SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
                        Slot #1, PowerLimit 75W; Interlock- NoCompl+
                SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
                        Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
                SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
                        Changed: MRL- PresDet+ LinkState-
                RootCap: CRSVisible-
                RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
                RootSta: PME ReqID 0000, PMEStatus- PMEPending-
                DevCap2: Completion Timeout: Not Supported, TimeoutDis- NROPrPrP- LTR+
                         10BitTagComp- 10BitTagReq- OBFF Via WAKE#, ExtFmt- EETLPPrefix-
                         EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                         FRS- LN System CLS Not Supported, TPHComp- ExtTPHComp- ARIFwd-
                         AtomicOpsCap: Routing- 32bit+ 64bit+ 128bitCAS+
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Via WAKE#, ARIFwd-
                         AtomicOpsCtl: ReqEn- EgressBlck-
                LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink- Retimer- 2Retimers- DRS-
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
                         EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
                         Retimer- 2Retimers- CrosslinkRes: unsupported
        Capabilities: [100 v1] Virtual Channel
                Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
                Arb:    Fixed- WRR32- WRR64- WRR128-
                Ctrl:   ArbSelect=Fixed
                Status: InProgress-
                VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
                        Arb:    Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
                        Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
                        Status: NegoPending- InProgress-
        Capabilities: [140 v1] Root Complex Link
                Desc:   PortNumber=02 ComponentID=01 EltType=Config
                Link0:  Desc:   TargetPort=00 TargetComponent=01 AssocRCRB- LinkType=MemMapped LinkValid+
                        Addr:   00000000fed19000
        Capabilities: [d94 v1] Secondary PCI Express
                LnkCtl3: LnkEquIntrruptEn- PerformEqu-
                LaneErrStat: 0
        Kernel driver in use: pcieport

boot messages for pcie 01:00


# dmesg|grep 01:00
[    0.391382] pci 0000:01:00.0: [1ac1:089a] type 00 class 0x0000ff PCIe Endpoint
[    0.391512] pci 0000:01:00.0: BAR 0 [mem 0xf7e00000-0xf7e03fff 64bit pref]
[    0.391613] pci 0000:01:00.0: BAR 2 [mem 0xf7d00000-0xf7dfffff 64bit pref]
[    0.719764] pci 0000:01:00.0: Adding to iommu group 1
[    4.570260] ipmi_si IPI0001:00: ipmi_platform: probing via ACPI
[    4.588765] ipmi_si IPI0001:00: ipmi_platform: [io  0x0ca2] regsize 1 spacing 1 irq 0
[    4.624750] ipmi_si IPI0001:00: The BMC does not support clearing the recv irq bit, compensating, but the BMC needs to be fixed.
[    4.661791] ipmi_si IPI0001:00: IPMI message handler: Found new BMC (man_id: 0x002a7c, prod_id: 0x0811, dev_id: 0x20)
[    4.719680] ipmi_si IPI0001:00: IPMI kcs interface initialized

works like a charm, many thanks