Hi. I installed vsphere on asus b85m-g motherboard and can't see any temperature/fan speed sensors data on health status page. There is only processor/memory/software info.
When I start smbiosDump command in console I get some unparsed sensors data:
Dumping live SMBIOS data!
BIOS Info: #0
Size: 0x00018
Vendor: "American Megatrends Inc."
Version: "2501"
Date: "07/22/2015"
Start Address: 0xf0000
ROM Size: 8192 kB
Features: 0x0d03000000013f8b9c80
PCI supported
APM supported
BIOS flashable
BIOS shadowing allowed
CD boot supported
Selectable boot supported
BIOS ROM socketed
EDD spec supported
1.2MB Floppy supported
720kB Floppy supported
2.88MB Floppy supported
Print Screen supported
8042 Keyboard Services supported
Serial Services supported
Printer Services supported
ACPI supported
USB Legacy supported
BIOS Boot Spec supported
Enable targeted content distribution
UEFI supported
System Info: #1
Manufacturer: "ASUS"
Product: "All Series"
Version: "System Version"
Serial: "System Serial Number"
UUID: 427475dc562cd98511e5861ac65337e0
Wake-up: 0x06 (Power Switch)
Board Info: #2
Manufacturer: "ASUSTeK COMPUTER INC."
Product: "B85M-G"
Version: "Rev X.0x"
Serial: "151158034404308"
Asset Tag: "To be filled by O.E.M."
Type: 0x0a (Motherboard)
Features: 0x09
Hosting Board
Replaceable
Location: "To be filled by O.E.M."
Chassis: #3
Chassis Info: #3
Manufacturer: "Chassis Manufacture"
Version: "Chassis Version"
Serial: "Chassis Serial Number"
Asset Tag: "Asset-1234567890"
Type: 0x03 (Desktop)
Bootup State: 0x03 (Safe)
Power Supply State: 0x03 (Safe)
Thermal State: 0x03 (Safe)
Security Status: 0x03 (None)
...
On Board Devices: #29
Ethernet: "Onboard Ethernet"
Sound: "Onboard Audio"
Hardware Security: #32
Power-on Password: 0x00 (Disabled)
Keyboard Password: 0x00 (Disabled)
Admin Password: 0x00 (Disabled)
Front Panel Reset: 0x00 (Disabled)
Type 32 Record: #33
Data 00: 20 14 21 00 00 00 00 00 00 00 00 00 00 00 00 00
Data 10: 00 00 00 00
Type 34 Record: #34
Data 00: 22 0b 22 00 01 01 95 02 00 00 03
String 1: "Nuvoton NCT6791D"
Type 26 Record: #35
Data 00: 1a 16 23 00 01 00 00 80 00 80 00 80 00 80 00 80
Data 10: 00 00 00 00 00 80
String 1: "LM78A"
Type 36 Record: #36
Data 00: 24 10 24 00 01 00 02 00 03 00 04 00 05 00 06 00
Type 35 Record: #37
Data 00: 23 0b 25 00 01 22 00 22 00 23 00
String 1: "To Be Filled By O.E.M."
Type 28 Record: #38
Data 00: 1c 16 26 00 01 00 00 80 00 80 00 80 00 80 00 80
Data 10: 00 00 00 00 00 80
String 1: "LM78A"
Type 36 Record: #39
Data 00: 24 10 27 00 01 00 02 00 03 00 04 00 05 00 06 00
Type 35 Record: #40
Data 00: 23 0b 28 00 01 22 00 25 00 26 00
String 1: "To Be Filled By O.E.M."
Type 27 Record: #41
Data 00: 1b 0f 29 00 26 00 12 01 00 00 00 00 00 80 01
String 1: "Cooling Dev 1"
Type 36 Record: #42
Data 00: 24 10 2a 00 01 00 02 00 03 00 04 00 05 00 06 00
Type 35 Record: #43
Data 00: 23 0b 2b 00 01 22 00 28 00 29 00
String 1: "To Be Filled By O.E.M."
Type 27 Record: #44
Data 00: 1b 0f 2c 00 26 00 12 01 00 00 00 00 00 80 00
Type 36 Record: #45
Data 00: 24 10 2d 00 01 00 02 00 03 00 04 00 05 00 06 00
Type 35 Record: #46
Data 00: 23 0b 2e 00 01 22 00 2b 00 2c 00
String 1: "To Be Filled By O.E.M."
Type 29 Record: #47
Data 00: 1d 16 2f 00 01 00 00 80 00 80 00 80 00 80 00 80
Data 10: 00 00 00 00 00 80
String 1: "ABC"
Type 36 Record: #48
Data 00: 24 10 30 00 00 80 00 80 00 80 00 80 00 80 00 80
Type 35 Record: #49
Data 00: 23 0b 31 00 01 22 00 2e 00 2c 00
String 1: "To Be Filled By O.E.M."
Type 26 Record: #50
Data 00: 1a 16 32 00 01 6a 00 80 00 80 00 80 00 80 00 80
Data 10: 00 00 00 00 00 80
String 1: "LM78A"
Type 28 Record: #51
Data 00: 1c 16 33 00 01 6a 00 80 00 80 00 80 00 80 00 80
Data 10: 00 00 00 00 00 80
String 1: "LM78A"
Type 27 Record: #52
Data 00: 1b 0f 34 00 33 00 67 01 00 00 00 00 00 80 01
String 1: "Cooling Dev 1"
Type 29 Record: #53
Data 00: 1d 16 35 00 01 6a 00 80 00 80 00 80 00 80 00 80
Data 10: 00 00 00 00 00 80
String 1: "ABC"
Type 39 Record: #54
Data 00: 27 16 36 00 01 01 02 03 04 05 06 07 00 80 a2 11
Data 10: 32 00 34 00 35 00
String 1: "To Be Filled By O.E.M."
String 2: "To Be Filled By O.E.M."
String 3: "To Be Filled By O.E.M."
String 4: "To Be Filled By O.E.M."
String 5: "To Be Filled By O.E.M."
String 6: "To Be Filled By O.E.M."
String 7: "To Be Filled By O.E.M."
Type 41 Record: #55
Data 00: 29 0b 37 00 01 85 01 00 00 00 c8
String 1: "Onboard LAN"
Type 41 Record: #56
Data 00: 29 0b 38 00 01 81 01 00 00 03 e7
String 1: "Onboard 1394"
Type 41 Record: #57
Data 00: 29 0b 39 00 01 83 01 00 00 00 10
String 1: "Onboard IGD"
Type 139 Record: #58
Data 00: 8b 36 3a 00 fe dc ba 98 76 54 32 10 04 04 32 55
Data 10: f8 00 a2 02 a1 00 40 63 06 11 44 30 03 df 40 b2
Data 20: 00 20 00 73 3c 10 08 00 00 00 00 00 00 00 00 00
Data 30: 00 00 00 00 00 01
String 1: "V1394GUID"
Memory Device: #59
Location: "ChannelA-DIMM0"
Bank: "BANK 0"
Manufacturer: "Kingston"
Serial: "68352851"
Asset Tag: "9876543210"
Part Number: "KHX1600C9D3/8GX"
Memory Array: #60
Form Factor: 0x09 (DIMM)
Type: 0x18 (DDR3)
Type Detail: 0x0080 (Synchronous)
Data Width: 64 bits
Size: 8 GB
Speed: 1600 MHz
Physical Memory Array: #60
Use: 0x03 (System memory)
Location: 0x03 (Motherboard)
Slots: 4
Max. Size: 32 GB
ECC: 0x03 (None)
Memory Device Mapping: #61
Memory Device: #59
Array Mapping: #68
Start Address: 0x0000000000000000
End Address: 0x0000000200000000
Memory Device: #62
Location: "ChannelA-DIMM1"
Bank: "BANK 1"
Manufacturer: "Kingston"
Serial: "67352E64"
Asset Tag: "9876543210"
Part Number: "KHX1600C9D3/8GX"
Memory Array: #60
Form Factor: 0x09 (DIMM)
Type: 0x18 (DDR3)
Type Detail: 0x0080 (Synchronous)
Data Width: 64 bits
Size: 8 GB
Speed: 1600 MHz
Memory Device Mapping: #63
Memory Device: #62
Array Mapping: #68
Start Address: 0x0000000400000000
End Address: 0x0000000600000000
Memory Device: #64
Location: "ChannelB-DIMM0"
Bank: "BANK 2"
Manufacturer: "Kingston"
Serial: "68352651"
Asset Tag: "9876543210"
Part Number: "KHX1600C9D3/8GX"
Memory Array: #60
Form Factor: 0x09 (DIMM)
Type: 0x18 (DDR3)
Type Detail: 0x0080 (Synchronous)
Data Width: 64 bits
Size: 8 GB
Speed: 1600 MHz
Memory Device Mapping: #65
Memory Device: #64
Array Mapping: #68
Start Address: 0x0000000200000000
End Address: 0x0000000400000000
Memory Device: #66
Location: "ChannelB-DIMM1"
Bank: "BANK 3"
Manufacturer: "Kingston"
Serial: "65353064"
Asset Tag: "9876543210"
Part Number: "KHX1600C9D3/8GX"
Memory Array: #60
Form Factor: 0x09 (DIMM)
Type: 0x18 (DDR3)
Type Detail: 0x0080 (Synchronous)
Data Width: 64 bits
Size: 8 GB
Speed: 1600 MHz
Memory Device Mapping: #67
Memory Device: #66
Array Mapping: #68
Start Address: 0x0000000600000000
End Address: 0x0000000800000000
Memory Array Mapping: #68
Memory Array: #60
Partition Width: 4
Start Address: 0x0000000000000000
End Address: 0x0000000800000000
Cache Info: #69
Designation: "CPU Internal L1"
Level: L1
State: Enabled
Mode: 0x01 (Write Back)
Location: 0x00 (Internal, Not Socketed)
ECC: 0x05 (Single-bit)
Type: 0x01 (Other)
Associativity: 0x07 (8-way Set-Associative)
Max. Size: 256 kB
Current Size: 256 kB
Supported SRAM Types: 0x0002 (Unknown)
Current SRAM Type: 0x0002 (Unknown)
Cache Info: #70
Designation: "CPU Internal L2"
Level: L2
State: Enabled
Mode: 0x01 (Write Back)
Location: 0x00 (Internal, Not Socketed)
ECC: 0x05 (Single-bit)
Type: 0x05 (Unified)
Associativity: 0x07 (8-way Set-Associative)
Max. Size: 1024 kB
Current Size: 1024 kB
Supported SRAM Types: 0x0002 (Unknown)
Current SRAM Type: 0x0002 (Unknown)
Cache Info: #71
Designation: "CPU Internal L3"
Level: L3
State: Enabled
Mode: 0x01 (Write Back)
Location: 0x00 (Internal, Not Socketed)
ECC: 0x05 (Single-bit)
Type: 0x05 (Unified)
Associativity: 0x09 (12-way Set-Associative)
Max. Size: 6144 kB
Current Size: 6144 kB
Supported SRAM Types: 0x0002 (Unknown)
Current SRAM Type: 0x0002 (Unknown)
Processor Info: #75
Payload length: 0x2a
Socket: "SOCKET 1150"
Socket Type: 0x24 (Socket LGA1155)
Socket Status: Populated
Type: 0x03 (CPU)
Family: 0x01 (Other)
Manufacturer: "Intel"
Version: "Intel(R) Core(TM) i5-4430 CPU @ 3.00GHz"
Asset Tag: "Fill By OEM"
Part Number: "Fill By OEM"
Processor ID: 0xbfebfbff000306c3
Status: 0x01 (Enabled)
Voltage: 1.2 V
External Clock: 100 MHz
Max. Speed: 3900 MHz
Current Speed: 3016 MHz
L1 Cache: #69
L2 Cache: #70
L3 Cache: #71
Core Count: #4
Core Enabled Count: #4
Thread Count: #4
Type 136 Record: #80
Data 00: 88 06 50 00 00 00
Type 131 Record: #81
Data 00: 83 40 51 00 31 00 00 00 00 00 00 00 00 00 00 00
Data 10: f8 00 50 8c 00 00 00 00 01 20 00 00 00 00 09 00
Data 20: ca 05 1e 00 00 00 00 00 c8 00 ff ff 00 00 00 00
Data 30: 00 00 00 00 66 00 00 00 76 50 72 6f 00 00 00 00
Language Info: #82
Languages: en|US|iso8859-1, fr|FR|iso8859-1, es|ES|iso8859-1, de|DE|iso8859-1, ru|RU|iso8859-5, ko|KR|unicode, ja|JP|unicode, zh|CN|unicode
Current: ru|RU|iso8859-5
I made some investigation and it looks like smbiosDump is a wrapper over a custom libhd.so.18 library.
Is there any way to make some config/description/provider or recompiled libhd to get these data parsed ?
Downloaded libhw sources. It looks like it doesn't projected to read temperature sensors.
So now I'm looking for a guide to write a esxi cim provider....
From what I know, fort data-acquisition of temperature/fan-speed/voltage values not a smis-provider, but a package called "lm_sensors" is used on ESXi. I have spent many hours trying to get this software work properly on my linux-server and the best I can say about it is: it is "rather tricky" piece of software. But first you have to check what sensor-chips are on your motherboard, and if they are supported by lm_sensors (I think VMware dropped support of some/many consumer-grade chips from lm_sensors). Try to run "sensors-detect" (I do not remember if it is included in ESXi; if not, boot some live-cd) to find if it can see some sensors on your motherboard at all. This might be easily the biggest obstacle. If not, you'd have to re-compile lm_sensors and update the version on ESXi, which might not be trivial task...
And even if your chip is supported, data you get still might not be correct (i.e. you can get negative value for fan-speed or some crazy temperature-readings with mixed F/C degrees) and this would trigger errors/warnings in health status page. The thing to do is proper lm_sensors configuration, where necessary re-calculation coefficients and/or offset-values have to be defined. This is more like trial-and-error work and might take some time. If for example you see "-11.8V" for "12V" reading, the question is: do you get proper value by applying the multiplier (-1), or by adding constant +24? Etc, etc. Really not easy, and I think VMware did this only for server-grade motherboards you can find on HCL (and not even all of them)...
There is no lm_sensors in esxi 5.5.
The sensors data could be taken from smbiosDump command (just parse some unparsed data). The only way to inject it inside vsphere/web client is a custom CIM provider.
I found a pycim middleware allowing to create python based CIM providers but can't figure out how to get it working.
I made simple python CIM provider, registered it to sfcb but got this in log:
2016-02-01T23:11:52Z sfcbd: The CIM vmw_smbsensors Provider is disabled
Stil can't get it enabled There is no documentation at all
You may be right. The last time I played with this it was ESXi 5.0. Anyway, there are hundreds of hw-monitoring chips (and specification is opened only for some of them). I can not imagine how one single universal script could work for all of them (unless it reads bios-values directly)...