On Tuesday 19 Mar 2013 16:16:10 Michael Brown wrote: > Looks as though the endianness changed in SMBIOS 2.6, for some unknown > reason: > > http://linux.derkeiler.com/Mailing-Lists/Kernel/2011-01/msg07703.html > > This is incredibly annoying to deal with; iPXE treats a UUID (from any > source) as being an opaque sequence of bytes. It's only at the point of > converting to a text string that we care about endianness, and at that > point we have no knowledge of where the raw data came from.
I've pushed a patch to try to work around this problem: http://git.ipxe.org/ipxe.git/commitdiff/9e896d0 UUIDs are still treated by iPXE as being in network byte order. At the point of trying to read a UUID from SMBIOS (identified using a heuristic; it won't catch all cases but should catch most), we check the SMBIOS version number and, if it's 2.6 or newer, byte-swap the relevant fields to pretend that the data was stored in network byte order to begin with. The upshot is that using ${uuid} should perform magical byte-swapping as needed, while the raw bytes can still be extracted using e.g. ${uuid:hex}. Michael _______________________________________________ ipxe-devel mailing list [email protected] https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

