[libvirt] [PATCH] 0/4 Add SMBIOS settings to domain definition

Matthias Bolte matthias.bolte at googlemail.com
Thu Oct 21 23:09:30 UTC 2010


2010/10/21 Daniel Veillard <veillard at redhat.com>:
>  The SMBIOS data are a standardized set of data structures available
> in the BIOS area of PCs. Those blocks of data describe things like
> BIOS version informations, machine vendor, model and identifiers,
> as well as various parts of the machine capability. On a linux
> machine running dmidecode allows to dump those informations.
>
>  Spec available at the DMTF: http://dmtf.org/standards/smbios
>
>  From a virtualization POV, it's mostly the first block describing
> the BIOS named "type 0" and the second block describing the machine
> named "type 1" which are of interest. Those data are usually accessed
> either from the OS or from management application, and being able to
> override the default setings may be needed for such management.
>
>  The suggested XML description follows the logical structure of the
> data, one top smbios description, with one or more blocks, each
> containing the entries, the example below gives an idea:
>
>  <smbios>
>    <table type="0">
>      <entry name="Vendor">QEmu/KVM</entry>
>      <entry name="Version">0.13</entry>
>    </table>
>    <table type="1">
>      <entry name="Manufacturer">Fedora</entry>
>      <entry name="Product">Virt-Manager</entry>
>      <entry name="Version">0.8.2-3.fc14</entry>
>      <entry name="UUID">c7a5fdbdedaf9455926ad65c16db1809</entry>
>    </table>
>  </smbios>
>
>  The patch serie includes:
>   - the change to the doamin schemas
>   - the code to parse this in config structure
>   - the QEmu driver part
>   - a test example
>
> Currently missing is the conf code to save the data back, and
> documentation for the domain extension. I think it's possible
> set some of those settings in Xen too, but I don't know if I will
> take the time of a driver for it. For ESX it seems there is an option
> to inherit some of the SMBIOS data from the host on the guest but
> I'm not sure some of the fields can be manipulated directly. I don't
> know what  VirtualBox can set there either,
>
> Daniel
>

Okay, I looked at what can be done for ESX.

Looking at the SMBIOS data from _inside_ a ESX guest using dmidecode I
can get this

 <smbios>
   <table type="0">
     <entry name="Vendor">Phoenix Technologies LTD</entry>
     <entry name="Version">6.00</entry>
   </table>
   <table type="1">
     <entry name="Manufacturer">VMware Inc.</entry>
     <entry name="Product">VMware Virtual Platform</entry>
     <entry name="Version">None</entry>
     <entry name="Serial">VMware-[domain/uuid]</entry>
     <entry name="UUID">[domain/uuid]</entry>
   </table>
 </smbios>

The UUID and Serial are basically the UUID of the guest.

Putting smbios.reflecthost = "true" (defaults to false) in the VMX
file results in

 <smbios>
   <table type="0">
     <entry name="Vendor">Phoenix Technologies LTD</entry>
     <entry name="Version">6.00</entry>
   </table>
   <table type="1">
     <entry name="Manufacturer">LENOVO</entry>
     <entry name="Product">7673J3G</entry>
     <entry name="Version">None</entry>
     <entry name="Serial">VMware-[domain/uuid]</entry>
     <entry name="UUID">[domain/uuid]</entry>
   </table>
 </smbios>

So Manufacturer and Product from the type 1 table are now inherited
from the SMBIOS of the physical host.

But this is all from inside the guest. From _outside_ the guest over
the vSphere API I can only access "LENOVO" and "7673J3G", the data of
the physical host.

To make it even worse, it seems that none of this can be edited in any
way (apart from the Serial/UUID because this is the domain UUID).

Therefore, I think there is no possible useful implementation for this
in the ESX driver, besides outputting static unchangeable data.

Matthias




More information about the libvir-list mailing list