NVIDIA GPU用のvfio-pciドライバをロードできません

NVIDIA GPU用のvfio-pciドライバをロードできません

まあ、もう情報が得られなくなったので助けを求めます。私は私が考えることができるか、オンラインで見つけることができるすべてを試しました。 virt-manager/KVM がある VM で使用できるように GPU パススルーを動作させようとしています。

私は主にこのガイド(以下)に従ってすべてのファイルを設定し、カーネルを更新し、grubラインを設定しました。以下の他の質問では結果が得られないので、dmesg | grep vfioそれは手がかりかもしれません。 1つの答えは、vfioモジュールがカーネルに統合されているため、lsmodはそれを表示しないのに対し、私のカーネル設定ファイルにはvfioエントリが表示されることです。私はnvidiaドライバの前にロードを試みるためにpre:コマンドを使用しました。 blocklist.confを使用してブロックできましたが、グラフィックカードもnvidiaで、回復モードでシェルに入ることはできません。

https://github.com/NVIDIA/deepops/blob/master/virtual/README.md#bootloader-changes

https://askubuntu.com/questions/1247058/how-do-i-confirm-that-vfio-is-working-in-20-04

---
lspci -nn | grep NVIDIA
03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF108GL [Quadro 600] [10de:0df8] (rev a1)
03:00.1 Audio device [0403]: NVIDIA Corporation GF108 High Definition Audio Controller [10de:0bea] (rev a1)
08:00.0 3D controller [0302]: NVIDIA Corporation GF110GL [Tesla M2090] [10de:1091] (rev a1)
08:00.1 Audio device [0403]: NVIDIA Corporation GF110 High Definition Audio Controller [10de:0e09] (rev a1)
---
lspci -nnk -d 10de:1091
08:00.0 3D controller [0302]: NVIDIA Corporation GF110GL [Tesla M2090] [10de:1091] (rev a1)
        Subsystem: NVIDIA Corporation GF110GL [Tesla M2090] [10de:0887]
        Kernel driver in use: nvidia
        Kernel modules: nvidiafb, nouveau, nvidia

"linux /boot/vmlinuz root=UUID=$uuid acpi=noirq intel_iommu=on iommu=pt vfio-pci ids=10de:1091,10de:0e09  vfio_iommu_type1 allow_unsafe_interrupts=1"

私は努力vfio_iommu_type1 allow_unsafe_interrupts=1しましたvfio_iommu_type1.allow_unsafe_interrupts=1


CONFIG_VFIO_IOMMU_TYPE1=y
CONFIG_VFIO_VIRQFD=y
CONFIG_VFIO=y
CONFIG_VFIO_NOIOMMU=y
CONFIG_VFIO_PCI=y
CONFIG_VFIO_PCI_VGA=y
CONFIG_VFIO_PCI_MMAP=y
CONFIG_VFIO_PCI_INTX=y
CONFIG_VFIO_PCI_IGD=y
CONFIG_VFIO_MDEV=m
CONFIG_VFIO_MDEV_DEVICE=m

grep -oE 'svm|vmx' /proc/cpuinfo | uniq
vmx

cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

bonding
pci_stub
vfio
vfio_iommu_type1
vfio_pci
kvm
kvm_intel

cat /etc/modules-load.d/vfio-pci.conf
vfio-pci

cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=10de:1091,10de:0e09
options vfio_iommu_type1 allow_unsafe_interrupts=1
---
cat /etc/modprobe.d/nvidia.conf 
softdep nvidia_384 pre: vfio-pci
#softdep radeon pre: vfio-pci
#softdep amdgpu pre: vfio-pci
softdep snd_hda_intel pre: vfio-pci
softdep nouveau pre: vfio-pci
softdep nvidia pre: vfio-pci
softdep nvidia* pre: vfio-pci
#softdep drm pre: vfio-pci
#softdep xhci_hdc pre: vfio-pci
#options kvm_amd avic=1

modprobe -c | grep vfio
options vfio_pci ids=10de:1091,10de:0e09
options vfio_iommu_type1 allow_unsafe_interrupts=1
softdep mdev post: vfio_mdev
softdep nvidia_384 pre: vfio-pci
softdep snd_hda_intel pre: vfio-pci
softdep nouveau pre: vfio-pci
softdep nvidia pre: vfio-pci
softdep nvidia* pre: vfio-pci

cat /etc/initramfs-tools/modules
# List of modules that you want to include in your initramfs.
# They will be loaded at boot time in the order below.
#
# Syntax:  module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
vhost-net

journalctl -b | grep vfio
Dec 10 19:35:17 osboxes kernel: Command line: BOOT_IMAGE=/boot/vmlinuz root=UUID=ef2ecb3b-8e9a-4b20-bf15-47e0c7c98a1f acpi=noirq intel_iommu=on iommu=pt vfio-pci ids=10de:1091,10de:0e09 vfio_iommu_type1 allow_unsafe_interrupts=1
Dec 10 19:35:17 osboxes kernel: Kernel command line: BOOT_IMAGE=/boot/vmlinuz root=UUID=ef2ecb3b-8e9a-4b20-bf15-47e0c7c98a1f acpi=noirq intel_iommu=on iommu=pt vfio-pci ids=10de:1091,10de:0e09 vfio_iommu_type1 allow_unsafe_interrupts=1
Dec 10 19:35:17 osboxes systemd-modules-load[518]: Module 'vfio' is built in
Dec 10 19:35:17 osboxes systemd-modules-load[518]: Module 'vfio_iommu_type1' is built in
Dec 10 19:35:17 osboxes systemd-modules-load[518]: Module 'vfio_pci' is built in
Dec 10 19:35:17 osboxes systemd-modules-load[518]: Module 'vfio_pci' is built in

編集:はい、nouveauのみをブラックリストに追加してもドライバが読み込まれていない場合でも、ブラックリストnouveau以外のすべての設定を削除しましたが、nvidiaドライバも表示されませんでした。ブラックリストを使用すると、すべてが正常です。

関連情報