LINUX.ORG.RU

Есть ли альтернативы lm-sensors? Или как его заставить работать?

 


0

2

Столкнулся с тем, что на некоторых серверах lm-sensors утилита не работает. Много читал, пробовал, всё без толку... Систему использую Virtuozzo Linux (это CentOS7 с пропатченным ядром). Заметил, что проблема в основном (у меня) на процессорах AMD, что на серверных вариантах, что на десктопном железе (там Ryzen 5600G).

Есть какие-то другие альтернативы мониторить температуру процессора на линуксе, кроме как lm-sensors? Я так понимаю, что эта утилита загружает драйвер. Если драйвера нет, то и результата нет. Или может более новое ядро надо для новых процессоров AMD? У меня 3.10.0-1160.42.2.vz7.184.10. lm-sensors смотрю что давно не обновлялся. Если кто готов поразбираться совместно со мной по поему случаю, то выложу все нужные данные.

Утилита lm-sensors использует ядерные драйверы для доступа к датчикам оборудования. Точнее в вашем ядре должны быть драйверы для сбора информации с оборудования. Если у вас старое ядро, а оборудование новое, то проблема не в lm-sensors, а в вашем старом ядре.

Используйте либо новое ядро, либо старое оборудование.

kostik87 ★★★★★
()

lm-sensors работает через драйвера, так что его самого обновлять смысла нет.

Если не показывает температуру CPU/GPU - нужно апгрейдить ядро. драйвер k10temp.

3.10.0-1160.42.2.vz7.184.10 - ХЗ чему соответствут в нормальных ядрах. Ненавижу эти долбанутый дистрибутивы с древними ядрами и миллионом патчей.

Теоретически можно сделать backport k10temp из более свежих ядер. или взять на гитхабе zenpower3

Но для этого нужно уметь собирать модули.

vel ★★★★★
()

«драйверы», а точнее модули для чипов мониторинга и встроенных сенсоров являются частью ядра. Так же данные от сенсоров могут поступать и через ACPI, этим тоже занимается ядро. Пакет lm-sensors содержит утилиту sensors-detect, которая в интерактивном режиме просканирует шины в поисках чипов мониторинга и встроенных датчиков, а так же поможет сочинить конфиг для загрузки нужных тебе модулей мониторинга. Если получилось так что у тебя железо и процессор новее чем ядро дистрибутива — нужно обновить ядро, или поставить более свежую версию дистрибутива с актуальным ядром.

Затем уже утилита sensors будет показывать значения, естественно если нужные модули загружены. У утилиты sensors есть конфиг /etc/sensors.conf, который нужен для того чтобы сделать коррекцию или калибровку показаний, дать сенсорам «человеческие» имена, поотключать ненужные или показывающие бред индикаторы. В конфиге уже прописаны настройки для части широко известных чипов и датчиков, но никто не мешает настроить более красиво по вкусу самостоятельно.

В процессорах Интел и АМД температурные сенсоры встроены в сам камень уже десяток с лишним лет как, полностью автономны, их работа не зависит от системы мониторинга самой материнской платы, ядром они естественно поддерживаются чрезвычайно давно с момента их появления, sensors-detect их найдёт и какой модуль грузить скажет.

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 1)

Эта утилита только читает файлы в /sys и выводит в красивом виде. И да, если ядро через sys температуру не сообщит то он её и не покажет.

Смотри /sys/class/hwmon/hwmonX/name у меня там k10temp на процовом датчике.

firkax ★★★★★
()
Ответ на: комментарий от Radjah

Не помогает. Распространённый совет. Пробовал на разных машинах, результат такой в конце:

Sorry, no sensors were detected. Either your system has no sensors, or they are not supported, or they are connected to an I2C or SMBus adapter that is not supported. If you find out what chips are on your board, check https://hwmon.wiki.kernel.org/device_support_status for driver >status.

По ссылке ходил, список читал. Да, там нет новых серий AMD совсем.

Rommeras
() автор топика
Ответ на: комментарий от kostik87

Понятно. Судя и по другим комментариям надо попробовать более новую систему накатить или отличную от той, что я использую. Правда толку, мне-то надо на моём гипервизоре всё равно.

Rommeras
() автор топика
Ответ на: комментарий от vel

