If /dev/hwrng exists, but no actual generator is connected (or it is disabled on the host), QEMU will happily start the VM but crash as soon as the guest accesses the VirtIO RNG device.
To prevent this unfortunate behaviour, check if a useable hwrng is connected to the host before allowing the VM to be started. Signed-off-by: Stefan Reiter <s.rei...@proxmox.com> --- On a side note, 'file_read_firstline' was already imported from PVE::Tools but never used. Saves a line in this patch I supposed ;) PVE/QemuServer.pm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index cb96b71..6faa9cf 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -3399,6 +3399,16 @@ sub config_to_command { die "cannot create VirtIO RNG device: source file '$rng->{source}' doesn't exist\n" if ! -e $rng->{source}; + my $rng_select_path = '/sys/devices/virtual/misc/hw_random/rng_current'; + if ($rng->{source} eq '/dev/hwrng' && + file_read_firstline($rng_select_path) eq 'none') + { + # needs to abort, otherwise QEMU crashes on first rng access + die "Cannot start VM with passed-through RNG device: '/dev/hwrng'" + . " exists, but '$rng_select_path' is set to 'none'. Ensure that" + . " a compatible hardware-RNG is attached to the host.\n"; + } + my $rng_addr = print_pci_addr("rng0", $bridges, $arch, $machine_type); push @$devices, '-object', "rng-random,filename=$rng->{source},id=rng0"; -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel