Camera IP giá rẻ giờ nhiều hơn số cửa sổ trong nhà, nhưng đầu ghi NVR của hãng thì đắt, giao diện thì cũ, và muốn xem lại đoạn có người đi qua cửa lúc 2 giờ sáng thì phải tua bằng tay. Frigate NVR giải quyết đúng bài toán đó: một bộ ghi hình mã nguồn mở, chạy trong Docker, tự phát hiện người, xe, chó mèo trong khung hình và chỉ ghi lại những đoạn có ý nghĩa. Điểm mấu chốt là khâu phát hiện vật thể rất ngốn CPU, và đó là lý do Raspberry Pi 5 cần thêm một chip tăng tốc như Google Coral TPU.
Bài này hướng dẫn cài Frigate NVR trên Raspberry Pi 5 với Coral TPU gắn qua khe PCIe: sửa config.txt để kernel chạy trang 4KB, cài driver, dựng Docker, viết file cấu hình và docker-compose, rồi kiểm tra xem TPU có thực sự nhận việc hay không. Toàn bộ nội dung dựa trên tài liệu gốc của Pineboards được The Pi Hut lưu lại, phần xử lý sự cố và phần giải thích cơ chế là phần bổ sung của RaspberryPi Việt Nam sau khi dựng thử.
Mục lục
- Frigate NVR là gì và vì sao hợp với Pi 5
- Kiến trúc xử lý: CPU làm gì, TPU làm gì
- Chuẩn bị phần cứng và phần mềm
- Bước 1: Cập nhật hệ điều hành
- Bước 2: Sửa config.txt cho PCIe và kernel 4K page
- Bước 3: Cài driver cho Coral TPU
- Bước 4: Cài Docker từ kho chính thức
- Bước 5: Tạo thư mục và file cấu hình Frigate
- Bước 6: Viết docker-compose.yml và khởi chạy
- Kiểm tra nhận diện và thử phát hiện vật thể
- Xử lý sự cố thường gặp
- Ứng dụng thực tế và tinh chỉnh
Frigate NVR là gì và vì sao hợp với Pi 5
Frigate NVR là phần mềm ghi hình mạng mã nguồn mở, đóng gói sẵn thành Docker image nên chỉ cần một lệnh là chạy. Nó nhận luồng RTSP từ camera IP, giải mã bằng ffmpeg, ghi hình xuống ổ cứng, và chạy một bộ phát hiện vật thể trên từng khung hình được lấy mẫu. Khác với đầu ghi truyền thống chỉ ghi khi có chuyển động theo điểm ảnh, Frigate NVR phân loại được vật thể: người, ô tô, xe máy, chó, mèo, túi xách. Nhờ vậy một cái cây rung trước gió không còn tạo ra hàng trăm đoạn phim rác.
Phần phát hiện mới là chỗ tốn tài nguyên. Nếu để Frigate NVR chạy bằng CPU của Pi 5, mô hình nhỏ chỉ đạt vài khung hình mỗi giây cho mỗi camera, CPU lên gần 100% và nhiệt độ chạm ngưỡng hạ xung. Coral Edge TPU là chip suy luận chuyên dụng 4 TOPS, làm đúng một việc là chạy mạng nơ ron lượng tử hóa int8, nên nó xử lý được hàng chục đến hàng trăm khung hình mỗi giây mà gần như không đụng tới CPU. Pi 5 có khe PCIe thật, khác với Pi 4 chỉ có USB 3.0, nên gắn Coral bản M.2 qua HAT cho độ trễ thấp và ổn định hơn hẳn bản USB.
Một điểm cần nói trước để khỏi mất buổi tối: Coral TPU chỉ chạy trên kernel biên dịch với trang bộ nhớ 4KB, trong khi kernel mặc định của Raspberry Pi OS cho Pi 5 dùng trang 16KB. Đây là lý do bắt buộc phải thêm dòng kernel=kernel8.img vào config.txt, và cũng là lỗi phổ biến nhất khiến Frigate NVR báo không tìm thấy detector dù lspci vẫn thấy thiết bị.
Kiến trúc xử lý: CPU làm gì, TPU làm gì
Hiểu luồng dữ liệu sẽ giúp bạn chẩn đoán nhanh khi có sự cố, vì mỗi chặng của Frigate NVR có một log riêng và một cách kiểm tra riêng.
Camera IP đẩy luồng RTSP vào go2rtc, thành phần phụ trách nhận luồng và phát lại. go2rtc giữ kết nối với camera, cho phép nhiều nơi cùng xem mà không mở thêm phiên tới camera, đồng thời phục vụ WebRTC ở cổng 8555 để xem trực tiếp độ trễ thấp. Từ đây ffmpeg tách hai nhánh: một nhánh lấy luồng chính (main stream) để ghi hình, một nhánh lấy luồng phụ (sub stream) độ phân giải thấp để đưa sang khâu phát hiện. Việc tách hai nhánh là nguyên tắc quan trọng: bản ghi vẫn nét 1080p hoặc 2K, còn khâu phát hiện chỉ cần 640×360 hoặc 1280×720, tiết kiệm CPU giải mã rất nhiều.
Khâu phát hiện lấy mẫu theo số khung hình bạn khai báo, thường 5 khung hình mỗi giây là đủ cho người đi bộ. Mỗi khung hình được thu nhỏ về kích thước đầu vào của mô hình (320×320 với model mặc định của Coral), đưa qua thiết bị /dev/apex_0, nhận về danh sách hộp bao và nhãn. Bộ theo dõi (tracker) ghép các hộp bao giữa các khung hình liên tiếp thành một đối tượng có ID, nhờ đó hệ thống biết một người đứng trước cửa 30 giây là một sự kiện chứ không phải 150 sự kiện rời rạc.
Bộ nhớ chia sẻ (shared memory) là chặng ít ai để ý. ffmpeg ghi khung hình vào vùng /dev/shm để các tiến trình khác đọc mà không phải copy, nên tham số shm_size trong docker-compose phải đủ lớn. Thiếu bộ nhớ này, Frigate NVR chạy được vài phút rồi camera mất tín hiệu, log báo lỗi đọc frame thất bại. Bài gốc để 64MB cho một camera, con số đó dùng được cho một luồng độ phân giải thấp, nhưng từ hai camera trở lên nên nâng lên 128MB hoặc 256MB.
Chuẩn bị phần cứng và phần mềm
Danh sách dưới đây theo đúng bài gốc, kèm ghi chú về những món shop không bán để bạn chủ động thay thế.
- Raspberry Pi 5 (bản 4GB là đủ cho một đến hai camera, 8GB thoải mái hơn khi bật nhiều tính năng).
- Thẻ microSD cài Raspberry Pi OS mới nhất, hoặc SSD NVMe nếu định ghi hình liên tục. Ghi liên tục 24/7 lên thẻ nhớ sẽ hỏng thẻ trong vài tháng.
- HAT PCIe có khe M.2 chuẩn A+E key để gắn Coral TPU. Bài gốc dùng Hat AI của Pineboards, loại này cho chạy TPU song song với SSD NVMe trên cùng một HAT.
- Google Coral TPU bản M.2 A+E key. Shop hiện không kinh doanh mẫu này. Nếu bạn dùng Raspberry Pi AI HAT+ 13 TOPS (Hailo-8L) thì Frigate NVR vẫn chạy được, nhưng cấu hình detector khác hoàn toàn: khai báo
type: hailo8lthay choedgetpu, và gói driver cài theo hướng dẫn của Hailo chứ không phải driver apex. Đừng trộn hai hướng dẫn vào nhau. - Camera IP hỗ trợ RTSP hoặc ONVIF, có luồng phụ độ phân giải thấp.
- Nguồn USB-C PD 27W chính hãng, và nên có quạt tản nhiệt vì máy chạy liên tục.
Về phần mềm, bạn chỉ cần Raspberry Pi OS 64-bit (Bookworm hoặc mới hơn) và một tài khoản có quyền sudo. Toàn bộ phần dưới chạy trên terminal, không cần màn hình rời. Trường hợp bạn muốn tự dựng camera bằng chính Pi 5 thay vì mua camera IP, cách gắn và cấu hình module camera đã có trong bài hướng dẫn dùng hai camera cùng lúc trên Raspberry Pi 5.
Bước 1: Cập nhật hệ điều hành
Hệ điều hành vừa ghi ra thẻ thì gần như chắc chắn chưa có bản vá nào, nhưng vẫn nên chạy để chắc chắn gói firmware và kernel ở bản mới nhất. Frigate NVR phụ thuộc trực tiếp vào cặp kernel và firmware này, lệch phiên bản là nguồn gốc của nhiều lỗi PCIe khó hiểu.
sudo apt update sudo apt upgrade
Lệnh thứ hai sẽ hỏi xác nhận dung lượng, chọn Yes. Nếu bản cập nhật có kernel mới, reboot một lần trước khi sang bước sau.
Bước 2: Sửa config.txt cho PCIe và kernel 4K page
Trên Raspberry Pi OS Bookworm, file cấu hình boot nằm ở /boot/firmware/config.txt. Bản cũ hơn dùng /boot/config.txt. Mở bằng quyền root và thêm hai dòng dưới đây vào cuối file:
kernel=kernel8.img dtoverlay=pineboards-hat-ai
Dòng đầu chuyển sang kernel biên dịch với trang bộ nhớ 4KB. Driver gasket của Coral giả định trang 4KB, chạy trên kernel 16KB thì driver nạp được nhưng thiết bị không hoạt động. Dòng thứ hai bật overlay thiết bị của HAT Pineboards, khai báo các chân PCIe và nguồn cấp cho TPU. Khe PCIe trên Pi 5 vốn đã bật mặc định, nên overlay ở đây chủ yếu để đúng chân và đúng thứ tự khởi tạo cho HAT.
Nếu bạn dùng HAT khác, tên overlay sẽ khác hoặc không cần overlay nào cả. Nguyên tắc là giữ nguyên kernel=kernel8.img, còn overlay thì tra đúng tài liệu của HAT đó. Không có overlay đúng, Frigate NVR sẽ không thấy thiết bị dù phần cứng đã cắm chắc. Tuyệt đối không thêm dtparam=pciex1_gen=3 khi gắn Coral: TPU chỉ chạy ổn định ở PCIe Gen2, ép Gen3 sẽ được vài phút đầu rồi lỗi bus.
Khởi động lại bằng sudo reboot, sau đó kiểm tra kernel:
uname -a
Kết quả phải có đuôi 6.6.31+rpt-rpi-v8, và quan trọng nhất là hậu tố v8. Nếu vẫn thấy v8+ hoặc 2712, dòng kernel=kernel8.img chưa được áp dụng: kiểm tra lại đường dẫn file, kiểm tra bạn đã sửa đúng file mà firmware đang đọc.
Tiếp theo, xác nhận hệ điều hành nhìn thấy TPU trên bus PCIe:
lspci | grep Coral
Kết quả mong đợi là một dòng chứa:
System peripheral: Global Unichip Corp. Coral Edge TPU
Không thấy dòng nào nghĩa là vấn đề nằm ở phần cứng hoặc overlay, chưa liên quan gì tới Docker hay Frigate NVR. Hãy kiểm tra cáp FPC của HAT, chiều cắm, và nguồn: HAT ăn nguồn từ Pi nên nguồn yếu làm thiết bị rớt bus ngay sau khi khởi động.
Bước 3: Cài driver cho Coral TPU
Bản thân việc nhận thiết bị chưa đủ, bạn cần driver gasket và apex để tạo ra node /dev/apex_0 mà Frigate NVR dùng để gửi khung hình sang TPU. Bài gốc không chép lại phần này mà trỏ sang hướng dẫn cấu hình Coral Edge TPU trên Pi 5 của The Pi Hut, bắt đầu từ bước 3, vì bước 1 và bước 2 đã làm xong ở trên. Trình tự gồm: cài các gói phụ thuộc, tải driver từ kho của Google, biên dịch module, thêm quy tắc udev để thiết bị có quyền truy cập, rồi khởi động lại.
Sau khi cài xong, kiểm tra hai thứ. Thứ nhất là node thiết bị đã tồn tại bằng ls -l /dev/apex_0. Thứ hai là kernel đã nạp module, xem bằng dmesg | grep -i apex, trong đó phải có dòng thông báo phiên bản firmware của TPU. Nếu node có nhưng Frigate NVR vẫn báo không tìm thấy detector, gần như chắc chắn bạn đang chạy kernel 16KB page, quay lại bước 2.
Bước 4: Cài Docker từ kho chính thức
Docker là cách cài Frigate NVR được chính nhóm phát triển khuyến nghị, và cũng là cách ít lỗi nhất khi nâng cấp về sau. Cách cài đúng là thêm kho của Docker thay vì dùng gói docker.io trong kho Debian, vì gói Debian thường cũ và thiếu plugin compose. Trước hết thêm khóa GPG và khai báo kho:
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
Khối lệnh trên là bản chính thức của Docker, chỉ khác bài gốc ở chỗ bài gốc bị nhân đôi dấu gạch chéo khi xuất bản trang nên đã được sửa lại cho đúng cú pháp. Dấu \ ở cuối dòng là nối dòng, chép thiếu nó thì shell cắt câu lệnh thành nhiều phần và báo lỗi ngay.
Sau khi kho đã có, cài các gói cần thiết:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose
Gói docker-compose là bản v1 viết bằng Python, vẫn dùng được nhưng đã ngừng phát triển; docker-compose-plugin cho lệnh mới docker compose. Bài gốc dùng bản v1 nên các lệnh bên dưới giữ nguyên dạng docker-compose. Nếu máy bạn chỉ có plugin v2, thay bằng sudo docker compose up -d là tương đương.
Bước 5: Tạo thư mục và file cấu hình Frigate
Frigate NVR cần hai thư mục: một chứa cấu hình, một chứa bản ghi. Bạn nên tự tạo trước để chủ động chọn ổ đĩa, nhất là khi bản ghi nằm trên SSD NVMe thay vì thẻ nhớ. Trong ví dụ này dùng /home/user/frigate, bạn thay user bằng tên đăng nhập thật.
mkdir -p /home/user/frigate/config mkdir -p /home/user/frigate/storage
Bài gốc in ra dấu gạch ngang dài thay cho dấu trừ trong mkdir -p do lỗi định dạng, ở đây đã sửa về đúng ký tự để lệnh chạy được. Tiếp theo tạo file cấu hình:
nano /home/user/frigate/config/config.yml
Nội dung khởi điểm, giả định camera nằm ở phòng khách với địa chỉ 192.168.1.123. File này là nơi duy nhất bạn khai báo camera, detector và chính sách ghi, nên Frigate NVR đọc lại nó mỗi lần khởi động:
mqtt:
enabled: False
detectors:
coral:
type: edgetpu
device: pci
cameras:
living_room:
enabled: False
ffmpeg:
inputs:
- path: rtsp://192.168.1.123/stream1
roles:
- detect
Ba khối này là toàn bộ phần xương sống. mqtt để tắt vì chưa nối Home Assistant; bật lên khi bạn muốn đẩy sự kiện sang hệ thống nhà thông minh. detectors khai báo một bộ phát hiện tên coral, kiểu edgetpu, thiết bị pci, đúng với Coral gắn qua khe PCIe (bản USB dùng usb). cameras khai báo từng camera, mỗi camera có danh sách đầu vào RTSP và vai trò của từng luồng: detect cho phát hiện, record cho ghi hình.
Lưu ý quan trọng: bài gốc để enabled: False cho cả MQTT và camera, có thể vì tài liệu viết theo kiểu mẫu chưa chạy thật. Khi dùng, bạn phải đổi thành enabled: True ở khối camera, nếu không Frigate NVR sẽ bỏ qua camera và giao diện chỉ hiện trang trống. Với MQTT thì để False nếu chưa có broker.
Bước 6: Viết docker-compose.yml và khởi chạy
Tạo file compose trong thư mục gốc của Frigate, ngang cấp với hai thư mục con vừa tạo. Frigate NVR chỉ cần một service duy nhất, không có cơ sở dữ liệu riêng phải cài thêm:
cd /home/user/frigate nano docker-compose.yml
Nội dung file, lấy từ trang hướng dẫn cài đặt của Frigate NVR và sửa lại đường dẫn cho khớp máy:
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:
- /etc/localtime:/etc/localtime:ro
- /home/user/frigate/config:/config
- /home/user/frigate/storage:/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:
FRIGATE_RTSP_PASSWORD: "pineberriesandcream"
Đọc kỹ từng dòng sẽ thấy thiết kế khá rõ ràng. devices chuyển node /dev/apex_0 của máy vào trong container, thiếu dòng này thì bên trong container không có thiết bị nào để suy luận. volumes gắn thư mục cấu hình và thư mục ghi hình từ máy vào container, nên bản ghi nằm trên ổ thật chứ không nằm trong lớp ghi tạm của Docker, gỡ container không mất dữ liệu. Khối tmpfs dành 1GB RAM làm cache, giảm số lần ghi xuống SSD hoặc thẻ nhớ, đổi lại tốn 1GB RAM nên cân nhắc nếu Pi 5 bản 4GB.
Cổng 5000 là giao diện web, 8554 phát lại luồng RTSP đã gộp để đầu ghi hoặc đầu xem khác kéo về, 8555 cho WebRTC. Biến FRIGATE_RTSP_PASSWORD là mật khẩu cho luồng RTSP do Frigate NVR phát ra, đừng để nguyên giá trị mẫu trong bài gốc khi mở cổng ra ngoài mạng LAN.
Cuối cùng là khởi chạy container:
sudo docker-compose up -d
Lần đầu chạy sẽ mất vài phút để tải image, dung lượng khoảng 1,5GB tùy phiên bản. Xong xuôi, mở trình duyệt trong mạng LAN tới địa chỉ IP của Pi, cổng 5000, bạn sẽ thấy giao diện Frigate NVR với danh sách camera bên trái và trạng thái detector ở trang System.
Kiểm tra nhận diện và thử phát hiện vật thể
Vào mục System của Frigate NVR, phần Detectors phải hiện tên coral với thông số inference speed, thường vài mili giây mỗi lần suy luận. Con số này càng thấp càng tốt, và quan trọng hơn là nó phải khác 0: nếu detector báo lỗi, Frigate NVR sẽ tự chuyển sang CPU và bạn sẽ thấy inference speed nhảy lên hàng trăm mili giây cùng cảnh báo không khuyến khích dùng CPU.
Phần phát hiện dùng mô hình edgetpu_model.tflite (TensorFlow Lite, lượng tử hóa int8) mặc định đi kèm image. Muốn thử, mở camera cần kiểm tra, ở góc trên bên phải có hai lựa chọn Live và Debug, bấm Debug rồi bật tùy chọn bounding box. Bước vào khung hình, bạn sẽ thấy hộp bao bám theo mình kèm nhãn person. Nếu hộp bao hiện nhưng nhãn sai, đó là chuyện của mô hình chứ không phải của TPU; Coral chỉ chạy đúng những gì mô hình được huấn luyện.
Một phép thử nhanh khác là xem log container bằng sudo docker logs frigate --tail 50. Log tốt sẽ có dòng thông báo detector khởi tạo thành công và danh sách camera đang chạy. Log xấu thường xuất hiện ngay: không mở được /dev/apex_0, hoặc ffmpeg không kết nối được RTSP. Hai lỗi này khác nhau hoàn toàn về nguyên nhân nên đừng sửa chung một hướng.
Xử lý sự cố thường gặp
Bảng dưới tổng hợp những lỗi đã gặp khi dựng Frigate NVR trên Pi 5, sắp theo thứ tự từ lỗi phần cứng tới lỗi cấu hình.
| Hiện tượng | Nguyên nhân | Cách xử lý |
|---|---|---|
lspci không thấy Coral |
Cáp FPC lỏng hoặc sai chiều, overlay HAT sai tên, nguồn không đủ | Cắm lại cáp, kiểm tra tên overlay đúng HAT, dùng nguồn 27W chính hãng |
uname -a vẫn ra kernel 16KB page |
Chưa thêm kernel=kernel8.img, hoặc sửa nhầm /boot/config.txt trên Bookworm |
Sửa /boot/firmware/config.txt, khởi động lại, kiểm tra hậu tố -v8 |
| Detector báo không tìm thấy thiết bị | Thiếu driver apex/gasket, hoặc thiếu node /dev/apex_0 |
Cài driver, kiểm tra ls -l /dev/apex_0, thêm quy tắc udev |
| Container Frigate NVR chạy rồi tự khởi động lại liên tục | Lỗi cú pháp YAML trong config.yml | Xem docker logs frigate, sửa thụt lề, không dùng tab |
| Camera mất tín hiệu sau vài phút | shm_size quá nhỏ so với số camera và độ phân giải |
Nâng lên 128MB hoặc 256MB trong docker-compose, chạy lại container |
| Frigate NVR mở giao diện trống, không có camera | Camera còn để enabled: False như mẫu gốc |
Đổi thành enabled: True, kiểm tra lại khối cameras |
| Frigate NVR xem trực tiếp bị giật, tua lại chậm | Dùng luồng chính cho cả detect và record, CPU quá tải | Thêm luồng phụ cho detect, giảm fps phát hiện xuống 5 |
| Không mở được cổng 5000 từ máy khác | Firewall của Pi hoặc cổng bị dịch vụ khác chiếm | Kiểm tra ss -tlnp, mở cổng trong firewall, đổi cổng publish |
Ứng dụng thực tế và tinh chỉnh
Với cấu hình một camera như trên, Frigate NVR đã cho bạn một hệ thống ghi hình có phân loại vật thể, chạy êm trên Pi 5 mà không cần máy chủ riêng. Từ đây việc mở rộng chủ yếu là thêm camera và chọn chế độ ghi cho phù hợp.
Về lưu trữ, Frigate NVR cho phép ghi liên tục, ghi theo sự kiện, hoặc kết hợp cả hai với thời gian lưu khác nhau. Cách làm hợp lý cho nhà ở là ghi theo sự kiện 30 ngày và ghi liên tục 3 ngày, vừa đủ để xem lại tình huống bất ngờ vừa tiết kiệm dung lượng. Với camera 2MP, mỗi ngày ghi liên tục tốn khoảng 5 đến 10GB tùy bitrate, nên một SSD 256GB đủ cho vài tuần nếu chỉ ghi theo sự kiện.
Về tích hợp, bật MQTT trong config.yml rồi trỏ về broker của Home Assistant là mỗi sự kiện phát hiện sẽ thành một thực thể, dùng làm điều kiện automation: bật đèn sân khi có người, gửi ảnh chụp qua Telegram, hoặc tắt chuông báo khi cả nhà đi vắng. Với cửa hàng nhỏ, Frigate NVR đếm được số người trong khung hình theo thời điểm, hữu ích để đối chiếu giờ cao điểm mà không cần dịch vụ đám mây nào. Nếu bạn muốn Pi 5 kiêm luôn vai trò router hoặc điểm truy cập, bài cài OpenWRT biến Raspberry Pi 5 thành router Internet đi sâu vào phần định tuyến và card mạng.
Về bảo mật, có ba việc nên làm ngay sau khi chạy được: đổi mật khẩu RTSP mặc định trong docker-compose, không mở cổng 5000 ra Internet mà dùng VPN hoặc reverse proxy có xác thực, và tách camera sang VLAN riêng vì camera IP giá rẻ hiếm khi được vá lỗi. Bản thân Coral TPU và Frigate NVR không tạo ra lỗ hổng mới, nhưng một giao diện quản trị mở công khai thì có.
Về nhiệt và nguồn, một máy Frigate NVR chạy 24/7 với SSD NVMe qua HAT sẽ ấm hơn bạn tưởng. Nên dùng vỏ có quạt hoặc tản nhiệt chủ động, và theo dõi nhiệt độ bằng vcgencmd measure_temp trong tuần đầu. Nếu nhiệt độ thường xuyên trên 80 độ C, Pi sẽ hạ xung và ffmpeg bắt đầu rớt khung hình, biểu hiện là bản ghi bị giật dù CPU không cao.
Tóm lại, ba điểm cần nhớ khi dựng Frigate NVR trên Raspberry Pi 5 là: kernel phải là bản 4KB page để Coral TPU hoạt động, driver phải tạo được node /dev/apex_0 trước khi bật container, và cấu hình mẫu phải được sửa lại theo camera thật của bạn thay vì dán nguyên. Làm đúng ba việc đó thì phần còn lại chỉ là chọn chế độ ghi và thời gian lưu.
Một khi đã chạy ổn định, Frigate NVR thay thế được đầu ghi NVR của hãng với chi phí thấp hơn nhiều, đồng thời mở đường cho những việc mà đầu ghi đóng không làm được: phát hiện theo loại vật thể, đẩy sự kiện sang Home Assistant, và tự do chọn ổ lưu trữ. Raspberry Pi 5 với khe PCIe thật và bốn nhân Cortex-A76 là nền đủ rộng để làm việc đó trong nhiều năm. Các bài khác trong chuyên mục Thủ thuật Raspberry Pi đi tiếp những phần còn lại của cùng hệ sinh thái này.
Nguồn: The Pi Hut

