Support SMBIOS 3.4 and 3.5 in Jammy for Hardware Enablement

Bug #1986852 reported by Mauricio Faria de Oliveira
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
dmidecode (Ubuntu)
Fix Released
Undecided
Unassigned
Jammy
Fix Released
Medium
Mauricio Faria de Oliveira
Kinetic
Fix Released
Undecided
Unassigned

Bug Description

[Impact]

 * Support the SMBIOS 3.4 and 3.5 specifications in Jammy
   to enable new hardware in LTS release per SRU policy [1].

 * Backport of 15 relatively simple patches from dmidecode 3.4
   in Kinetic to dmidecode 3.3 in Jammy (vs. 49 for full version).

 * Patches are detailed below.

[Test Plan]

 * Check no regressions on current systems with SMBIOS < 3.4,
   i.e., no output changes in text and binary form.

    $ sudo dmidecode > old.txt 2>&1
    $ sudo dmidecode --dump-bin old.bin

    $ apt install dmidecode # modified package

    $ sudo dmidecode > new.txt 2>&1
    $ sudo dmidecode --dump-bin new.bin

    $ cmp old.txt new.txt; echo $?
    0

    $ cmp old.bin new.bin; echo $?
    0

 * Check for expected output on new systems with SMBIOS >= 3.4.

   $ diff old.txt new.txt
   ...
   < # SMBIOS implementations newer than version 3.3.0 are not
   < # fully supported by this version of dmidecode.
   ...
   < Unknown Type
   < Header and Data:
   ...
   > Firmware Inventory Information
   > Firmware Component Name: BMC Firmware
   ...
   < Type: <OUT OF SPEC>
   ---
   > Type: DDR5
   ...
   < Upgrade: <OUT OF SPEC>
   ---
   > Upgrade: Socket LGA4677
   ...
   < Unknown Type
   < Header and Data:
   ...
   > Firmware Inventory Information
   > Firmware Component Name: BIOS Firmware

[Where problems could occur]

 * Mostly the patches add support for new bits/codes/strings,
   so there's no changes expected for the old spec support,
   but some patches lightly change things a little bit (but
   only one should change a string, as far as I could tell).

 * So, theoretically, parsers that expect a very precise
   and constant format/string might have issues *in case*
   the changes introduced any. (But such tools maybe are
   already using the binary form anyway, for more detail.)

[Other info]

  * No additional fixes upstream to the included patches.
    (The git repo's commits have the 'Fixes:' tag usage.)
    There's only 2 more commits after dmidecode-3-4 now.

[Original Description]

Backport the support for SMBIOS 3.4 and 3.5 specifications
in Ubuntu Kinetic (dmidecode 3.4) to Jammy (dmidecode 3.3)
to enable new hardware in the LTS release per SRU policy [1].

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Other_safe_cases

[Patchset Details]

Patches 1-8,10-11 are for SMBIOS 3.4;
Patches 9,12-14 are for SMBIOS 3.5;
Patch 15 updates supported version.

01: SMBIOS 3.4: add new codes/strings for memory device type
02: SMBIOS 3.4: add new codes/strings for processor socket
03: SMBIOS 3.4: add new codes/strings for slot characteristics
04: SMBIOS 3.4: add new codes/strings for memory device speed [string backward-compatible changes]
05: SMBIOS 3.4: add new codes/strings for slot types [changes append '(U.2)' to 'PCI Express {2,3} SFF-8639' per spec]
06: SMBIOS 3.4: add new codes/strings for processor characteristics
07: SMBIOS 3.4: fix for patches 5-6
08: SMBIOS 3.4: add support for ARM64 Processor ID field based on arch call [string backward-compatible changes]

09: SMBIOS 3.5: add new codes/strings for processor socket
10: SMBIOS 3.4* prep for patch 11 [string backward-compatible changes]
11: SMBIOS 3.4* add new codes/strings for slot types [string backward-compatible changes]
12: SMBIOS 3.5: add new codes/strings for manufacturing mode, pointing devices, onboard devices; introduce slot height
13: SMBIOS 3.5: introduce firmware inventory information (characteristics, state, components
14: SMBIOS 3.5: add new codes/strings for dmi types
15: SMBIOS 3.5: set suppported smbios version to 3.5 (straight from 3.3)

Changed in dmidecode (Ubuntu Jammy):
status: New → Invalid
Changed in dmidecode (Ubuntu Kinetic):
status: New → In Progress
assignee: nobody → Mauricio Faria de Oliveira (mfo)
tags: added: sts
description: updated
Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :

Packages built successfully on supported architectures with
-updates/-proposed on ppa:mfo/build & ppa:mfo/build-proposed.

Uploaded to jammy. Debdiff attached for reference.

description: updated
Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :
tags: added: se-sru-sponsor-mfo
tags: added: patch
Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Mauricio, or anyone else affected,

Accepted dmidecode into jammy-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/dmidecode/3.3-3ubuntu0.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-jammy to verification-done-jammy. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-jammy. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in dmidecode (Ubuntu Jammy):
status: Invalid → Fix Committed
tags: added: verification-needed verification-needed-jammy
Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :

Verification done on jammy-proposed.

1) a system/hardware vendor tested and confirmed that:
   - systems with SMBIOS 3.5 report the new fields as expected;
   - systems with SMBIOS < 3.4 keep the old fields as expected.

2) I tested on several physical and virtual machines, and:
   - systems with SMBIOS < 3.4 keep the old fields as expected.
     (see details below and in next comment.)

