Where Does Dmidecode Get The Smbios Table

Finding out address of SMBIOS Entry point from command line

The dmidecode utility (installed as part of the dmidecode package on Debian based systems such as Ubuntu) will show the SMBIOS entry point if run with the --no-sysfs option. The address is shown on the second line of output:

$ sudo dmidecode --no-sysfs
# dmidecode 3.2
# SMBIOS entry point at 0x000fxxxx
Found SMBIOS entry point in EFI, reading table from /dev/mem
...

The biosdecode and dmidecode utilities can be used to examine the tables.

biosdecode examines the memory directly (/dev/mem by default, but can be changed with the -d option) to find the SMBIOS table (and other tables). dmidecode will try to locate the DMI table in sysfs first (unless run with the --no-sysfs option) and will fall back to examining the memory.

Links:

  • dmidecode Home page
  • dmidecode Project page on Savannah
  • dmidecode Git browser

device in lspci can't find in dmidecode

The SMBIOS information is a little bit limited - If you look at the latest specification in section 7 it indicates the structures that would be populated in the information tables. Things like baseboard, etc. The list is pretty self-explanatory, and generally includes the slots exposed by the motherboard and whether they're occupied or not.

The issue is that it relies on the BIOS vendor to populate everything - if they choose not to populate a type 10/type 41 entry for the built-in GPU, then you won't find one in the dmi output, and there's pretty much nothing you can do about it except complain to the vendor.

In general if you've got add-on cards, the only information you would get from smbios is the fact that one of the add-on slots is occupied. I would not expect a bios vendor to interrogate the add-on cards to populate this information as this information would not be considered 'built-in' to the motherboard.

How to check the BIOS version or name in Linux through a command prompt?

BIOS version is exposed through the SMBIOS tables. On Linux, we can access this with dmidecode (which requires root privileges to run).

To show only BIOS information, use -t bios to specify that we only want to see entries of the type BIOS, and -q to silence unnecessary output.

# dmidecode -t bios -q
BIOS Information
Vendor: Phoenix Technologies LTD
Version: 6.00
Release Date: 02/22/2012
Address: 0xE72C0
Runtime Size: 101696 bytes
ROM Size: 64 kB
Characteristics:
ISA is supported
PCI is supported
...
BIOS Revision: 4.6
Firmware Revision: 0.0

To get just the BIOS version information, use -s to specify certain strings:

# dmidecode -s bios-vendor
Phoenix Technologies LTD
# dmidecode -s bios-version
6.00
# dmidecode -s bios-release-date
02/22/2012


Related Topics



Leave a reply



Submit