Контроль температуры процессора и видеокарты в Linux — критически важная задача для предотвращения перегрева, особенно при разгоне, рендеринге или длительных нагрузках. В отличие от Windows, где достаточно установить HWMonitor или MSI Afterburner, в Linux мониторинг требует знания консольных команд или специализированных утилит. Проблема усложняется разнообразием дистрибутивов и архитектур: датчики могут называться по-разному в Ubuntu, Arch Linux или Fedora, а для видеокарт NVIDIA и AMD используются разные инструменты.
В этой статье вы найдёте актуальные способы проверки температуры для всех современных дистрибутивов, включая команды для терминала, графические программы и даже интеграцию с панелями GNOME или KDE. Мы разберём нюансы работы с датчиками lm-sensors, драйверами NVIDIA/AMD, а также покажем, как настроить автоматический мониторинг с оповещениями. Если вы столкнулись с внезапными выключениями ПК, артефактами на экране или замедлением системы — эта инструкция поможет выявить причину.
1. Подготовка системы: установка необходимых пакетов
Перед тем как проверять температуру, нужно убедиться, что в системе установлены драйверы для датчиков и утилиты мониторинга. Большинство дистрибутивов не включают их по умолчанию.
Для процессоров Intel/AMD и материнских плат потребуется пакет lm-sensors (он же sensors), а для видеокарт — дополнительные инструменты в зависимости от производителя:
- 🔧 Для Intel и AMD CPU:
sudo apt install lm-sensors(Debian/Ubuntu) илиsudo pacman -S lm_sensors(Arch). - 🎮 Для NVIDIA GPU: драйвер
nvidia-driver+ утилитаnvidia-smi(входит в пакет драйвера). - 🔥 Для AMD GPU: пакет
radeontopилиrocm-smi(для профессиональных карт).
После установки lm-sensors необходимо обнаружить датчики в системе командой:
sudo sensors-detect
Отвечайте Yes на все вопросы скрипта — это позволит загрузить модули ядра для мониторинга. По завершении перезагрузите ПК или вручную загрузите модули:
sudo modprobe coretemp # Для процессоров Intel
sudo modprobe k10temp # Для процессоров AMD
⚠️ Внимание: На некоторых ноутбуках (например, Lenovo ThinkPad или Dell XPS) датчики могут быть заблокированы BIOS. Если командаsensorsне показывает данные, проверьте настройкиEmbedded Controllerв BIOS или обновите прошивку.
2. Проверка температуры процессора через терминал
Самый универсальный способ — использовать команду sensors из пакета lm-sensors. Она выводит данные со всех доступных датчиков:
sensors
Пример вывода для процессора Intel Core i7-12700K:
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +45.0°C (high = +100.0°C, crit = +100.0°C)
Core 0: +42.0°C (high = +100.0°C, crit = +100.0°C)
Core 1: +43.0°C
...
Ключевые параметры в выводе:
- 🌡️
Package id 0— общая температура процессора (самый важный показатель). - 🔥
Core X— температура отдельных ядер (может отличаться на 5–10°C). - ⚠️
crit— критическая температура, при которой срабатывает аварийное отключение.
Для AMD Ryzen вывод будет похожим, но вместо coretemp используется модуль k10temp. Если температура одного ядра значительно выше остальных (на 15°C+), это может указывать на проблемы с термопастой или системой охлаждения.
3. Мониторинг температуры видеокарты
Способ проверки температуры видеокарты зависит от её производителя. Рассмотрим варианты для NVIDIA, AMD и интегрированной графики Intel.
3.1. Видеокарты NVIDIA
Для карт NVIDIA (серии GTX, RTX, Quadro) используйте утилиту nvidia-smi, которая входит в состав проприетарного драйвера:
nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader
Команда выведет температуру GPU в градусах Цельсия. Для детальной информации (включая температуру памяти и мощность) используйте:
nvidia-smi -q | grep -i temperature
3.2. Видеокарты AMD
Для карт AMD Radeon (серии RX 5000, RX 6000, RDNA 3) подойдёт утилита radeontop:
sudo radeontop
В верхней части экрана отобразится температура GPU (поле temp). Альтернатива — пакет rocm-smi для профессиональных карт:
rocm-smi --showtemp
3.3. Интегрированная графика Intel
Для встроенной графики Intel UHD или Iris Xe температура мониторится через sensors (как для CPU) или утилиту intel_gpu_top:
sudo intel_gpu_top
⚠️ Внимание: На видеокартах AMD старше архитектуры GCN 1.0 (например, Radeon HD 7000) датчики температуры могут отсутствовать. В этом случае мониторинг возможен только через BIOS или внешние устройства (например, USB-термометр).
| Производитель | Команда | Пример вывода | Примечания |
|---|---|---|---|
| NVIDIA | nvidia-smi -q | grep Temp |
GPU Current Temp: 55 °C |
Требует проприетарный драйвер nvidia-driver. |
| AMD | radeontop |
temp: 62.0°C |
Работает только с открытым драйвером amdgpu. |
| Intel | sensors |
Package id 0: +48.0°C |
Температура GPU совпадает с температурой процессора. |
4. Графические утилиты для мониторинга
Если работа в терминале кажется неудобной, можно использовать программы с графическим интерфейсом. Они подходят для постоянного мониторинга и отображения температуры на панели задач.
- 📊 Psensor — простая утилита для отображения температуры CPU/GPU и скорости вентиляторов. Установка:
sudo apt install psensor # Debian/Ubuntusudo pacman -S psensor # Arch
После запуска (
psensor) добавьте виджет на панель GNOME или KDE. - 🖥️ Hardinfo — аналог CPU-Z для Linux. Показывает температуру в разделе
Sensors:sudo apt install hardinfo - 🎛️ GKrellM — продвинутый монитор системы с поддержкой плагинов для GPU. Установите плагин
gkrellm-nvidiaдля карт NVIDIA.
Для пользователей KDE Plasma есть встроенный апплет Thermal Monitor, который можно добавить на панель через Добавить виджеты → Системный монитор.
5. Автоматический мониторинг и оповещения
Чтобы не проверять температуру вручную, можно настроить автоматическое логирование и оповещения при превышении пороговых значений.
5.1. Логирование температуры в файл
Создайте скрипт, который будет записывать температуру в файл каждые 5 минут:
#!/bin/bash
while true; do
echo "$(date) — CPU: $(sensors | grep 'Package id 0' | awk '{print $4}') — GPU: $(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader)" >> /tmp/temp_log.txt
sleep 300
done
Сохраните его как temp_monitor.sh, сделайте исполняемым (chmod +x temp_monitor.sh) и запустите в фоновом режиме:
nohup ./temp_monitor.sh &
5.2. Оповещения через уведомления
Для отправки уведомлений при перегреве используйте notify-send (требуется пакет libnotify-bin):
#!/bin/bash
TEMP=$(sensors | grep 'Package id 0' | awk '{print $4}' | tr -d '+°C')
if [ "$TEMP" -gt 80 ]; then
notify-send "⚠️ Перегрев CPU!" "Температура: ${TEMP}°C"
fi
Для NVIDIA GPU замените строку получения температуры на:
TEMP=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader)
Установить пакет libnotify-bin|Создать скрипт для логирования|Добавить скрипт в автозагрузку (crontab -e)|Проверить права на выполнение (chmod +x)-->
6. Проблемы с датчиками и их решение
Иногда датчики температуры могут работать некорректно: показывать завышенные значения, отсутствовать в выводе sensors или выдавать ошибки. Рассмотрим типичные проблемы и способы их устранения.
6.1. Датчики не обнаружены
Если команда sensors выводит No sensors found!, выполните следующие шаги:
- Проверьте загрузку модулей ядра:
lsmod | grep -E 'coretemp|k10temp|nvidia'Если модули отсутствуют, загрузите их вручную (см. раздел 1).
- Обновите пакет
lm-sensorsи повторитеsensors-detect. - Проверьте наличие датчиков в
/sys/class/thermal/:ls /sys/class/thermal/Если папки
thermal_zoneXесть, ноsensorsих не видит, проблема в правах доступа. Добавьте пользователя в группуvideo:sudo usermod -aG video $USER
6.2. Неправильные показания
Если температура процессора показывается как +127.0°C или отрицательная, это указывает на сбой датчика. Возможные причины:
- 🔌 Неисправный контакт датчика с процессором (часто встречается после замены термопасты).
- 🛠️ Повреждение материнской платы (например, после разгона или скачка напряжения).
- 🖥️ Устаревшая версия BIOS/UEFI (обновите прошивку через утилиту производителя).
Для видеокарт NVIDIA ошибки типа NVIDIA-SMI has failed обычно связаны с некорректной установкой драйвера. Переустановите его:
sudo apt purge nvidia* # Удаление старых драйверов
sudo ubuntu-drivers autoinstall # Автоматическая установка (Ubuntu)
⚠️ Внимание: На некоторых серверных процессорах Intel Xeon или AMD EPYC датчики температуры могут быть отключены в BIOS по умолчанию. Включите их в разделе Advanced → CPU Configuration → Thermal Monitoring.
Что делать, если температура GPU не отображается в nvidia-smi?
Это типичная проблема для ноутбуков с гибридной графикой (NVIDIA Optimus). Решения:
1. Переключитесь на дискретную графику через prime-select nvidia (Ubuntu).
2. Используйте __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia nvidia-smi.
3. Установите пакет nvidia-prime и перезагрузитесь.
7. Нормальные значения температуры и когда бить тревогу
Нормальные температуры зависят от модели процессора/видеокарты, системы охлаждения и нагрузки. Ниже приведены ориентировочные значения:
| Компонент | Без нагрузки | Под нагрузкой | Критическая |
|---|---|---|---|
| Intel Core i5/i7/i9 (десктоп) | 30–45°C | 60–85°C | 100°C (автоотключение) |
| AMD Ryzen 5/7/9 (десктоп) | 35–50°C | 70–90°C | 95°C |
| NVIDIA RTX 30/40 | 30–50°C | 65–85°C | 95–105°C |
| AMD RX 6000/7000 | 35–55°C | 70–90°C | 100–110°C |
| Ноутбуки (CPU/GPU) | 40–60°C | 75–95°C | 100–105°C |
Превышение критических значений ведёт к thermal throttling (автоматическому снижению частот) или аварийному отключению. Если температура под нагрузкой приближается к максимуму:
- 🧹 Очистите систему охлаждения от пыли (особенно актуально для ноутбуков).
- 🔄 Замените термопасту (для десктопов — каждые 2–3 года).
- 🌀 Проверьте работу вентиляторов:
sensorsдолжен показывать обороты (полеfanX). - 🔧 Откатите разгон (если применялся) или снизьте напряжение (
undervolting).
Для видеокарт NVIDIA температуру памяти можно проверить командой:
nvidia-smi --query-gpu=temperature.memory --format=csv,noheader
Нормальные значения — до 90–95°C. Превышение ведёт к ошибкам в играх или рендере.
FAQ: Частые вопросы по мониторингу температуры в Linux
Можно ли проверить температуру без установки дополнительных пакетов?
Да, в большинстве дистрибутивов данные датчиков доступны в папке /sys/class/thermal/. Например, температура CPU:
cat /sys/class/thermal/thermal_zone0/temp
Значение выводится в миллиградусах Цельсия (разделите на 1000). Однако этот метод не показывает температуру GPU и требует ручного поиска нужного датчика.
Почему температура GPU в nvidia-smi отличается от показаний в Windows?
Разница в 5–10°C — нормальна из-за разных алгоритмов сглаживания показаний. В Linux nvidia-smi обновляет данные реже (раз в 1–2 секунды), тогда как в Windows утилиты вроде GPU-Z опрашивают датчики чаще. Для точного сравнения используйте одинаковую нагрузку (например, тест glxgears или furmark).
Как проверить температуру на сервере без графического интерфейса?
На серверах (например, с Ubuntu Server) устанавливайте только консольные утилиты:
sudo apt install lm-sensors hddtemp
Для удалённого мониторинга настройте отправку логов по SSH или email:
echo "Температура CPU: $(sensors | grep 'Package id 0')" | mail -s "Алерт: перегрев" admin@example.com
Какие утилиты поддерживают мониторинг температуры для ARM-процессоров (Raspberry Pi, Orange Pi)?
Для ARM-устройств (например, Raspberry Pi 4/5) используйте:
vcgencmd measure_temp # Для Raspberry Pi
cat /sys/class/thermal/thermal_zone0/temp # Универсальный метод
Утилита lm-sensors на ARM работает ограничено — поддерживаются не все датчики.
Можно ли ограничить максимальную температуру для процессора?
Да, для Intel и AMD CPU можно настроить thermal throttling через BIOS или утилиты:
- Для Intel:
intel_pstate(драйвер управления частотой). Ограничьте максимальную частоту:echo 3000000 | sudo tee /sys/devices/system/cpu/cpufreq/policy*/scaling_max_freq - Для AMD: используйте
ryzenadj(для Ryzen):ryzenadj --stapm-limit=20000 --fast-limit=20000
Для видеокарт NVIDIA ограничение температуры настраивается через nvidia-settings (вкладка Thermal Settings).