I'm trying to passthrough my nvidia GTX 1060 from ubuntu 20.10 host to xen with ubuntu 20.10 guest os. Below you can see how is configured everything (default vga display adapter / nvidia 1060 driver and the monitor). The problem that I have is that even if the 1060 is detected inside the vm,the monitor attached to it is not detected.

root@zioma-HVM-domU:/home/zioma# lspci -k

00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
Subsystem: Red Hat, Inc. Qemu virtual machine
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
Subsystem: Red Hat, Inc. Qemu virtual machine
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
Subsystem: Red Hat, Inc. Qemu virtual machine
Kernel driver in use: ata_piix
Kernel modules: pata_acpi
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
Subsystem: Red Hat, Inc. QEMU Virtual Machine
Kernel driver in use: uhci_hcd
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
Subsystem: Red Hat, Inc. Qemu virtual machine
Kernel modules: i2c_piix4
00:02.0 Unassigned class [ff80]: XenSource, Inc. Xen Platform Device (rev 01)
Subsystem: XenSource, Inc. Xen Platform Device
Kernel driver in use: xen-platform-pci
00:04.0 VGA compatible controller: Device 1234:1111 (rev 02)
Subsystem: Red Hat, Inc. Device 1100
Kernel driver in use: bochs-drm
Kernel modules: bochs_drm
00:06.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 3GB] (rev a1)
Subsystem: ZOTAC International (MCO) Ltd. GP106 [GeForce GTX 1060 3GB]
Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
00:07.0 Audio device: NVIDIA Corporation GP106 High Definition Audio Controller (rev a1)
Subsystem: ZOTAC International (MCO) Ltd. GP106 High Definition Audio Controller
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel

root@zioma-HVM-domU:/home/zioma# ls -l /sys/class/drm/

totale 0
lrwxrwxrwx 1 root root    0 nov  1 23:14 card0 -> ../../devices/pci0000:00/0000:00:04.0/drm/card0
lrwxrwxrwx 1 root root    0 nov  1 23:14 card0-Virtual-1 -> ../../devices/pci0000:00/0000:00:04.0/drm/card0/card0-Virtual-1
lrwxrwxrwx 1 root root    0 nov  1 23:14 ttm -> ../../devices/virtual/drm/ttm
-r--r--r-- 1 root root 4096 nov  1 23:14 version

root@zioma-HVM-domU:/home/zioma# xrandr

Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
Virtual-1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00*+
   1920x1080     60.00  
   1600x1200     60.00  
   1680x1050     59.95    59.88  
   1400x1050     59.98    59.95  
   1600x900      60.00  
   1280x1024     60.02  
   1440x900      59.89    59.90  
   1280x960      60.00  
   1366x768      59.79    60.00  
   1360x768      60.02  
   1280x800      59.81    59.91  
   1280x768      59.87    59.99  
   1280x720      60.00  
   800x600       60.32    56.25  
   848x480       60.00  
   640x480       59.94

I can't turn off the screen 0 because it is the only screen that I have,the one attached to the xen default graphic adapter. And I can't turn on the external monitor attached with the vga cable because the screen is not detected inside the vm. So,I've thought,what happens if I blacklist nouveau and bochs-drm ? I read here how to blacklist bochs_drm :

Disable framebuffer in QEMU guests

and here how to blacklist the nouveau driver :


my goal is to set the 1060 with the nvidia driver as the first and only graphic adapter inside the vm. This is what I did :

nano /etc/modprobe.d/blacklist-nouveau.conf

blacklist nouveau
options nouveau modeset=0

nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash systemd.show_status=1 bochs_drm.fbdev=off"

update-initramfs -u

and then I rebooted and checked again with lspci -k,but the nouveau driver and the bochs_drm module haven't been blacklisted. nothing is changed from before. what's my mistake ?

1 Answer 1


I've had the best results by doing the following for disabling nouveau

# edit /etc/default/grub

GRUB_CMDLINE_LINUX = [parameters]

# use any one or more of these as a parameter where each parameter is separated by a space.
# just keep your existing parameters and you can simply add all of these
# note: the rd.driver.blacklist=nouveau by itself seems to not have worked for me in rhel7.9


you must then do a grub2-mkconfig -o /boot/efi/EFI/?/grub.cfg I assume for you that the syntax in place of ? would be ubuntu. It's either rhel or centos for me, then reboot.

recommend you do a systemctl set-default multi-user.target before reboot so you get a working (non graphical) console after reboot otherwise when it tries to go to graphical.target there's a chance you'll have nothing on the monitor and if that happens its extra work to correct it from always booting into a non usable graphical interface.

from the non-graphical console you can always do systemctl isolate graphical.target to jump to it and if it fails then just reboot, and when you know you have everything working do systemctl set-default graphical.target to put it back. Sorry I don't know what your mistake currently is; I settled on this method a while ago after having wasted a lot of time messing with nvidia in linux.

  • I've just realized that I have installed ubuntu 20.10 as guest with the gpt - efi partition style. for this reason,blacklisting nouveau and bochs_drm don't work,according to what's written here : unix.stackexchange.com/questions/346090/… ; something is missing
    – Marietto
    Nov 2, 2020 at 10:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.