Physical machines:
- Supermicro AS -2024US-TRT
- Dell PowerEdge R730xd
- HP ProLiant SL390s G7
- HP ProLiant DL360e Gen8
- HP ProLiant DL360 Gen9

Virtual machines:
- Multipass VM
- LXD VM
- OpenStack VM

cheers,
Mauricio

Changed in dmidecode (Ubuntu Kinetic):
status: In Progress → Fix Released
assignee: Mauricio Faria de Oliveira (mfo) → nobody
Changed in dmidecode (Ubuntu Jammy):
assignee: nobody → Mauricio Faria de Oliveira (mfo)
importance: Undecided → Medium
description: updated
tags: added: verification-done verification-done-jammy
removed: verification-needed verification-needed-jammy
Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :
Download full text (6.4 KiB)

Verification done on jammy-proposed.

1) a system/hardware vendor tested and confirmed that:
   - systems with SMBIOS 3.5 report the new fields as expected;
   - systems with SMBIOS < 3.4 keep the old fields as expected.

2) I tested on several physical and virtual machines, and:
   - systems with SMBIOS < 3.4 keep the old fields as expected.
     (see details below and in next comment.)

Physical machines:
- Supermicro AS -2024US-TRT
- Dell PowerEdge R730xd
- HP ProLiant SL390s G7
- HP ProLiant DL360e Gen8
- HP ProLiant DL360 Gen9

Virtual machines:
- Multipass VM
- LXD VM
- OpenStack VM

cheers,
Mauricio

...

Summary and Text/Binary output comparison:
---

Supermicro AS -2024US-TRT

 + grep ^SMBIOS .* present. dmidecode.txt.3.3-3
 SMBIOS 3.2.0 present.
 + grep -A2 ^System Information dmidecode.txt.3.3-3
 System Information
  Manufacturer: Supermicro
  Product Name: AS -2024US-TRT
 + grep -A1 ^BIOS Information dmidecode.txt.3.3-3
 BIOS Information
  Vendor: American Megatrends Inc.

 + md5sum dmidecode.txt.3.3-3 dmidecode.txt.3.3-3ubuntu0.1 dmidecode.bin.3.3-3 dmidecode.bin.3.3-3ubuntu0.1
 88865ff7234bd4a979579a9d6e9cd7cd dmidecode.txt.3.3-3
 88865ff7234bd4a979579a9d6e9cd7cd dmidecode.txt.3.3-3ubuntu0.1
 8d4c657ea8ab82357852322ad16420af dmidecode.bin.3.3-3
 8d4c657ea8ab82357852322ad16420af dmidecode.bin.3.3-3ubuntu0.1

Dell PowerEdge R730xd

 + grep ^SMBIOS .* present. dmidecode.txt.3.3-3
 SMBIOS 2.8 present.
 + grep -A2 ^System Information dmidecode.txt.3.3-3
 System Information
  Manufacturer: Dell Inc.
  Product Name: PowerEdge R730xd
 + grep -A1 ^BIOS Information dmidecode.txt.3.3-3
 BIOS Information
  Vendor: Dell Inc.
 + md5sum dmidecode.txt.3.3-3 dmidecode.txt.3.3-3ubuntu0.1 dmidecode.bin.3.3-3 dmidecode.bin.3.3-3ubuntu0.1
 82d9b0eb5cbc8212f512e499b654a8f3 dmidecode.txt.3.3-3
 82d9b0eb5cbc8212f512e499b654a8f3 dmidecode.txt.3.3-3ubuntu0.1
 fe26b54cdc05cfbfcf3ddf19e90b4c29 dmidecode.bin.3.3-3
 fe26b54cdc05cfbfcf3ddf19e90b4c29 dmidecode.bin.3.3-3ubuntu0.1

