L'enfer Frigate

Depuis que je suis passé sur une VM je ne captequasiment plus rien…

J’ai 3 façons de détecter :
Frigate
Par la cam qui enegistre en ftp
Par Surveillance station de synology

Et bien le meilleur c’est …

Aucun … (petite avance pour surveillance station). J’ai plus de faux positif mais plein de ratés.
Heureusement que Sureillance station enregistre en permanance…

La cam en ftp et frigate la nuit rien à faire pas de détection de mouvement …

Fanchement je ne sais plus quoi penser…

Et avant ça fonctionnait bien et cela sans rien changer à ta config ? c’est étrange ça. je ne vois pas pourquoi ce serait moins efficace dans une VM. j’avoue qu’habitant dans un quartier composé principalement de culs-de-sacs le passage est principalement lié aux gens du quartier, je n’ai pratiquement aucunes détections la nuit. je vais activer la détection de chats pour voir car ça ici, on en a une tripotée :smiley:

Vraiment bizarre. Aucun soucis de détection la nuit … personne ou chat…
image

Tu as des filtres sur tes caméras ? genre anti-flicker ?

Salut,
c’est vrai que comme c’est pas ma conf, je n’ai rien mis là dessus. Par contre, pendant mes recherches j’étais tombé sur pas mal de trucs aussi sur le TPU en PCI. Si tu veux, je peux essayer de les re-collecter et les synthétiser.
L’essentiel est surtout au niveau de la conf du LXC et du docker, car ensuite Frigate ne fera que détecter le lien vers le TPU, s’il existe.
Mais comme je n’aurai rien pour tester, pas sûr que j’aboutisse à une suite d’instructions qui marche.

De ton coté, est ce que tu es parvenu à le faire marcher finalement?
Au démarrage de frigate, tu vois bien un message du genre « TPU detected » ?

Si tu es à l’aise avec l’anglais, il y a pas mal de chose sur les install PCI dans :
Discussion Frigate on LXC

Merci pour ta réponse,
J’ai deja bien oeuvré au niveau LXC je réussis à monter mon coral pci dessu mais frigate ne le reconnait pas.

C’est gentil de m’aider.

Pour le moment mon frigate n’est pas fonctionnel je ne comprend pas pourquoi. Je lis et relis la doc et je suis tombé la dessus :

En lisant je trouve ca interessant mais je ne suis pas arrivé à totalement le mettre ne place. J’ai une error que je ne comprend pas.

Frigate c’est un LXC où tourne Docker c’est bien ça ? Tu peux nous indiquer ce que tu passes comme paramètre concernant le device ? J’ai aussi un Coral en PCI-E, j’ai réussi à le configurer sur deux environnement différents, donc c’est fonctionnel sur un LXC (Alpine) où Docker tourne.

Je partage mon docker compose pour mon Frigate:

version: "3.9"
services:
  frigate:
    container_name: frigate
    privileged: true # this may not be necessary for all setups
    restart: unless-stopped
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "64mb" # update for your cameras based on calculation above
    devices:
      - /dev/apex_0:/dev/apex_0 # passes a PCIe Coral, follow driver instructions here https://coral.ai/docs/m2/get-started/#2a-on-linux
    volumes:
      - ./:/config/
      - nfs-frigate:/media/frigate
      - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "5000:5000"
      - "8554:8554" # RTSP feeds
      - "8555:8555/tcp" # WebRTC over tcp
      - "8555:8555/udp" # WebRTC over udp
    environment:
      - TZ=Europe/Paris
      - FRIGATE_RTSP_PASSWORD="xxxxxxxxxxxxxxxxxxxxxx"
volumes:  ## Définition des volumes déclarés ci-dessus
  nfs-frigate: ## Le nom de mon volume en montage NFS
    driver: local
    driver_opts: ## Définition des options du montage
      type: nfs ## Choix du type de montage
      o: addr=xxx.xxx.xxx.xxx,nolock,soft,rw ## Indication de l'adresse IP du stockage et des options d'accès
      device: :/volume1/homeassistant/frigate  ## Indication du chemin du montage sur le stockage
