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
Best Approach of Image Versioning in Yocto
Output Data Register Value in Nasm
Socket Getting Created with Same Ip and Port on Local Host
Sharing Virtual Network with Docker Container
Srlua Makefile Error Lua.H No Such File or Directory
Svn Checkout Fails with "Chunk Delimiter Was Invalid" - What Can Be Done
Tar Command Not Found in Dockerfile
How to Paste from Buffer in Ex Mode of Vim
Save Multiple Password Accounts for Git
Change Script Directory to User's Homedir in a Shell Script
Terminal "Png" Missing When Using Gnuplot