On 22.08.2025 15:47, Teddy Astie wrote: > Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the > SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID). > > In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else > (undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore, > you have a endian mismatch causing the UUIDs to mismatch in the guest. > > $ cat /sys/hypervisor/uuid > e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7 > $ cat /sys/devices/virtual/dmi/id/product_uuid > 3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7 > $ cat /sys/devices/virtual/dmi/id/product_serial > e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7 > > This patch updates the SMBIOS version from 2.4 to 2.6 and fixup the UUID > written in the table; which effectively fix this endianness mismatch with > OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.
To update to 2.6, fields new in 2.6 (compared to 2.4) need adding to the various structures. First example I ran into is type 4, gaining 5 new fields in 2.5. Jan