1 « J'aime »

J’ai la même config sous docker et malgré tout frigate ne trouve pas le coral alors que sous debian ( dans le lxc) il apparait bien.

Pour la partie usb il faut mapper le port sous le contenair lxc. En plus de la ligne sous docker compose.
Comme décris dans cette article.

Il doit y avoir sans doute la même chose a faire pour le port pcie interne non?

Peux tu mettre le fichier de conf de ton lxc?
Sur ton node, ca doit être dans etc/pve/lxc un fichier genre 101.conf ou 102.conf (avec le numéro de ton lxc).
Ca peut être une histoire de droit qu’il faut aller ecrire à la main dans ce fichier (le fait que la carte pci apparaisse dans les ressources de ta console proxmox peut ne pas être suffisant).

Je suppose que tu as installé les drivers Coral en pci:

1 « J'aime »

Oui les drivers sont bien installé

arch: amd64
cores: 2
features: nesting=1
hostname: Frigate
memory: 4096
net0: name=eth0,bridge=vmbr0,firewall=1,hwaddr=BC:24:11:C8:FB:E3,ip=dhcp,ip6=dhcp,type=veth
onboot: 1
ostype: debian
rootfs: HP250:vm-103-disk-0,size=8G
swap: 512
unprivileged: 0
lxc.cgroup2.devices.allow: a
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file 0, 0
lxc.mount.entry: /dev/apex_0 dev/apex_0 none bind,optional,create=file 0, 0
lxc.cap.drop:
lxc.mount.auto: cgroup:rw

Il en manque un bon bout dans ta config:

features: nesting=1
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.cgroup2.devices.allow: c 189:* rwm

C’est ça qui « donne » la clé coral au LXC… Le renderD128 c’est un driver pour ffmpeg.
Les numéros 226… ce sont les majeurs et mineurs du device créé par Linux.

Clé USB ou PCI, à la fin, ça fait un device sur Linux. C’est l’identité de ce device qu’il faut faire passer.

Vu que, si j’ai suivi, tu utilises un PCI, il est fort probable que les numéros soient différents.

Ouij’ai rajouté car mon conf est modifier pour plusieurs essaie.
C’est vrais que c’est pas le même numero j’aipas pensé à le changer

Comment je trouve ce numéro ? Je cherche Mais …

Pas obligatoire d’ajouter tous les

lxc.cgroup2.devices.allow:

Il suffit juste sur ton noeud Proxmox, d’effectuer un

ls -al /dev/apex_0
crw-rw---- 1 root apex 120, 0 Jan  6 08:54 /dev/apex_0

qui va te retourner deux numéro (XXX, X) après apex; ensuite dans le fichier .conf du LXC, ajouter seulement ceci:

lxc.cgroup2.devices.allow: c XXX:X rwm

ça sera entièrement suffisant, le reste des lxc.cgroup2.devices.allow n’est pas nécessaire puisque c’est uniquement pour faire du GPU passthrough

Purée ca marche !!
Mais du coup en faite il faut installer le coral sur le noeud proxmox et sur le lxc.

Merci bcp !!

Je ne sais pas ce qu’installer veut dire ici.
Proxmox, c’est l’OS (en fait un debian amélioré), c’est lui qui « voit » tous les périphériques du système, qui sous linux sont vus comme des devices.
Ensuite, il faut dire à proxmox de présenter ce device à LXC (la ligne cgroup2). Et ensuite dans LXC, tu l’utilises.

C’est très « logique » quand on connait le fonctionnement de linux :wink:

En fait, il faut installer la partie pilote « driver » sur le noeud Proxmox et mettre la bonne conf pour le LXC (voir plus haut), mais dans le LXC il n’y a rien à faire (pas d’installation de pilote).

Ok je vais recommencer mon lxc depuis le debut car ca ne fonctionne plus . Maintenantr que j’ai toutes les infos ca devrait le faire . Je vous tiens au courant.