Supermicro X8DT3上lm_sensors报告温度错误?

这是我的系统信息:

System Information Manufacturer: Supermicro Product Name: X8DT3 Version: 1234567890 Serial Number: 1234567890 UUID: 3EFC338F-2038-F257-3B5E-0025902BF938 Wake-up Type: Power Switch SKU Number: To Be Filled By OEM Family: 1234567890 

sensors-detect 输出的片段:

 Now follows a summary of the probes I have just done. Just press ENTER to continue: Driver `adm1021' (should be inserted): Detects correctly: * Bus `SMBus I801 adapter at 0400' Busdriver `i2c-i801', I2C address 0x18 Chip `max1617' (confidence: 6) * Bus `SMBus I801 adapter at 0400' Busdriver `i2c-i801', I2C address 0x19 Chip `max1617' (confidence: 6) * Bus `SMBus I801 adapter at 0400' Busdriver `i2c-i801', I2C address 0x1a Chip `max1617' (confidence: 6) #----cut here---- # I2C adapter drivers modprobe i2c-i801 # Chip drivers modprobe adm1021 /usr/bin/sensors -s #----cut here---- 

这些模块被加载到正在运行的内核中:

 # lsmod | grep i2c i2c_dev 43977 0 i2c_i801 41813 0 i2c_ec 38593 1 sbs i2c_core 56641 4 adm1021,i2c_dev,i2c_i801,i2c_ec # lsmod | grep adm adm1021 47857 0 hwmon 36553 2 adm1021,power_meter i2c_core 56641 4 adm1021,i2c_dev,i2c_i801,i2c_ec 

sensors返回不正确的CPU温度:

 # sensors max1617-i2c-0-18 Adapter: SMBus I801 adapter at 0400 Board Temp: +0°C (low = +16°C, high = +66°C) CPU Temp: +2°C (low = +0°C, high = +0°C) max1617-i2c-0-19 Adapter: SMBus I801 adapter at 0400 Board Temp: +0°C (low = +16°C, high = +66°C) CPU Temp: +2°C (low = +0°C, high = +0°C) max1617-i2c-0-1a Adapter: SMBus I801 adapter at 0400 Board Temp: +0°C (low = +16°C, high = +66°C) CPU Temp: +2°C (low = +0°C, high = +0°C) 

这可能是什么原因?


回复@Fox:

据我所知,大多数SPMC系统有LM *芯片或华邦(W83 *)芯片之一。 您可以尝试检查,或者尝试扫描传感器中的“ISA”总线。

我这样做了:

 Do you want to scan the ISA I/O ports? (YES/no): Probing for `National Semiconductor LM78' at 0x290... No Probing for `National Semiconductor LM78-J' at 0x290... No Probing for `National Semiconductor LM79' at 0x290... No Probing for `Winbond W83781D' at 0x290... No Probing for `Winbond W83782D' at 0x290... No 

sensors-detect输出中有一条有趣的线:

 Found `Winbond W83627HF/F/HG/G Super IO Sensors' (but not activated) 

顺便说一句。 如果你已经正确地检测并加载了所有的模块,你还应该看到coretemp传感器用于监视CPU温度。

但是从输出中可以看出,没有coretemp传感器。

如果您碰巧拥有-F版本的主板(IPMI版本),则还有另一种可能性来监控临时/电压/转速。 那么最简单和最可靠的方法(至less对我来说)是使用ipmitool sdripmitool sensors

ipmiutil sensor ,我得到了未指定的CPU温度:

 # ipmiutil sensor 0007 SDR Full 01 34 20 a c0 snum 01 CPU1 Temp = 00 Warn-lo 0.00 unspecified 0008 SDR Full 01 34 20 a c0 snum 02 CPU2 Temp = 00 OK 0.00 unspecified 0009 SDR Full 01 36 20 a 01 snum 03 System Temp = 1c OK 28.00 degrees C # ipmitool sensor CPU1 Temp | 0x0 | discrete | 0x0100| na | na | na | na | na | na CPU2 Temp | 0x0 | discrete | 0x0000| na | na | na | na | na | na System Temp | 28.000 | degrees C | ok | -9.000 | -7.000 | -5.000 | 75.000 | 77.000 | 79.000 

回复@thinice:

我用ipmitool sdr得到了同样的结果:

 # ipmitool sdr CPU1 Temp | 0 unspecified | ok CPU2 Temp | 0 unspecified | ok System Temp | 26 degrees C | ok 

ipmitool sdr entity 3返回任何内容。

那么我不是完全回答你的问题,而是从我的SPMC服务器的经验,lm_sensors通常行为怪异,没有他们的专有SuperDoctor。 但是,你甚至可能有一个错误的司机。

据我所知,大多数SPMC系统有LM *芯片或华邦(W83 *)芯片之一。 您可以尝试检查,或者尝试扫描传感器中的“ISA”总线。

顺便说一句。 如果你已经正确地检测并加载了所有的模块,你还应该看到coretemp传感器用于监视CPU温度。

如果您碰巧拥有-F版本的主板(IPMI版本),则还有另一种可能性来监控临时/电压/转速。 那么最简单和最可靠的方法(至less对我来说)是使用ipmitool sdripmitool sensors

ipmi sensor可以用它显示的flak,尝试sdr entity (并select一个数字),

对于CPU,我认为impitool sdr entity 3可能产生更好的细节。