diff options
Diffstat (limited to 'virtinst/guest.py')
-rw-r--r-- | virtinst/guest.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/virtinst/guest.py b/virtinst/guest.py index f11a105e..4e767dd0 100644 --- a/virtinst/guest.py +++ b/virtinst/guest.py @@ -199,6 +199,7 @@ class Guest(XMLBuilder): self.skip_default_usbredir = False self.skip_default_graphics = False self.skip_default_rng = False + self.skip_default_tpm = False self.x86_cpu_default = self.cpu.SPECIAL_MODE_APP_DEFAULT self.skip_default_osinfo = False @@ -724,6 +725,11 @@ class Guest(XMLBuilder): self._add_default_channels() self._add_default_rng() self._add_default_memballoon() + if self.is_uefi(): + # If the guest is using UEFI, we take that as a + # flag that the VM is targeting a modern platform + # and thus we should also provide an emulated TPM. + self._add_default_tpm() self.clock.set_defaults(self) self.cpu.set_defaults(self) @@ -947,6 +953,21 @@ class Guest(XMLBuilder): dev.device = "/dev/urandom" self.add_device(dev) + def _add_default_tpm(self): + if self.skip_default_tpm: + return + if self.devices.tpm: + return + + if not self.lookup_domcaps().supports_tpm_emulator(): + log.debug("Domain caps doesn't report TPM support") + return + + log.debug("Adding default TPM") + dev = DeviceTpm(self.conn) + dev.type = DeviceTpm.TYPE_EMULATOR + self.add_device(dev) + def _add_default_memballoon(self): if self.devices.memballoon: return |