HP ProLiant SL390s G7

 + grep ^SMBIOS .* present. dmidecode.txt.3.3-3
 SMBIOS 2.7 present.
 + grep -A2 ^System Information dmidecode.txt.3.3-3
 System Information
  Manufacturer: HP
  Product Name: ProLiant SL390s G7
 + grep -A1 ^BIOS Information dmidecode.txt.3.3-3
 BIOS Information
  Vendor: HP
 + md5sum dmidecode.txt.3.3-3 dmidecode.txt.3.3-3ubuntu0.1 dmidecode.bin.3.3-3 dmidecode.bin.3.3-3ubuntu0.1
 5b97d7f1aecf02a910b4bfcfc9594945 dmidecode.txt.3.3-3
 5b97d7f1aecf02a910b4bfcfc9594945 dmidecode.txt.3.3-3ubuntu0.1
 b8ff99487efafd209c952dcd79882d84 dmidecode.bin.3.3-3
 b8ff99487efafd209c952dcd79882d84 dmidecode.bin.3.3-3ubuntu0.1

HP ProLiant DL360e Gen8

 + grep ^SMBIOS .* present. dmidecode.txt.3.3-3
 SMBIOS 2.8 present.
 + grep -A2 ^System Information dmidecode.txt.3.3-3
 System Information
  Manufacturer: HP
  Product Name: ProLiant DL360e Gen8
 + grep -A1 ^BIOS Information dmidecode.txt.3.3-3
 BIOS Information
  Vendor: HP
 + md5sum dmidecode.txt.3.3-3 dmidecode.txt.3.3-3ubuntu0.1 dmidecode.bin.3.3-3 dmidecode.bin.3.3-3ubuntu0.1
 aae595aea144852698376c36023b32f2 dmidecode.txt.3.3-3
 aae595aea144852698376c36023b32f2 dmidecode.txt.3.3-3ubuntu0.1
 b8852c019861c797bb...

Read more...

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package dmidecode - 3.3-3ubuntu0.1

---------------
dmidecode (3.3-3ubuntu0.1) jammy; urgency=medium

  * Support SMBIOS 3.4 and 3.5 for Hardware Enablement in 22.04 LTS (LP: #1986852)
    - d/p/lp1986852-0001-Add-new-memory-device-types-from-SMBIOS-spec-3.4.0.patch
    - d/p/lp1986852-0002-Add-new-processor-upgrades-from-SMBIOS-spec-3.4.0.patch
    - d/p/lp1986852-0003-Add-new-slot-characteristics2-from-SMBIOS-spec-3.4.0.patch
    - d/p/lp1986852-0004-dmidecode-Handle-memory-module-extended-speed-fields.patch
    - d/p/lp1986852-0005-dmidecode-Add-new-system-slot-types-from-SMBIOS-spec.patch
    - d/p/lp1986852-0006-Add-new-processor-characteristics-bits-from-SMBIOS-s.patch
    - d/p/lp1986852-0007-Missing-comma-in-the-dmi_slot_type.patch
    - d/p/lp1986852-0008-dmidecode-Support-new-format-of-Processor-ID-from-SM.patch
    - d/p/lp1986852-0009-Support-new-byte-value-of-Processor-Upgrade-field-fr.patch
    - d/p/lp1986852-0010-dmidecode-Make-dmi_slot_bus_width-reusable.patch
    - d/p/lp1986852-0011-dmidecode-Add-missing-bits-from-SMBIOS-3.4.0-specifi.patch
    - d/p/lp1986852-0012-dmidecode-Add-new-fields-and-enumerated-values-from-.patch
    - d/p/lp1986852-0013-dmidecode-Add-support-for-type-45-records-Firmware-I.patch
    - d/p/lp1986852-0014-dmidecode-Enumerate-the-new-struct-types.patch
    - d/p/lp1986852-0015-dmidecode-Set-supported-version-to-3.5.0.patch

  * d/control: update-maintainer.

 -- Mauricio Faria de Oliveira <email address hidden> Tue, 23 Aug 2022 20:52:47 -0300

Changed in dmidecode (Ubuntu Jammy):
status: Fix Committed → Fix Released
Revision history for this message
Robie Basak (racb) wrote : Update Released

The verification of the Stable Release Update for dmidecode has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.