Frigate: Skirtumas tarp puslapio versijų
20 eilutė: | 20 eilutė: | ||
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)" | bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)" | ||
Sekame instrukcijas diegimo metu... | Sekame instrukcijas diegimo metu... | ||
+ | |||
+ | === Įdiegiame MQTT brokerį kaip LXC konteinerį === | ||
+ | |||
+ | * Prisijungiame prie proxmox valdymo panelio https://ip:8006/ | ||
+ | * Einame į Datacenter > PVE > Shell | ||
+ | Rašome: | ||
+ | bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/ct/mqtt.sh)" | ||
+ | Sekame instrukcijas diegimo metu... | ||
+ | |||
+ | Diegimui pasibaigus pasijungiame per proxmox konsolę prie mqtt lxc konteinerio ir pakeičiame failo '''/etc/mosquitto/conf.d/default.conf''' turinį į | ||
+ | listener 1883 | ||
+ | allow_anonymous true | ||
+ | listener 9001 | ||
+ | protocol websockets | ||
+ | socket_domain ipv4 | ||
+ | |||
+ | === Įdiegiame Home Assistant OS === | ||
+ | |||
+ | * Prisijungiame prie proxmox valdymo panelio https://ip:8006/ | ||
+ | * Einame į Datacenter > PVE > Shell | ||
+ | Rašome: | ||
+ | bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)" | ||
+ | |||
+ | === Įdiegiame Home Assistant Frigate pluginą === | ||
+ | |||
+ | Einame į Home Assistant > Settings > Add-ons > ADD-ON STORE > Spaudžiame viršutiniame dešiniame kampe tris taškus ir pasirenkame Repositories, pridedame repozitorių: | ||
+ | https://github.com/blakeblackshear/frigate-hass-addons | ||
+ | Atnaujiname repozitorius ir spaudžiame įdiegti Frigate plugin'ą. | ||
=== Įgaliname Intel iGPU Passthrough === | === Įgaliname Intel iGPU Passthrough === | ||
61 eilutė: | 89 eilutė: | ||
Po reboot žiūrime ar pavyko: | Po reboot žiūrime ar pavyko: | ||
ls -lsah /dev/dri | ls -lsah /dev/dri | ||
− | Turime matyti | + | Turime matyti: |
+ | |||
[[Vaizdas:7660a1d4-bd8e-11ec-a58e-3f9f3e6c485d.jpg]] | [[Vaizdas:7660a1d4-bd8e-11ec-a58e-3f9f3e6c485d.jpg]] | ||
− | + | [https://3os.org/infrastructure/proxmox/gpu-passthrough/igpu-split-passthrough/#proxmox-configuration-for-gvt-g-split-passthrough Daugiau informacijos] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Frigate konfigūracija === | === Frigate konfigūracija === | ||
100 eilutė: | 104 eilutė: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | === Jeigu coral neatpažystamas sistemos === | ||
+ | |||
+ | Jeigu '''lsusb''' komanda rodo: | ||
+ | 1a6e:089a Global Unichip Corp. | ||
+ | Reikia įgalinti įrenginio atpažinimą [[udev]] taisyklėmis arba pasinaudoti '''df-util''' | ||
+ | apt install df-util | ||
+ | wget https://github.com/google-coral/libedgetpu/raw/efb73cc94dac29dc590a243109d4654c223e008c/driver/usb/apex_latest_single_ep.bin | ||
+ | dfu-util -D apex_latest_single_ep.bin -d 1a6e:089a -R | ||
+ | Kad kiekvieną sistemos startavimo kartą suveiktų šis pakeitimas reiktų jį įrašyti į '''/etc/rc.local''' failą | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | #!/bin/sh | ||
+ | dfu-util -D apex_latest_single_ep.bin -d 1a6e:089a -R | ||
+ | exit 0 | ||
+ | </syntaxhighlight> | ||
+ | Taip pat suteikiame šiam scriptui paleidimo teises | ||
+ | chmod +x /etc/rc.local | ||
+ | Dabar sistemos perkrovimo metu įrenginys bus atpažystamas teisingai. | ||
+ | |||
+ | [https://williamlam.com/2023/05/google-coral-usb-edge-tpu-accelerator-on-esxi.html Daugiau info] | ||
== Ubuntu 22.04.4 LTS + Frigate Docker (ThinkCentre M920q) == | == Ubuntu 22.04.4 LTS + Frigate Docker (ThinkCentre M920q) == |
21:40, 8 birželio 2024 versija
Proxmox + HassOS (Home Assistant) + Frigate (Intel NUC6CAYH)
Pigiausias (low budget) setupas, nors cpu apkrovos jaučiasi, bet puikiai veikia su 4-6 kameromis. Diegime tuo pačiu ir Home Assistant, kuris naudojamas išmaniųjų namų automatikoje. Frigate diegiamas kaip plugin (papildinys) Home Assistant'ui
Reikalinga:
- Nuc6cayh Intel NUC'as
- Coral Accelerator Coral USB AI akseleratorius, plačiau apie jį čia.
- Proxmox diegimo usb flash diskas.
Sudiegiame proxmox
FIXME
|
Kai sudiegiame proxmox..
- Prisijungiame prie proxmox valdymo panelio https://ip:8006/
- Einame į Datacenter > PVE > Shell
Rašome:
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)"
Sekame instrukcijas diegimo metu...
Įdiegiame MQTT brokerį kaip LXC konteinerį
- Prisijungiame prie proxmox valdymo panelio https://ip:8006/
- Einame į Datacenter > PVE > Shell
Rašome:
bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/ct/mqtt.sh)"
Sekame instrukcijas diegimo metu...
Diegimui pasibaigus pasijungiame per proxmox konsolę prie mqtt lxc konteinerio ir pakeičiame failo /etc/mosquitto/conf.d/default.conf turinį į
listener 1883 allow_anonymous true listener 9001 protocol websockets socket_domain ipv4
Įdiegiame Home Assistant OS
- Prisijungiame prie proxmox valdymo panelio https://ip:8006/
- Einame į Datacenter > PVE > Shell
Rašome:
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)"
Įdiegiame Home Assistant Frigate pluginą
Einame į Home Assistant > Settings > Add-ons > ADD-ON STORE > Spaudžiame viršutiniame dešiniame kampe tris taškus ir pasirenkame Repositories, pridedame repozitorių:
https://github.com/blakeblackshear/frigate-hass-addons
Atnaujiname repozitorius ir spaudžiame įdiegti Frigate plugin'ą.
Įgaliname Intel iGPU Passthrough
/etc/default/grub pakeisti tik vieną eilutę
GRUB_CMDLINE_LINUX_DEFAULT="quiet quiet intel_iommu=on i915.enable_gvt=1 iommu=pt pcie_acs_override=downstream,multifunction video=efifb:off video=vesa:off vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu"
Paleidžiame:
update-grub
Paredaguojame failą /etc/modules ten įrašydami:
# Modules required for PCI passthrough vfio vfio_iommu_type1 vfio_pci vfio_virqfd # Modules required for Intel GVT-g Split kvmgt
Paleidžiame:
update-initramfs -u -k all reboot
Tikriname dmesg komanda ir ieškome eilutės
dmesg | grep -e DMAR -e IOMMU [0.067203] DMAR: IOMMU enabled
GPU Passthrough įgalinimas Home Assistant OS virtualioje mašinoje
Nustatymai turi atrodyti maždaug taip
Po reboot žiūrime ar pavyko:
ls -lsah /dev/dri
Turime matyti:
Frigate konfigūracija
Kad patogiau būtų redaguoti konfigūracijos failą, įdiegiame Home Assistant pluginą File Editor per Settings > Add-ons > ADD-ON STORE įdiegus pluginą pasidarome Show in sidebar. Paspaudę ant šio sidebar meniu punkto nunaviguojame ir sukuriame failą frigate.yml direktorijoje homeassistant/
Failo turinys:
Jeigu coral neatpažystamas sistemos
Jeigu lsusb komanda rodo:
1a6e:089a Global Unichip Corp.
Reikia įgalinti įrenginio atpažinimą udev taisyklėmis arba pasinaudoti df-util
apt install df-util wget https://github.com/google-coral/libedgetpu/raw/efb73cc94dac29dc590a243109d4654c223e008c/driver/usb/apex_latest_single_ep.bin dfu-util -D apex_latest_single_ep.bin -d 1a6e:089a -R
Kad kiekvieną sistemos startavimo kartą suveiktų šis pakeitimas reiktų jį įrašyti į /etc/rc.local failą
#!/bin/sh
dfu-util -D apex_latest_single_ep.bin -d 1a6e:089a -R
exit 0
Taip pat suteikiame šiam scriptui paleidimo teises
chmod +x /etc/rc.local
Dabar sistemos perkrovimo metu įrenginys bus atpažystamas teisingai.
Ubuntu 22.04.4 LTS + Frigate Docker (ThinkCentre M920q)
Reikalinga:
- ThinkCentre M920q
- Coral Accelerator Coral USB AI akseleratorius, plačiau apie jį čia.
docker-compose.yml
version: "3.9"
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:stable
restart: always
privileged: true
shm_size: "256mb"
ports:
- "1935:1935"
- "5000:5000"
devices:
- /dev/bus/usb:/dev/bus/usb
- /dev/dri:/dev/dri
volumes:
- /etc/localtime:/etc/localtime:ro
- /srv/dockers/frigate/conf/config.yml:/config/config.yml:ro
- /srv/dockers/frigate/data:/media/frigate
- /srv/dockers/frigate/db:/db
- type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
target: /tmp/cache
tmpfs:
size: 1000000000
# ports:
# - '5000:5000'
environment:
- FRIGATE_RTSP_PASSWORD=123456
networks:
- traefik
restart: unless-stopped
labels:
- traefik.enable=true
- traefik.docker.network=traefik
- "traefik.http.routers.frigate.rule=Host(`frigate.domenas.lt`)"
- "traefik.http.services.frigate.loadbalancer.server.port=5000"
# resources limit
mem_limit: 6G
cpus: 3.0
cap_add:
- CAP_PERFMON
networks:
traefik:
external: true
frigate.yml
detectors:
# cpu1:
# type: cpu
# cpu2:
# type: cpu
coral:
type: edgetpu
device: usb
num_threads: 3
database:
path: /db/frigate.db
ffmpeg:
hwaccel_args: preset-vaapi
output_args:
record: -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c:v copy -c:a aac
logger:
# Optional: default log level (default: shown below)
default: info
# Optional: module by module log level configuration
logs:
frigate.mqtt: warning
frigate.ffmpeg: debug
mqtt:
host: 192.168.1.1
topic_prefix: frigate
client_id: frigate
stats_interval: 60
rtmp:
enabled: false
birdseye:
enabled: false
detect:
enabled: True
max_disappeared: 50
width: 640
height: 360
fps: 5
record:
enabled: True
retain:
days: 14
mode: motion
events:
pre_capture: 10
post_capture: 5
objects:
- person
- car
- bicycle
- motorcycle
- bus
- dog
- truck
required_zones: []
retain:
default: 3650
mode: active_objects
snapshots:
enabled: True
timestamp: True
bounding_box: True
crop: False
height: 1000
retain:
default: 3650
objects:
track:
- person
- car
- cat
- dog
- bicycle
- truck
- motorcycle
- bus
- horse
- sheep
- cow
- bear
- umbrella
- handbag
- suitcase
- bottle
- apple
- cell phone
filters:
person:
min_score: 0.5
threshold: 0.7
car:
threshold: 0.70
truck:
threshold: 0.70
cameras:
Cam1:
ffmpeg:
hwaccel_args: preset-intel-qsv-h264
input_args: -avoid_negative_ts auto -fflags nobuffer+genpts+discardcorrupt -flags low_delay -rtsp_transport tcp -use_wallclock_as_timestamps 1 -timeout 2000000
inputs:
- path: rtsp://admin:admin@192.168.1.10/0/av1 # h264 MPEG-4 AVC (h264) 640x352
roles:
- detect
- path: rtsp://admin:admin@192.168.1.10/0/av0 # h264 MPEG-4 AVC (h264 1920x1080
roles:
- record
detect:
width: 640
height: 352
fps: 5
objects:
track:
- person
- cat
- dog
- truck
mqtt:
height: 1080
crop: False
timestamp_style:
position: "bl"
format: "%H:%M:%S"
color:
red: 255
green: 255
blue: 255
thickness: 5
effect: "shadow"