Опции для доступа к датчикам температуры памяти DDR4 DRAM?

Вопрос или проблема

Существуют ли инструменты консоли Linux для доступа к датчикам температуры DDR4 DRAM на модуле?

DDR4 DRAM имеют новый драйвер для доступа к SPD EEPROM. Термодатчики интегрированы в SPD (в отличие от предыдущих поколений SDRAM). Если у вас установлен правильный драйвер (EEPROM_EE1004), decode-dimms может читать информацию SPD из файла, предоставленного драйвером в “файл” sysfs. Если в SPD присутствует соответствующий термодатчик, он сообщает:

Термодатчик                                   Совместим с TSE2004

К сожалению, я не нашел (простого) способа для считывания температуры, и не нашел никаких попыток в упомянутом драйвере (он просто считывает страницы из SPD, хотя информация может быть там, но не декодирована decode-dimms).

Один ручной подход для поддержки командной строки и команды sensors в Linux является более универсальным, благодаря более независимому (стандартам JEDEC и чипам, совместимым с 42.4) модулю ядра jc42 для соответствия спецификациям SMBus в строгом диапазоне задержки низких 25-35 мс:

modprobe i2c-dev  
i2cdetect -l 

выберите адаптер I2C™/SMBus™ для чипсета, например, smbus 1

i2cdetect -y 1

выберите базовый адрес для датчика температуры DRAM, например, 0x18 или 0x19 или 0x1a

modprobe jc42  
echo jc42 0x18 > /sys/bus/i2c/devices/i2c-1/new_device

выберите номер интерфейса hwmon и напечатайте значение(я) температуры
(все доступные температуры от датчиков)

cat /sys/class/hwmon/hwmon*/device/hwmon/hwmon*/temp*_input

Затем дополнительно

sensors

должен выводить значения температуры памяти.

Для проверки plausibility значений температуры:
Диапазоны температур для датчиков кажутся варьирующимися от -40°C(-55°C) до 125°C, а спецификация JEDEC (JEDEC JC-42.4 Спецификация компонентов датчиков температуры модулей памяти) поддерживает подходящий выход от -40°C до 85°C. Некоторые производители памяти DRAM поддерживают предел верхнего диапазона датчика до 95°C. Точность составляет не менее ±3°C (диапазон от -40°C до 120°C, улучшенный для более узких диапазонов) и время отклика для 50% тепловой настройки составляет около 1.0-1.5с и до 4-5 секунд для 100% теплового ответа.

.

Ответ или решение

Варианты доступа к датчикам температуры памяти DDR4 DRAM

Доступ к датчикам температуры модулей DDR4 DRAM в Linux можно реализовать с использованием ряда командных инструментов и драйверов. Ниже приведены основные шаги, позволяющие эффективно получить информацию о температуре памяти.

1. Использование драйвера SPD EEPROM

DDR4 DRAM предоставляет новый драйвер для доступа к EEPROM SPD. Датчики температуры, интегрированные в SPD, доступны при наличии соответствующего драйвера (EEPROM_EE1004). Важно, чтобы в системе был установлен драйвер, который может обрабатывать данные SPD.

Команда decode-dimms может использоваться для чтения информации из SPD, которая предоставляется через файл в файловой системе sysfs. Если в SPD присутствует совместимый термодатчик, это будет подтверждено сообщением:

Термодатчик                                   Соответствует TSE2004

Однако на данный момент нет простого способа получить данные о температуре, так как драйвер не декодирует эту информацию. Необходимо использовать альтернативные методы.

2. Подход вручную через lm_sensors

Одним из вариантов, позволяющим получить данные о температуры модулей DDR4, является использование инструмента lm_sensors, который обеспечивает встроенную поддержку датчиков температуры.

Шаги по настройке:
  1. Загрузка необходимых модулей:

    modprobe i2c-dev
    i2cdetect -l
  2. Определение I2C-адаптера для чипсета. Например, если адаптер имеет номер 1:

    i2cdetect -y 1
  3. Открытие базового адреса для датчиков температуры DRAM. Часто используются адреса, такие как 0x18, 0x19 или 0x1a:

    modprobe jc42
    echo jc42 0x18 > /sys/bus/i2c/devices/i2c-1/new_device
  4. Получение температурных значений:
    Для вывода всех доступных температур из датчиков можно использовать следующую команду:

    cat /sys/class/hwmon/hwmon*/device/hwmon/hwmon*/temp*_input
  5. Использование команды sensors:
    После выполнения предыдущих шагов команда sensors покажет значения температуры памяти:

    sensors

3. Проверка достоверности температурных значений

Температурные диапазоны для датчиков температуры варьируются от -40°C до 125°C, согласно спецификации JEDEC (JC-42.4), где поддерживаемая температура составляет от -40°C до 85°C. Некоторые производители DRAM могут поддерживать верхний предел температуры до 95°C. Точность измерений составляет не менее ±3°C (в диапазоне от -40°C до 120°C), с временем отклика около 1-1.5 секунд для 50% изменения температуры и до 4-5 секунд для 100% изменения.

Заключение

Для доступа к датчикам температуры модулей памяти DDR4 в Linux можно использовать комбинацию драйверов и командных инструментов, таких как lm_sensors и decode-dimms. Убедитесь, что соответствующие модули загружены, и следите за документацией для получения актуальных значений.

Оцените материал
Добавить комментарий

Капча загружается...