diff --git a/man/systemd-detect-virt.xml b/man/systemd-detect-virt.xml
index e4c2d9fd5f..5c5510eaf2 100644
--- a/man/systemd-detect-virt.xml
+++ b/man/systemd-detect-virt.xml
@@ -125,6 +125,11 @@
QNX hypervisor
+
+ acrn
+ ACRN hypervisor
+
+
Container
openvz
diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
index f21f9eae44..82c63e1609 100644
--- a/man/systemd.unit.xml
+++ b/man/systemd.unit.xml
@@ -1093,7 +1093,8 @@
lxc-libvirt,
systemd-nspawn,
docker,
- rkt to test
+ rkt,
+ acrn to test
against a specific implementation, or
private-users to check whether we are running in a user namespace. See
systemd-detect-virt1
diff --git a/src/basic/virt.c b/src/basic/virt.c
index c7376bf5e4..0717347b35 100644
--- a/src/basic/virt.c
+++ b/src/basic/virt.c
@@ -40,6 +40,8 @@ static int detect_vm_cpuid(void) {
/* https://wiki.freebsd.org/bhyve */
{ "bhyve bhyve ", VIRTUALIZATION_BHYVE },
{ "QNXQVMBSQG", VIRTUALIZATION_QNX },
+ /* https://projectacrn.org */
+ { "ACRNACRNACRN", VIRTUALIZATION_ACRN },
};
uint32_t eax, ebx, ecx, edx;
@@ -628,6 +630,7 @@ static const char *const virtualization_table[_VIRTUALIZATION_MAX] = {
[VIRTUALIZATION_PARALLELS] = "parallels",
[VIRTUALIZATION_BHYVE] = "bhyve",
[VIRTUALIZATION_QNX] = "qnx",
+ [VIRTUALIZATION_ACRN] = "acrn",
[VIRTUALIZATION_VM_OTHER] = "vm-other",
[VIRTUALIZATION_SYSTEMD_NSPAWN] = "systemd-nspawn",
diff --git a/src/basic/virt.h b/src/basic/virt.h
index c4cf4bfeab..03cf1752f4 100644
--- a/src/basic/virt.h
+++ b/src/basic/virt.h
@@ -21,6 +21,7 @@ enum {
VIRTUALIZATION_PARALLELS,
VIRTUALIZATION_BHYVE,
VIRTUALIZATION_QNX,
+ VIRTUALIZATION_ACRN,
VIRTUALIZATION_VM_OTHER,
VIRTUALIZATION_VM_LAST = VIRTUALIZATION_VM_OTHER,