Enabling PCIe and NVMe in config.txt, SATA enumeration via ASM1061, btrfs pool management, Frigate recordings layout, and SMART health monitoring on CM5.
The Exaviz Cruiser exposes PCIe x1, an M.2 Key M slot for NVMe, and a SATA port via an ASM1061 bridge. All three interfaces share the CM5’s single PCIe lane and are enabled through config.txt parameters.
The Exaviz Cruiser routes SATA through an ASM1061 PCIe-to-SATA bridge. No additional config.txt parameters are required beyond dtparam=pciex1=on. The kernel’s ahci driver handles the bridge automatically and the disk appears as /dev/sdX.
lsblk -d -o NAME,MODEL,SIZE,TRAN | grep sata
sda WD Red Plus 2TB 1.8T sata
If the SATA disk is not visible after enabling PCIe, check dmesg | grep -i asm106 to confirm the bridge was detected. A missing bridge usually indicates a PCIe link training failure — check that LnkSta reports the expected speed with lspci -vvv.
Frigate NVR writes large sequential recording files that do not benefit from btrfs copy-on-write. Two dedicated subvolumes with nodatacow are used to avoid performance penalties.
nodatacow disables checksumming on those subvolumes. This is intentional for Frigate and Docker workloads, but means data corruption will not be detected by btrfs scrub. Back up critical data elsewhere.
Frigate expects recordings at /media/frigate/recordings. With the @frigate subvolume mounted at /media/frigate, no additional configuration is needed in Frigate’s config file. The Samba share for snapshot browsing is configured at /media/frigate/snapshots.The Frigate container definition (from docker-compose.yml) mounts the path directly: