![将 nouveau 驱动程序和 bochs_drm 列入黑名单在 xen / ubuntu 20.10 来宾操作系统中根本不起作用](https://linux22.com/image/182674/%E5%B0%86%20nouveau%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E5%92%8C%20bochs_drm%20%E5%88%97%E5%85%A5%E9%BB%91%E5%90%8D%E5%8D%95%E5%9C%A8%20xen%20%2F%20ubuntu%2020.10%20%E6%9D%A5%E5%AE%BE%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%A0%B9%E6%9C%AC%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我正在尝试将我的 nvidia GTX 1060 从 ubuntu 20.10 主机传递到带有 ubuntu 20.10 来宾操作系统的 xen。下面您可以看到如何配置所有内容(默认 vga 显示适配器/nvidia 1060 驱动程序和显示器)。我遇到的问题是,即使在虚拟机内检测到 1060,也无法检测到连接到它的显示器。
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
我无法关闭屏幕 0,因为它是我拥有的唯一屏幕,即连接到 xen 默认图形适配器的屏幕。我无法打开通过 vga 电缆连接的外部显示器,因为在虚拟机内部未检测到屏幕。所以,我想,如果我将 nouveau 和 bochs-drm 列入黑名单会发生什么?我在这里阅读了如何将 bochs_drm 列入黑名单:
这里是如何将 nouveau 驱动程序列入黑名单:
我的目标是将带有 nvidia 驱动程序的 1060 设置为虚拟机内第一个也是唯一一个图形适配器。这就是我所做的:
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
update-grub
然后我重新启动并再次使用 lspci -k 检查,但 nouveau 驱动程序和 bochs_drm 模块尚未列入黑名单。与以前相比没有任何改变。我有什么错?
答案1
我通过执行以下禁用 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
rd.driver.blacklist=nouveau
modprobe.blacklist=nouveau
nouveau.modeset=0
然后你必须做一个grub2-mkconfig -o /boot/efi/EFI/?/grub.cfg
我假设你的语法?
是ubuntu
。要么是雷尔或者森托斯对我来说,然后重新启动。
推荐你做了一个systemctl set-default multi-user.target
重新启动之前所以你在重新启动后会得到一个工作(非图形)控制台,否则当它尝试进入图形目标时,你的显示器上可能什么也没有,如果发生这种情况,它需要额外的工作来纠正它总是启动到不可用的状态图形界面。
从非图形控制台,您始终可以systemctl isolate graphical.target
跳转到它,如果失败,则只需重新启动,当您知道已完成所有工作时,即可systemctl set-default graphical.target
将其恢复。抱歉,我不知道您目前的错误是什么;不久前,我在 Linux 中浪费了很多时间搞乱 nvidia 之后,决定采用这种方法。