On 3/9/25 04:41, Faidon Liambotis wrote:
Hi Mario,

On Sun, Mar 09, 2025 at 12:27:38AM -0600, Mario Limonciello wrote:
The libsmbios package previously had consumers in the fwupd package for Dell 
systems.
This has been changed in fwupd and it directly talks to the kernel instead of 
using
the libsmbios library.

There have been bug reports forwarded upstream that are totally ignored.  There 
hasn't
been any changes upstream in 5 years.

The project is effectively dead upstream and tech debt to maintain in Debian 
without
much utility or need.

AIUI you are the previous upstream for this package as well as
a contributor to relevant bits in upstream Linux. (That's a good
opportunity to say: thank you for your work!)

Sure! Yeah when I was at Dell I worked on this package. I tried to hand it off when I left but it seems that no one ever picked it up :/


I looked into smbios recently due to an FTBFS RC bug (that Steve
McIntyre fixed almost immediately), #1092525, and left a comment there.
I am not involved with its maintenance, just a drive-by interested
party.  With you being the subject-matter expert, perhaps it's worth
rehashing here and get your take as well!

Yeah, good idea. My main thought process is to avoid maintaining dead upstream software in Debian, when there are other ways/knobs to get the same information.

FWIW that was the same thought process that went into dropping it in fwupd too.


First of all, it is also my understanding that libsmbios does not have
any reverse dependencies/third-party consumers in Debian. However,
src:libsmbios also produces the binary "smbios-utils" with several
command-line utilities. So it's not just a matter of whether the library
is useful, but also whether the utilities themselves are.

Right.


As I mentioned in #1092525, I am aware that most, if not all, of the
low-level functionality of these CLI utilities can now be performed
using the dell_* (dell_smbios especially) Linux kernel modules & sysfs.

And dell-wmi-sysman which provides the firmware-attributes interface.


However, to my knowledge, there is no clear replacement in terms of a
higher-level interface. For example, looking at the very straightforward
"getSystemId":
   Libsmbios version:      2.4.3
   Product Name:           Latitude 7420
   Vendor:                 Dell Inc.
   BIOS Version:           1.34.2
   System ID:              0x0A36
   Service Tag:            <removed>
   Express Service Code:   <removed>
   Asset Tag:              Not Specified
   Property Ownership Tag:

The modern alternative is to fetch e.g. the Service Tag with:
   cat /sys/class/dmi/id/chassis_serial
However, listing the Express Service Code is:
   echo $((36#$(cat /sys/class/dmi/id/chassis_serial)))
So you need to know where to look, and what conversion to run.

Right. But this could easily be information in a wiki page instead of a full software stack.


In an even more pronounced example, "smbios-token-ctl" can fetch and set
a bunch of tokens ("BIOS" settings) with their names and descriptions:
   # smbios-token-ctl
   
================================================================================
     Token: 0x001e - Speaker (Disable)
     value: bool = false
      Desc: Disable the built-in speaker.
   
================================================================================
     Token: 0x0028 - Auto-on (Disable)
     value: bool = true
      Desc: Disable the system's auto-on capabilities
   
================================================================================
   [...]

The equivalent sysfs interface is:
   # cat /sys/devices/platform/dell-smbios.0/tokens/001e_value; echo
   00000000
However, there is no description of any of those (234 in my system)
tokens.

AFAIK the token ID->name is encoded in this CSV in the libsmbios source
package:
https://github.com/dell/libsmbios/blob/master/doc/token_list.csv
I think fwupd implements some of this functionality, but I am not sure
if it's equivalent or if there is feature parity.

Does your machine load the dell-wmi-sysman driver? That is the modern replacement for all this. It includes descriptions, what options can support etc.


As I final data point, I believe smbios-battery-ctl's functionality was
only very recently implemented in the kernel (v6.12); so while libsmbios
is indeed abandonware for the past 5 years, it was certainly still the
only way to perform a very useful function until a few months ago.

Yeah; this is part of why I was waiting a while to file this request. Seeing 1092525 and with the impending freeze I figured now is the right time to discuss it so it's not more software to maintain for the next few years.


So all in all, I suppose the question is: are there modern replacements
for all of the utilities shipped by smbios-utils? If not, and given
smbios-utils now builds and works, are there any downsides in continuing
to ship it in unstable and trixie?

It's a lot of C code, and most if not all the functionality is covered natively by the kernel in other ways. While it had static analysis done with coverity a number of years back when I was at Dell I don't know how well it has aged as other dependencies and libraries it uses have moved along.


Thanks for your input in advance!

Regards,
Faidon

Attachment: OpenPGP_0x2D192CA624770276.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to