sample_nickname
sample_nickname

Reputation: 301

How can I find the BIOS brand/version from SMBIOS (in VMWare with FreeDOS)

I am writing a program that finds and prints PC info (CPU, Hard disks, BIOS etc.) in low-level assembly language that runs in VMWare with FreeDOS O/S. I need to find my BIOS version and brand id (or something similar) and my hard disks info.

I've learnt that BIOS info can be accessed via SMBIOS but I'm not very familiar with that. Could anyone help me out with this? Thank you!

Upvotes: 1

Views: 1215

Answers (1)

Igor Skochinsky
Igor Skochinsky

Reputation: 25268

Get the latest SMBIOS spec, it's described there. In short, you need to scan for the "_SM_" string in the BIOS segment (top 64K of first megabyte of physical memory, i.e. 0xF0000-0x100000) at 16-byte aligned locations. It has a pointer to the list of tables which contain the info you need. Make sure you verify the header checksum to avoid false positives.

If you want some example source code, have a look at dmidecode.

See also here for more detailed description.

Upvotes: 1

Related Questions