GPU temp custom sensor (file) + fan3 control via CoolerControl

- gpu_temp.sh: экспорт nvidia-smi temperature.gpu в файл (миллиградусы), 2-3s цикл
- docker-compose.yml: mount ./gpu-temp:/run/gpu-temp:ro
- .gitignore: gpu-temp (живой файл сенсора)
This commit is contained in:
2026-08-06 15:49:40 +03:00
parent d6d64dfc39
commit a359d2138d
3 changed files with 27 additions and 1 deletions
+1
View File
@@ -1 +1,2 @@
coolercontrol-config/ coolercontrol-config/
gpu-temp
+2 -1
View File
@@ -8,9 +8,10 @@ services:
environment: environment:
- CC_DBUS=OFF - CC_DBUS=OFF
volumes: volumes:
- /sys/class/hwmon/hwmon4:/sys/class/hwmon/hwmon4 - /sys/class/hwmon:/sys/class/hwmon
- /dev:/dev - /dev:/dev
- ./coolercontrol-config:/etc/coolercontrol - ./coolercontrol-config:/etc/coolercontrol
- ./gpu-temp:/run/gpu-temp:ro
networks: networks:
- proxy - proxy
labels: labels:
Executable
+24
View File
@@ -0,0 +1,24 @@
#!/bin/bash
# gpu_temp.sh — экспорт температуры GPU (nvidia-smi) в файл для CoolerControl
# Custom Sensor (File) в CoolerControl читает файл в sysfs-формате: миллиградусы (33000 = 33°C)
# Файл монтируется в контейнер coolercontrold как /run/gpu-temp
OUT_FILE="${GPU_TEMP_FILE:-/home/nkozobrod/docker/coolercontrol/gpu-temp}"
INTERVAL="${GPU_TEMP_INTERVAL:-3}"
if ! command -v nvidia-smi >/dev/null 2>&1; then
echo "nvidia-smi not found" >&2
exit 1
fi
# Первичная запись, чтобы файл существовал сразу
temp=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits 2>/dev/null | head -1)
[ -n "$temp" ] && echo $((temp * 1000)) > "$OUT_FILE"
while true; do
temp=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits 2>/dev/null | head -1)
if [ -n "$temp" ]; then
echo $((temp * 1000)) > "$OUT_FILE"
fi
sleep "$INTERVAL"
done