hvm_xs_strings.h specifies xenstore entries which can be used to set or
override smbios strings. hvmloader has support for reading them, but
xl/libxl support is not wired up. This patches adds a new xl.cfg option
and libxl support to write the xenstore strings.
The xl syntax looks like:
smbios=["bios_vendor=Xen Project","system_version=1.0"]
The Go binding generation needed extending to support Arrays inside a
KeyedUnion, which is what the first patch does. The generated go code
builds, but it is otherwise untested.
There are also oem strings, oem-1..oem-99, that HVM loader supports.
The use of smbios_type Enum is a little unwieldy to defined so many
entries, but it works. xl will internally parse smbios=["oem=A,oem=B"]
into oem_1 = "A" and oem_2 = "B". xl still accepts oem_$N, though
hvmloader only reads sequentially from 1 up to a maximum of 99. It's a
corner case what doesn't seem worth dealing with.
The rendered man page and html don't have a newline at then end of the
new section after patch 2.
"""
battery_device_name=STRING
ms_vm_genid="OPTION"
"""
however the txt format is correct:
"""
battery_device_name=STRING
ms_vm_genid="OPTION"
"""
It goes away after patch 3 is applied since it adds text about the "oem"
option in between the two lines above. I'm at a loss as to why this is
happening.
Jason Andryuk (3):
golang/xenlight: Extend KeyedUnion to support Arrays
xl/libxl: Add ability to specify SMBIOS strings
xl/libxl: Add OEM string support to smbios
docs/man/xl.cfg.5.pod.in | 49 +++++++++++
tools/golang/xenlight/gengotypes.py | 41 +++++----
tools/golang/xenlight/helpers.gen.go | 51 +++++++++++
tools/golang/xenlight/types.gen.go | 126 +++++++++++++++++++++++++++
tools/include/libxl.h | 5 ++
tools/libs/light/libxl_dom.c | 20 +++++
tools/libs/light/libxl_types.idl | 125 ++++++++++++++++++++++++++
tools/xl/xl_parse.c | 59 ++++++++++++-
8 files changed, 459 insertions(+), 17 deletions(-)
--
2.37.1