Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PremDay #2 - Dmidecode and hardware manufacturers

Avatar for PremDay PremDay
April 08, 2025

PremDay #2 - Dmidecode and hardware manufacturers

Jean Delvare from Suse exposes the principles of Dmidecode and why hardware manufacturers should contribute to such project.

Avatar for PremDay

PremDay

April 08, 2025
Tweet

More Decks by PremDay

Other Decks in Technology

Transcript

  1. What is Dmidecode • User-space implementation of the SMBIOS specification

    – Published by the DMTF, updated on a yearly basis – Describes the DMI table, binary data provided by the firmware – Contains records each describing a system component (firmware and hardware) • Written by Alan Cox in 2000, maintained by Jean Delvare since 2002 • There’s also a DMI table decoder in the Linux kernel, for drivers • NOT limited to Desktop systems! • Plain-text output, JSON output is coming
  2. Example of (decoded) DMI record Handle 0x0012, DMI type 8,

    9 bytes Port Connector Information Internal Reference Designator: J1300 Internal Connector Type: None External Reference Designator: RTL8153 External LAN External Connector Type: RJ-45 Port Type: Network Port • Many other types exist, describing the firmware, enclosure, CPU, cache memory, memory modules, internal slots, etc. • More standard types and enumerated values are added by the DMTF over time as the hardware evolves
  3. Another kind of DMI record Handle 0x002E, DMI type 135,

    19 bytes OEM-specific Type Header and Data: 87 13 2E 00 54 50 07 02 42 41 59 20 49 2F 4F 20 04 00 00 • OEM-specific types (128-255) are NOT specified by the DMTF • They typically contain information added by the hardware manufacturers for their own use – Data needed by kernel drivers – Data needed for system management or inventory • Can’t be decoded without the help of the hardware manufacturer
  4. A decoded OEM-specific DMI record Handle 0xD100, DMI type 209,

    36 bytes HP BIOS PXE NIC PCI and MAC Information NIC 1: PCI device 03:00.0, MAC address 00:16:35:C6:13:42 NIC 2: PCI device 05:00.0, MAC address 00:16:35:C6:13:5E NIC 3: PCI device 07:04.0, MAC address 00:16:35:C6:41:8B NIC 4: PCI device 07:04.1, MAC address 00:16:35:C6:41:8C • With information or contribution from the hardware manufacturer, we can decode the record • Provides detailed hardware information beyond the standard DMTF types • Incredibly valuable for scaler companies handling a large number of systems – To validate the hardware they receive without opening the enclosures – To locate a component which needs to be replaced
  5. Why contribute to dmidecode? • Let your customers make the

    best use of the systems they bought – The information is in the DMI table because your teams need it for their proprietary tools – If your management tools need it, open-source management tools need it too – Better let your customers choose which management tool they prefer, they know better! • A decision factor when choosing from which hardware manufacturer to buy
  6. Hall of fame • Huge thanks to Hewlett Packard Enterprise

    (HPE) for their continuous contributions • First contribution in January 2007 from John Cagle • 43 commits from Jerry Hoemann since September 2017 • Now supporting 20 HPE-specific DMI record types
  7. An HPE OEM record before... Handle 0x00B2, DMI type 242,

    62 bytes OEM-specific Type Header and Data: F2 3E B2 00 A2 00 01 38 25 00 03 00 00 00 00 7F 4D 1D 00 B2 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 03 00 01 02 03 04 03 00 60 C5 1F BF 01 00 00 00 02 00 00 01 00 3F 00 3F 00 Strings: 53 37 30 52 4E 45 30 54 39 30 30 58 58 58 00 S70RNE0T900XXX 56 4F 30 30 31 39 32 30 4B 59 44 4D 54 00 VO001920KYDMT 48 50 4B 31 00 HPK1 4E 56 4D 65 20 44 72 69 76 65 20 32 30 00 NVMe Drive 20
  8. … and after Handle 0x00B2, DMI type 242, 62 bytes

    HPE ProLiant Hard Drive Inventory Record Hard Drive Type: NVMe SSD ID: 3002538 Capacity: 1788 GB Poweron: 946 hours Power Wattage: 25 W Form Factor: 2.5" form factor Health Status: OK Serial Number: S70RNE0T900XXX Model Number: VO001920KYDMT Firmware Revision: HPK1 Location: NVMe Drive 20 Encryption Status: Not Supported Block Size: 512 bytes Negotiated Speed: 63 Gbit/s Capable Speed: 63 Gbit/s
  9. How to contribute to dmidecode Project is hosted on Savannah

    • You can post patches directly there (web interface) • We have a git tree, you can clone it and send pull requests • We have a mailing list, you can post patches for review • You can provide documentation (no NDA) and let me write the code Whatever works for you!