Index: libexec/rc/rc.d/hostid =================================================================== --- libexec/rc/rc.d/hostid +++ libexec/rc/rc.d/hostid @@ -100,7 +100,7 @@ return 1 } -hostid_hardware() +hostid_smbios() { uuid=`kenv -q smbios.system.uuid` @@ -111,15 +111,26 @@ hostid_generate() { - # First look for UUID in hardware. - uuid=`hostid_hardware` - if [ -z "${uuid}" ]; then - warn "hostid: unable to figure out a UUID from DMI data, generating a new one" - sleep 2 - # If not found, fall back to software-generated UUID. - uuid=`uuidgen` - fi - hostid_set $uuid + local _arch + + _arch=`${SYSCTL_N} hw.machine_arch` + case $_arch in + amd64 | i386) + # First look for UUID in SMBIOS + uuid=`hostid_smbios` + if [ -z "${uuid}" ]; then + warn "hostid: unable to figure out a UUID from DMI data, generating a new one" + sleep 2 + # If not found, fall back to software-generated UUID. + uuid=`uuidgen` + fi + hostid_set $uuid + + ;; + *) + hostid_set `uuidgen` + ;; + esac } hostid_reset()