У меня в системе есть драйвер k10temp.ko.xz в каталоге /lib/modules/3.10.0-1160.42.2.vz7.184.10/kernel/drivers/hwmon (и много других ещё). Но при вызове modinfo coretemp пишется, что используется coretemp.ko.xz (а он для интела только, я так понимаю). На zenpower3 я натыкался вроде, но не разбирался.

Rommeras
() автор топика
Ответ на: комментарий от firkax

Смотри /sys/class/hwmon/hwmonX/name у меня там k10temp на процовом датчике

На сервера с AMD, в каталоге /sys/class/hwmon/hwmon0/ почти ничего, по сравнению с сервером на Intel, где температуры показывает. На сервере с Intel как раз по датчикам много файлов в каталоге /sys/class/hwmon/hwmon0/ (temp2,temp3…). В name там coretemp. А на сервере с AMD в файле name написано asus. Это где десктопный 5600G.

А на сервере, который совсем правильный сервер (с серверной платой и процессором AMD Epyc 7313) там в каталоге /sys/class/hwmon пусто.

Rommeras
() автор топика
Ответ на: комментарий от Rommeras

А на сервере с AMD в файле name написано asus

Это не то. Это датчики материнки может быть или вообще корпуса.

/sys/class/hwmon/hwmon1/ посмотри или ещё какие номера. Ну или драйвер k10temp не подгружен. Или может ещё какой другой.

Но при вызове modinfo coretemp пишется, что используется coretemp.ko.xz (а он для интела только, я так понимаю). На zenpower3 я натыкался вроде, но не разбирался.

А ты modinfo k10temp делай. А лучше modprobe k10temp.

firkax ★★★★★
()
Ответ на: комментарий от vel

Как минимум нужно выполнить «modprobe k10temp»

Делал. Молча выполняется, но команда sensors не даёт результата. sensors-detect повторно выполнял после подключения драйвера.

Rommeras
() автор топика
Ответ на: комментарий от firkax

/sys/class/hwmon/hwmon1/

только hwmon0 есть.

modinfo k10temp

выдаёт нормально всё

filename: /lib/modules/3.10.0-1160.42.2.vz7.184.10/kernel/drivers/hwmon/k10temp.ko.xz license: GPL author: Clemens Ladisch <clemens@ladisch.de> description: AMD Family 10h+ CPU core temperature monitor retpoline: Y rhelversion: 7.9 srcversion: E9C9DC5AC3DDEECF1CAC72F alias: pci:v00001022d00001493sv*sd*bc*sc*i* alias: pci:v00001022d000015EBsv*sd*bc*sc*i* alias: pci:v00001022d00001463sv*sd*bc*sc*i* alias: pci:v00001022d00001583sv*sd*bc*sc*i* alias: pci:v00001022d00001533sv*sd*bc*sc*i* alias: pci:v00001022d00001573sv*sd*bc*sc*i* alias: pci:v00001022d0000141Dsv*sd*bc*sc*i* alias: pci:v00001022d00001403sv*sd*bc*sc*i* alias: pci:v00001022d00001603sv*sd*bc*sc*i* alias: pci:v00001022d00001703sv*sd*bc*sc*i* alias: pci:v00001022d00001303sv*sd*bc*sc*i* alias: pci:v00001022d00001203sv*sd*bc*sc*i* depends: intree: Y vermagic: 3.10.0-1160.42.2.vz7.184.10 SMP mod_unload modversions signer: Virtuozzo kernel signing key sig_key: 8A:2A:BB:B6:CB:10:70:EA:82:44:A4:AB:3D:31:58:A9:A2:1C:25:25 sig_hashalgo: sha256 parm: force:force loading on processors with erratum 319 (bool)

modprobe k10temp

Не помогает, отписал в комментарии выше.

Rommeras
() автор топика
Ответ на: комментарий от vel

А k10temp имеет смысл? А то в документации ядра написано:

Please note that it is defined as a relative value; to quote the AMD manual:

Tctl is the processor temperature control value, used by the platform to control cooling systems. Tctl is a non-physical temperature on an arbitrary scale measured in degrees. It does _not_ represent an actual physical temperature like die or case temperature. Instead, it specifies the processor temperature relative to the point at which the system must supply the maximum cooling for the processor's specified maximum case temperature and maximum thermal power dissipation.

mky ★★★★★
()