]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
change indicator used for later versions of VirtualBox (#21127)
authorGreg Zuro <gregzuro@users.noreply.github.com>
Wed, 27 Oct 2021 04:02:37 +0000 (21:02 -0700)
committerGitHub <noreply@github.com>
Wed, 27 Oct 2021 04:02:37 +0000 (13:02 +0900)
Detection of VirtualBox is accomplished in the existing code by *either* `innotek GmbH`
or `Oracle Corporation` existing in any of:

- /sys/class/dmi/id/product_name
- /sys/class/dmi/id/sys_vendor
- /sys/class/dmi/id/board_vendor
- /sys/class/dmi/id/bios_vendor

With Oracle's physical servers, both `/sys/class/dmi/id/sys_vendor` and
`/sys/class/dmi/id/board_vendor` contain `Oracle Corporation`, so those
servers are detected as `oracle` (VirtualBox).

VirtualBox has the following values in the latest versions:

- /sys/class/dmi/id/product_name: `VirtualBox`
- /sys/class/dmi/id/sys_vendor: `innotek GmbH`
- /sys/class/dmi/id/board_vendor: `Oracle Corporation`
- /sys/class/dmi/id/bios_vendor: `innotek GmbH`

Presumably the existing check for `innotek GmbH` is meant to detect
older versions of VirtualBox, while changing the second checked value
from `Oracle Corporation` to `VirtualBox` will reliably detect later and future
versions.

src/basic/virt.c

index 64581ad2e10d1c7cc6eba099979cd8ceef66fbd5..4e1cbf5b666bf4292946d234d3d815528bec502e 100644 (file)
@@ -159,7 +159,7 @@ static int detect_vm_dmi_vendor(void) {
                 { "VMware",              VIRTUALIZATION_VMWARE    }, /* https://kb.vmware.com/s/article/1009458 */
                 { "VMW",                 VIRTUALIZATION_VMWARE    },
                 { "innotek GmbH",        VIRTUALIZATION_ORACLE    },
-                { "Oracle Corporation",  VIRTUALIZATION_ORACLE    },
+                { "VirtualBox",          VIRTUALIZATION_ORACLE    },
                 { "Xen",                 VIRTUALIZATION_XEN       },
                 { "Bochs",               VIRTUALIZATION_BOCHS     },
                 { "Parallels",           VIRTUALIZATION_PARALLELS },