Remove hard dependency on dmidecode
On Linux DMI data can be read from /sys/class/dmi/id/*
On FreeBSD, the user-space program kenv(1)
allows to read out Kernel state, and DMI data can be found prefixed with the smbios.
key; SMBIOS being the other name for DMI.
In cloud-init we already have this in place for Linux: https://github.com/canonical/cloud-init/blob/master/cloudinit/dmi.py and work for FreeBSD is in progress: https://github.com/canonical/cloud-init/pull/621
One minor advantage of replacing dmidecode
is that it would open up libvirt to run more platforms, on which dmidecode either doesn't work or is very buggy.