|
|
Heads up: x86 SMBIOS SupportDate: Sat, 27 Aug 2005 15:51:01 -0700 (PDT) From: Michael Shapiro <mws at eng dot sun dot com> To: on-all at sun dot com, onnv-gate at onnv dot eng dot sun dot com Subject: Heads up: x86 SMBIOS Support Gatelings, My recent putback of: PSARC 2005/483 SMBIOS Support for Solaris 6313638 SMBIOS Support for Solaris 6230033 prtdiag should be implemented for Solaris x86 introduces some new features for x86 systems that may be of interest to you if you are doing h/w administration of Solaris x86 systems or development of low-level x86 system software. System Management BIOS (SMBIOS) is an industry-standard mechanism for low-level system software to export hardware configuration information to higher-level system management software. Almost all modern x86 systems have a BIOS that supports the SMBIOS spec. This wad adds the following new features to Solaris: - A common API for examining SMBIOS data, compiled both into the x86 kernel and into the new library libsmbios.so.1. - A driver /dev/smbios to export a snapshot of the SMBIOS data. - A utility /usr/sbin/smbios to examine and/or copy the SMBIOS data, using /dev/smbios by default but can also use a file or /dev/xsvc. If you've used Linux "dmidecode" before, this is the same idea, but hopefully a more useful and friendly implementation. - An initial implementation of prtdiag(1M) for x86 systems that uses libsmbios to obtain some basic h/w configuration information. Remember to resolve BFU conflicts properly (name_to_major, minor_perm) to facilitate the proper installation of the new facilities. If nothing else, you can use these capabilities to find out the true system name and BIOS version of an x86 system that has an SMBIOS by doing this: $ prtdiag | head -2 System Configuration: Sun Microsystems W1100z/2100z BIOS Configuration: Sun Microsystems R01-B2 S0 10/12/2004 If you want to inspect a system that is running an earlier Solaris release that you can't BFU, you can also do this on an older Solaris system: # cp <path-to-latest-proto-area>/usr/lib/libsmbios.1 /usr/lib # cp <path-to-latest-proto-area>/usr/sbin/smbios /usr/sbin # smbios <options> /dev/xsvc and the utility will grab the SMBIOS information using the physical memory access device /dev/xsvc. If you want even more details, you can find a copy of the spec, draft man pages, and example output in: /shared/sac/PSARC/2005/483/commit.materials/ or simply e-mail me directly if you have more questions. Any bugs and RFEs go here (creation of library/libsmbios may take another day or so): smbios(1M), prtdiag(1M) - utility/kernel smbios(7D) - kernel/fm libsmbios - library/libsmbios Finally, if for some reason you encounter an unforeseen bug in my code which causes a machine to not boot, you can disable SMBIOS processing on boot by doing the following: set ksmbios_flags = -1 <-- in /etc/system, OR ksmbios_flags/W -1 <-- after booting kmdb with the -kd flags which will bypass the boot-time SMBIOS processing. And then send me e-mail. -Mike -- Mike Shapiro, Solaris Kernel Development. blogs.sun.com/mws/ |