这是我的系统信息:
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 sdr或ipmitool 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 sdr或ipmitool sensors 。
ipmi sensor可以用它显示的flak,尝试sdr entity (并select一个数字),
对于CPU,我认为impitool sdr entity 3可能产生更好的细节。