🛠 NVMe Optimization and PoE Thermal Management
Objectifs
This tutorial aims to fully exploit the integrated M.2 NVMe storage and manage the heat generated by PoE+ power. It targets advanced users seeking to optimize disk latency and system stability in a 1U rack environment.
Matériel nécessaire
- Xerxes Pi 2026 board with CM4/CM5 module
- M.2 NVMe module (max 80mm)
- PoE+ (IEEE 802.3at) or USB-C power supply
- Compatible heat sink
- USB-C cable for initial setup
- SSH access and Linux terminal
Étapes
- Hardware Installation: Insert the NVMe module into the M.2 M-key connector under the board. Ensure the heat sink is applied with adequate thermal paste on the NVMe controller to avoid throttling.
- Disk Detection: Connect via SSH. Verify device detection with
lsblk. The disk should appear as/dev/nvme0n1. If missing, checkdtparam=nvme=onin/boot/firmware/config.txt. - Formatting and Mounting: Format the disk to ext4:
sudo mkfs.ext4 /dev/nvme0n1. Create a mount point:sudo mkdir /mnt/nvme. Mount it:sudo mount /dev/nvme0n1 /mnt/nvme. Add an entry to/etc/fstabfor persistence. - PoE Thermal Management: PoE power generates more heat than USB-C. Install
lm-sensorswithsudo apt install lm-sensors. Runsensors-detectthensensorsto monitor SoC and PoE regulator temperatures. - PWM Optimization: Configure the PWM connector for the active fan. Use
raspi-configor edit/boot/firmware/config.txtto adjust fan controller temperature thresholds if firmware allows, or use a Python script withRPi.GPIOfor dynamic regulation based onsensorsreadings.
Vérification
Run hdparm -Tt /dev/nvme0n1 to test read speeds. Throughput should exceed 100 MB/s. Simulate CPU load with stress-ng --cpu 4 --timeout 60s and monitor temperatures with watch -n 1 sensors. SoC temperature should stay below 75°C thanks to the configured active cooling.
Pour aller plus loin
Explore the provided macOS application for Docker monitoring via SSH. Configure automatic alerts if temperatures exceed critical thresholds, integrating the board into a robust edge infrastructure.
Other tutorials for this board
Code examples for this board
poe-status-monitor.pypythonnvme-benchmark.shbashqwiic-bme280-reader.pypythonpwm-fan-control.pypythonethernet-poe-config.shbashnvme_storage_benchmark-6.inobash