是否有用于访问模块上的 DDR4 DRAM 温度传感器的 Linux 控制台工具?
答案1
DDR4 DRAM 具有用于访问 SPD EEPROM 的新驱动程序。与前几代 SDRAM 不同,热传感器集成在 SPD 中。如果您有合适的驱动程序 (EEPROM_EE1004),则decode-dimms
可以将 SPD 信息从驱动程序提供的文件中读取到 sysfs“文件”。如果 SPD 中存在兼容的热传感器,则它会显示:
Thermal Sensor TSE2004 compliant
不幸的是,我没有找到一种(简单的)方法来读取温度,也没有在提到的驱动程序中发现任何尝试(它只是读取 SPD 中的页面,信息可能存在但未被解码 dimms 解码)。
答案2
一手动方法用于命令行和传感器由于更加独立(JEDEC 标准和 42.4 兼容芯片),Linux 上的命令支持更加灵活jc42 内核模块对于 SMBus 规范的符合性,严格控制在 25-35ms 的延迟范围内:
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
应该输出内存温度值。
对于合理的温度值验证:
传感器的温度范围似乎从-40°C(-55°C)到125°C,并且符合JEDEC规范(JEDECJC-42.4内存模块温度传感器组件规格)支持 -40°C 至 85°C 的合适输出。一些 DRAM 内存制造商支持高达 95°C 的传感器范围上限。精度至少为±3°C(范围从 -40°C 至 120°C,针对更窄范围进行了改进)并且 50% 热调节的响应时间约为 1.0-1.5 秒,100% 热响应最长可达 4-5 秒。