Что понадобится
- Права администратора (root) в системе Linux.
- Установленный пакет
lm_sensorsдля работы с системными датчиками. - Дополнительный пакет
i2c-toolsдля сканирования шин и работы с памятью.
Мониторинг аппаратных параметров строится на взаимодействии ядра операционной системы и специализированных микросхем на системной плате. Библиотека libsensors унифицирует доступ к этой информации, используя стандартизированный интерфейс sysfs. Подсистема hwmon создает отдельные каталоги для каждого чипа мониторинга, где показатели фиксируются в виде обычных файлов с числовыми значениями.
1. Установка пакетов мониторинга
- Откройте терминал на вашем компьютере с установленной операционной системой Linux.
- Выполните команду для загрузки компонентов
lm_sensorsчерез стандартный менеджер пакетов дистрибутива, например, для Arch Linux:
sudo pacman -S lm_sensors
- Дождитесь окончания процесса инсталляции. После этого потребуется инициализировать процесс поиска доступных контроллеров на плате, чтобы ядро ОС смогло корректно с ними взаимодействовать.
2. Автоматическое определение датчиков
- Запустите утилиту поиска конфигураций от имени суперпользователя:
sudo sensors-detect
- Мастер последовательно опросит различные шины, южные мосты и контроллеры процессора. Соглашайтесь с предлагаемыми вариантами по умолчанию, нажимая клавишу ввода. В конце работы утилита предложит сохранить конфигурацию в системный файл
/etc/conf.d/lm_sensors, что позволит автоматически подгружать необходимые модули ядра при каждом включении компьютера.
3. Чтение базовых показателей температуры
- Убедитесь, что служба опроса оборудования активирована после успешного завершения сканирования.
- Введите в командной строке Как узнать температуру процессора и памяти в Linux запрос для вывода текущих метрик:
sensors
- Изучите список найденных чипов, включая цифровые термодатчики процессора вроде драйвера coretemp и контроллеры ввода-вывода на системной плате. Вы увидите текущие значения температуры, а также пороговые критические уровни, при превышении которых система может подавать аварийные сигналы Почему шумит кулер в компьютере и что с этим делать.
4. Добавление датчиков температуры модулей памяти DIMM
Некоторые материнские платы выводят данные о нагреве оперативной памяти через шину управления SMBus. Для их обнаружения потребуется установить пакет i2c-tools и активировать соответствующий модуль ядра.
- Загрузите модуль взаимодействия с шиной:
sudo modprobe i2c_dev
- Выведите список доступных шин в системе, чтобы определить порт, к которому подключена память:
sudo i2cdetect -l
- Определив номер шины, например
i2c-0, просканируйте ее на наличие подключенных устройств:
sudo i2cdetect -y 0
Стандартные микросхемы SPD находятся по адресу 0x50, а температурные датчики памяти обычно располагаются по адресам 0x18 и 0x19 на той же шине. Чтобы операционная система начала считывать эти данные, требуется задействовать специальный модуль ядра jc42 и привязать его к конкретным адресам через файловую систему sysfs:
- Выполните инициализацию через команды:
sudo modprobe jc42
echo jc42 0x18 | sudo tee /sys/bus/i2c/devices/i2c-0/new_device
echo jc42 0x19 | sudo tee /sys/bus/i2c/devices/i2c-0/new_device
После выполнения этой процедуры повторный вызов команды sensors отобразит температурные показатели планок оперативной памяти с указанием порогов срабатывания тревоги.
Если не получилось
- Команда sensors выводит пустой список или сообщает об отсутствии устройств. Убедитесь, что служба
lm_sensorsзапущена, а необходимые модули ядра загружены в систему. Попробуйте повторно запуститьsudo sensors-detect. - Не отображается температура оперативной памяти. Проверьте с помощью
i2cdetect, поддерживают ли ваши модули стандарта DIMM передачу данных по шине SMBus и правильно ли указан адрес чипа при его инициализации в sysfs. - Некоторые значения напряжений или температур выглядят некорректно. Ряд материнских плат требует индивидуальной калибровки коэффициентов в конфигурационных файлах libsensors из-за особенностей разводки резисторов на конкретной модели платы.




