NVIDIA GPU용 vfio-pci 드라이버를 로드할 수 없습니다

NVIDIA GPU용 vfio-pci 드라이버를 로드할 수 없습니다

글쎄요, 더 이상 정보를 얻을 수 없어서 도움을 요청합니다. 나는 내가 생각할 수 있거나 온라인에서 찾을 수 있는 모든 것을 시도했습니다. virt-manager/KVM이 있는 VM에서 사용할 수 있도록 GPU 패스스루를 작동시키려고 합니다.

나는 대부분 이 가이드(아래)를 따라 모든 파일을 설정하고, 커널을 업데이트하고, grub 라인을 설정했습니다. 아래의 다른 질문에서는 결과를 얻을 수 없으므로 dmesg | grep vfio그것이 단서일 수도 있습니다. 한 가지 대답은 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 드라이버도 표시되지 않았습니다. 블랙리스트를 사용하면 모든 것이 정상입니다.

관련 정보