Gu铆a Completa: Google Coral USB en LXC Proxmox para Frigate
Requisitos Previos
- Proxmox VE instalado
- Google Coral USB conectada al servidor
- LXC privilegiado con Debian 11/12
- Acceso root al host Proxmox
PARTE 1: Configuraci贸n en Proxmox (Host)
1.1 Identificar el dispositivo USB Coral
Desde el shell de Proxmox, ejecuta:
lsusb
Busca una l铆nea similar a:
Bus 002 Device 002: ID 1a6e:089a Global Unichip Corp.
o
Bus 002 Device 002: ID 18d1:9302 Google Inc.
Anota el n煤mero del Bus (en este ejemplo: 002)
Tambi茅n verifica que existe el dispositivo:
ls -la /dev/bus/usb/002/
1.2 Crear reglas udev (Opcional pero recomendado)
Crea el archivo de reglas:
nano /etc/udev/rules.d/71-edgetpu.rules
A帽ade estas l铆neas:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a6e", ATTRS{idProduct}=="089a", MODE="0660", GROUP="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="9302", MODE="0660", GROUP="plugdev"
Aplica las reglas:
udevadm control --reload-rules && udevadm trigger
PARTE 2: Configuraci贸n del LXC
2.1 Detener el contenedor
pct stop <ID_DEL_LXC>
Ejemplo:
pct stop 105
2.2 Editar configuraci贸n del LXC
nano /etc/pve/lxc/<ID_DEL_LXC>.conf
A帽ade estas l铆neas al final del archivo:
lxc.cgroup2.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/bus/usb dev/bus/usb none bind,create=dir
Nota: Si ya existe lxc.cgroup2.devices.allow: c 189:* rwm, no la dupliques.
2.3 Iniciar el contenedor
pct start <ID_DEL_LXC>
PARTE 3: Verificaci贸n dentro del LXC
3.1 Entrar al contenedor
pct enter <ID_DEL_LXC>
3.2 Instalar utilidades USB
apt update
apt install usbutils -y
3.3 Verificar que la Coral es visible
lsusb
Deber铆as ver:
Bus 002 Device 002: ID 1a6e:089a Global Unichip Corp.
Verifica el directorio:
ls -la /dev/bus/usb/
ls -la /dev/bus/usb/002/
PARTE 4: Configuraci贸n de Frigate con Docker
4.1 Estructura de directorios recomendada
mkdir -p /opt/frigate/config
mkdir -p /opt/frigate/media
cd /opt/frigate
4.2 Crear docker-compose.yml
nano docker-compose.yml
Contenido:
version: "3.9"
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:stable
restart: unless-stopped
privileged: true
shm_size: "256mb"
devices:
# Google Coral USB
- /dev/bus/usb:/dev/bus/usb
# iGPU Intel para aceleraci贸n hardware (si tienes Intel N100/N200/etc)
- /dev/dri/renderD128:/dev/dri/renderD128
volumes:
- /etc/localtime:/etc/localtime:ro
- ./config:/config
- ./media:/media/frigate
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 1000000000 # 1GB para cache
ports:
- "5000:5000" # Web UI
- "8554:8554" # RTSP feeds
- "8555:8555/tcp" # WebRTC
- "8555:8555/udp" # WebRTC
environment:
FRIGATE_RTSP_PASSWORD: "cambiar_password"
4.3 Crear configuraci贸n b谩sica de Frigate
nano config/config.yml
Contenido m铆nimo:
mqtt:
enabled: false # Cambiar a true si usas MQTT
detectors:
coral:
type: edgetpu
device: usb
# Aceleraci贸n hardware con iGPU Intel
ffmpeg:
hwaccel_args: preset-vaapi
# Configuraci贸n de c谩maras de ejemplo
cameras:
camara_frontal:
enabled: true
ffmpeg:
inputs:
- path: rtsp://usuario:password@192.168.1.100:554/stream
roles:
- detect
- record
detect:
enabled: true
width: 1280
height: 720
fps: 5
record:
enabled: true
retain:
days: 7
mode: motion
snapshots:
enabled: true
retain:
default: 14
# Configuraci贸n de grabaci贸n
record:
enabled: true
retain:
days: 7
mode: motion
events:
retain:
default: 30
mode: motion
# Detecci贸n de objetos
objects:
track:
- person
- car
- dog
- cat
4.4 Iniciar Frigate
docker-compose up -d
4.5 Ver logs y verificar
docker logs frigate -f
Busca estas l铆neas que confirman que la Coral funciona:
frigate.edgetpu INFO : Attempting to load TPU as usb
frigate.edgetpu INFO : TPU found
PARTE 5: Verificaci贸n y Troubleshooting
5.1 Acceder a la interfaz web
Abre en tu navegador:
http://IP_DEL_LXC:5000
Ve a System para ver el estado de:
- Detector Coral
- Hardware acceleration
- C谩maras
5.2 Problemas comunes
La Coral no aparece en lsusb
Soluci贸n:
# Desde Proxmox, verifica que existe
lsusb
ls -la /dev/bus/usb/
# Revisa la configuraci贸n del LXC
cat /etc/pve/lxc/<ID>.conf
# Reinicia el contenedor
pct stop <ID>
pct start <ID>
Error "unable to initialize libusb: -99"
Causas:
- El directorio
/dev/bus/usb no est谩 montado correctamente
- Permisos incorrectos
Soluci贸n:
# Verifica en el LXC
ls -la /dev/bus/usb/
# Si no existe, revisa la configuraci贸n en Proxmox
nano /etc/pve/lxc/<ID>.conf
# Debe tener: lxc.mount.entry: /dev/bus/usb dev/bus/usb none bind,create=dir
Frigate no detecta la Coral
Soluci贸n:
# Verifica que Docker pueda ver el dispositivo
docker exec -it frigate ls -la /dev/bus/usb/
# Revisa los logs
docker logs frigate | grep -i tpu
docker logs frigate | grep -i coral
# Reinicia el contenedor
docker-compose restart
Bus USB cambia de n煤mero
Si el n煤mero del bus cambia (por ejemplo, de 002 a 003), hay dos opciones:
Opci贸n 1: Pasar todo el bus USB
lxc.mount.entry: /dev/bus/usb dev/bus/usb none bind,create=dir
Opci贸n 2: Usar reglas udev m谩s avanzadas (fuera del alcance de esta gu铆a)
PARTE 6: Optimizaciones Adicionales
6.1 Pasar iGPU Intel para hardware acceleration
Si tienes un procesador Intel (N100, N200, i3, i5, etc.) con gr谩ficos integrados:
En Proxmox:
ls -la /dev/dri/
A帽ade al LXC config:
nano /etc/pve/lxc/<ID>.conf
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
En docker-compose.yml ya est谩 incluido:
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
6.2 Ajustar memoria del LXC
Para Frigate con varias c谩maras, recomendado:
pct set <ID> -memory 4096
6.3 Habilitar autostart
pct set <ID> -onboot 1
PARTE 7: Configuraci贸n Avanzada de Frigate
7.1 Ejemplo con m煤ltiples c谩maras y zonas
cameras:
entrada_principal:
ffmpeg:
inputs:
- path: rtsp://user:pass@192.168.1.100:554/stream1
roles:
- detect
- path: rtsp://user:pass@192.168.1.100:554/stream2
roles:
- record
detect:
width: 1280
height: 720
fps: 5
zones:
entrada:
coordinates: 0,461,3,0,1919,0,1919,843,1699,492,1344,458,1346,336,973,317,869,375,866,432
objects:
- person
- car
calle:
coordinates: 0,0,1280,0,1280,300,0,300
objects:
- person
- car
objects:
track:
- person
- car
- dog
filters:
person:
min_area: 5000
max_area: 100000
threshold: 0.7
7.2 Notificaciones (requiere MQTT)
mqtt:
enabled: true
host: 192.168.1.50
port: 1883
user: mqtt_user
password: mqtt_pass
Resumen de Comandos R谩pidos
# En Proxmox
lsusb # Ver dispositivos USB
pct stop 105 # Detener LXC
nano /etc/pve/lxc/105.conf # Editar config
pct start 105 # Iniciar LXC
pct enter 105 # Entrar al LXC
# Dentro del LXC
apt install usbutils -y # Instalar utilidades
lsusb # Verificar Coral
cd /opt/frigate # Ir al directorio
docker-compose up -d # Iniciar Frigate
docker logs frigate -f # Ver logs
docker-compose restart # Reiniciar
docker-compose down # Detener
Referencias
- Documentaci贸n oficial de Frigate: https://docs.frigate.video
- Google Coral: https://coral.ai/docs/accelerator/get-started/
- Proxmox LXC: https://pve.proxmox.com/wiki/Linux_Container
脷ltima actualizaci贸n: Octubre 2025
Hardware probado: Intel N100, Coral USB
SO LXC: Debian 12 (Bookworm)