Enable hardware virtualiyation / KVM on Drive AGX Xaiver

Please provide the following info (check/uncheck the boxes after creating this topic):
Software Version
DRIVE OS Linux 5.2.6
DRIVE OS Linux 5.2.6 and DriveWorks 4.0
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version
other

Target Operating System
Linux
QNX
other

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)
other

SDK Manager Version
1.7.0.8846
other

Host Machine Version
native Ubuntu 18.04
other

Hello there,

I’m trying to install KVM onto a Drive AGX Xaier to run multiple guest OSes.

Installing qemu, libvirt and all the other required packages via apt works fine. Performing several checks like the ones below indicate that hardware virtualization is not available which is needed for KVM:

$ egrep -c '(vmx|svm)' /proc/cpuinfo
0

$ sudo kvm-ok
INFO: /dev/kvm does not exist
HINT:   sudo modprobe kvm
modprobe: FATAL: Module msr not found in directory /lib/modules/4.14.102-rt53-tegra

$ virt-host-validate
  QEMU: Checking if device /dev/kvm exists                                   : FAIL (Check that CPU and firmware supports virtualization and kvm module is loaded)
  QEMU: Checking if device /dev/vhost-net exists                             : WARN (Load the 'vhost_net' module to improve performance of virtio networking)
  QEMU: Checking if device /dev/net/tun exists                               : PASS
  QEMU: Checking for cgroup 'memory' controller support                      : PASS
  QEMU: Checking for cgroup 'memory' controller mount-point                  : PASS
  QEMU: Checking for cgroup 'cpu' controller support                         : PASS
  QEMU: Checking for cgroup 'cpu' controller mount-point                     : PASS
  QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
  QEMU: Checking for cgroup 'cpuacct' controller mount-point                 : PASS
  QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
  QEMU: Checking for cgroup 'cpuset' controller mount-point                  : PASS
  QEMU: Checking for cgroup 'devices' controller support                     : PASS
  QEMU: Checking for cgroup 'devices' controller mount-point                 : PASS
  QEMU: Checking for cgroup 'blkio' controller support                       : PASS
  QEMU: Checking for cgroup 'blkio' controller mount-point                   : PASS
WARN (Unknown if this platform has IOMMU support)
   LXC: Checking for Linux >= 2.6.26                                         : PASS
   LXC: Checking for namespace ipc                                           : PASS
   LXC: Checking for namespace mnt                                           : PASS
   LXC: Checking for namespace pid                                           : PASS
   LXC: Checking for namespace uts                                           : PASS
   LXC: Checking for namespace net                                           : PASS
   LXC: Checking for namespace user                                          : PASS
   LXC: Checking for cgroup 'memory' controller support                      : PASS
   LXC: Checking for cgroup 'memory' controller mount-point                  : PASS
   LXC: Checking for cgroup 'cpu' controller support                         : PASS
   LXC: Checking for cgroup 'cpu' controller mount-point                     : PASS
   LXC: Checking for cgroup 'cpuacct' controller support                     : PASS
   LXC: Checking for cgroup 'cpuacct' controller mount-point                 : PASS
   LXC: Checking for cgroup 'cpuset' controller support                      : PASS
   LXC: Checking for cgroup 'cpuset' controller mount-point                  : PASS
   LXC: Checking for cgroup 'devices' controller support                     : PASS
   LXC: Checking for cgroup 'devices' controller mount-point                 : PASS
   LXC: Checking for cgroup 'blkio' controller support                       : PASS
   LXC: Checking for cgroup 'blkio' controller mount-point                   : PASS
   LXC: Checking if device /sys/fs/fuse/connections exists                   : FAIL (Load the 'fuse' module to enable /proc/ overrides)

I believe, however, that hardware virtualization is available on the AGX (please correct me if I’m wrong). Therefore my question is how to enable hardware virtualization on the Drive AGX?

Thanks for your help!

Dear @t.mueller,
Please see Where can I find the Virtualization Programming Guide?

Hi, @t.mueller

As some developer site pages, e.g. NVIDIA DRIVE SDK | NVIDIA Developer, and the topic @SivaRamaKrishnaNV pointed out mention, NVIDIA Hypervisor is part of the software stack of DRIVE OS. Thanks.

Hello,

Thanks for your answers. As mentioned in the post referred by @SivaRamaKrishnaNV, the Virtualization Programming Guide is not available through the Developer program. We already had a call with our Nvidia representative, saying that it is only available through the partners program.

Sine I cannot use the Nvidia Hypervisor without documentation, I’m trying KVM.

Got it. But DRIVE OS supports only our hypervisor.