Hp T620 i PCI passtrough

Czesc. Mam terminal hp t620 (GX-415GA) i ostatnio uruchomiłem frigate z coral na usb. Problem w tym, ze udostępniając sam port usb do vm z ha frigate sypie błędami i się restartuje. Najlepiej byłoby przekierować cały kontroler usb poprzez pcie ale nie mogę sobie z tym poradzić, nie da się włączyć immou. Może ktoś korzysta z tego terminala i może pomoc ? A jeśli nie to jest jakiś inny sposób na naprawienie tych błędów ?
Na terminalu jest zainstalowany proxmox a w nim home assistant. Frigate działa jako dodatek w hassos.
Z góry dziekuje.

Trochę uprościłeś wypowiedź bo:

  • brak informacji co działa na terminalu, prawdopodobnie Proxmox?
  • brak informacji w jaki sposób jest uruchomiony Frigate? A sposobów jest sporo.

Pierwszy wynik wyszukiwania w Google pokazuje Google Coral USB + Frigate + PROXMOX - Third party integrations - Home Assistant Community.

Wybacz, już się poprawiam. Na terminalu jest proxmox, na nim vm z home assistant. Frigate uruchomione jako dodatek do ha. Coral zainstalowany na hoscie proxmoxa i udostępniony port usb.

Nadal zbyt ogólnie bo Frigate może być zainstalowany/uruchomiony jako dodatek HA na kilka sposób:

Nawet nie sprawdziłeś linka, która podałem wcześniej a tam wszystko jest dobrze opisane.

Sprawdziłem, na samym początku gdy miałem problemy z wykrywaniem przez frigate corala to szukałem i trafiłem na ten post, tyle ze nie uruchomiłem lxt a zainstalowałem corala na hoscie i w koncu ruszyło, tylko z problemami spowodowanymi prawdopodobnie udostępnieniem samego portu a nie kontrolera. Frigate testowałem dwa, zwykle frigate jak i full access. Na obu identyczny problem.

Wg mnie w ten sposób nie da rady ponieważ najpierw Coral USB musi być przekazany z Proxmoxa do VM z HA a potem jeszcze raz do Frigate, który jest uruchomiony w HA jako kolejny kontener dockera, za dużo tych kombinacji w przekazywaniu “wirtualnych” warstw sprzętu fizycznego. Dlatego w linku powyżej jest tworzony najpierw Docker z Frigate (na Proxmoxie) z Coral USB a uruchomiony dodatek Frigate w HA działa jako proxy do wcześniej uruchomionego Dockera w Proxmoxie, w ten sposób Proxmox zarządza sprzętem podłaczonym do komputera.

Ok, zatem sprobuje w ten sposób jeszcze raz. Tylko ostatnim razem jak to robiłem poległem na konfiguracji pliku od lxt. Jeśli w lsusb coral jest np na bus 004 to zmieniam tylko lxc.mount.entry: /dev:bus/usb/002 na 004 ? Tej linii nad nie ruszam ? (Mówię o tym poradniku, który podesłałeś)

Sorry ale nie wiem co masz na myśli a w ten sposób trudno pomagać, ryzyko niezrozumienia, pomyłek jest tak duże, że odpuszczam, proponuję umieszcać kody, wyniki poleceń itd.

Jeśli w lsusb mam taki wynik > “Bus 004 Device 003: ID 18d1:9302 Google Inc.”,
w “ls -al /dev/bus/usb/004/003” > “crw-rw-r-- 1 root plugdev 189, 386 Aug 15 09:22 /dev/bus/usb/004/003”
Config od lxc wpisałem w ten sposób :
“unprivileged: 1
lxc.cgroup.devices.allow: c 189:* rwm
lxc.apparmor.profile: unconfined
lxc.cgroup2.devices.allow: a
lxc.mount.entry: /dev/bus/usb/004/003 dev/bus/usb/004/003 none bind,optional,create=file
lxc.cap.drop:
lxc.mount.auto: cgroup:rw”
Czy tak jest okej, czy gdzieś coś jeszcze pochrzaniłem ?

Powinno być:

lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file 0, 0
lxc.mount.entry: /dev/bus/usb/004 dev/bus/usb/004 none bind,optional,create=dir 0, 0
lxc.cap.drop:

bo trzeba “You will need to pass the entire bus through” czyli musisz to zrobić to dla całej “bus” czyli w Twoim przypadku dla “/bus/usb/004/”, “003” musisz pominąć bo to jest końcowe urządzenie podłączone do USB.

Zakładam, że wpisałeś wszystko zgodnie z “everything below the “swap: 512”” - wszystko poniżej linii zawierającej wpis „swap: 512”.

P.S. Sorry za część słów w oryginale (po angielsku) bo tłumaczenie mi tego na polski nie przychodzi łatwo.

Ok, już prawie rozumiem. Później wytestuje. Za co odpowiada ta linia (prawdopodobnie za konkretna magistrale ale czy na każdej maszynie ona jest identyczna, czy musze jakoś zmodyfikować „renderD128” pod siebie ? I wybrać cgroup czy cgroup2?

Nigdzie nie jest to wyjaśnione.

Autor pisze: “Użyłem cgroup2. Może być konieczne użycie cgroup. Nie wiem, jak określić, która grupa kontrolna jest wymagana” czyli pozostaje sprawdzić dla jakiej grupy będzie działać.

Uważaj także na restarty bo wtedy może zmieniać się konfiguracja, przeczytaj:

Nie mam już sił. Robię wszystko dokładnie zgodnie z tym i innymi poradnikami, filmikami na yt i nic. Po wpisaniu lsusb na lxc coral jest widoczny ale frigate nie umie go odszukać.

Zakładam, że zrobiłeś wszystko zgodnie z tym punktem: Google Coral USB + Frigate + PROXMOX - Third party integrations - Home Assistant Community.
i dotarłeś do tego:


w celu weryfikacji czy Frigate widzi Google Coral?

Tak, coral jest ustawiony jako detektor w frigate. W logach otrzymuje komunikat, że nie może odnaleźć tpu corala.

[2022-08-15 16:25:24] frigate.edgetpu                ERROR   : No EdgeTPU was detected. If you do not have a Coral device yet, you must configure CPU detectors.
Process detector:coral:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 160, in load_delegate
    delegate = Delegate(library, options)
  File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 119, in __init__
    raise ValueError(capture.message)
ValueError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/usr/lib/python3.8/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/frigate/frigate/edgetpu.py", line 136, in run_detector
    object_detector = LocalObjectDetector(
  File "/opt/frigate/frigate/edgetpu.py", line 44, in __init__
    edge_tpu_delegate = load_delegate("libedgetpu.so.1.0", device_config)
  File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 162, in load_delegate
    raise ValueError('Failed to load delegate from {}\n{}'.format(
ValueError: Failed to load delegate from libedgetpu.so.1.0
[2022-08-15 16:25:28] frigate.watchdog               INFO    : Detection appears to have stopped. Exiting frigate...
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] done.