On Wed, 2007-12-19 at 11:17 +0100, Carl-Daniel Hailfinger wrote:
On 19.12.2007 01:35, Marc Jones wrote:
Steve Isaacs wrote:
AFAICS Steve is talking about SMBIOS, not SMI. SMBIOS is sort of an asset management helper. With a chassis type, serial number and some information about the base baord you can use management applications to determine where a specific machine is used (generate a list of serial numbers from all machines, look which machine has the wanted serial number). It should be possible to generate the SMBIOS structure in a similar way to how we generate e820 tables.
Yes, thank you. That is precisely what I'm referring to.
The requirement I'm struggling with is for our Linux based applications to be able to identify the hardware and firmware (part numbers and revision numbers) it is running on for support and update reasons. The applications I'm referring to will be running on LinuxBIOS and commercial BIOS machines with custom hardware. A consistent means of identifying either is needed. SMBIOS (System Management BIOS http://www.dmtf.org/standards/smbios/) can be used for this purpose.
In short, the SMBIOS spec says that the pattern "_SM_" along with a check-sum is embedded within the BIOS code and in the normal BIOS image address range. There is also a pointer to a linked list of structures (similar to PCMCIA config structures) which identify the hardware and its characteristics including serial numbers and revision number (what I need). Utilities named getSystemId and dumpSmbios can be installed in Linux and used to retrieve this information or applications can scan the address range themselves.
Fortunately, it is not a requirement for me to itemize all of the devices. For example, the serial ports, sata drives, pci devices or usb devices do not need DMI blocks. There are other mechanisms for handling those. I believe the scope can (and should) be limited to part numbers, serial numbers and revisions.
That said, from what I've seen in other replies, if I want to conform to SMBIOS specifications in LinuxBIOS I'll need to figure out how to implement it. Right now I'm trying to understand how difficult it would be to support this standard or find another way. Since this is not actually used until after Linux is running there are other options but at the moment I'm thinking from a user space and kernel space perspective a single mechanism that comes with the hardware (so to speak) is best and simplest.
Thanks,
Steve