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!)
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!
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.
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.
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.
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.
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.
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?
Thanks for your input in advance!
Regards,
Faidon
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)