Điểm:3

VFIO nvidia code 43 mặc dù ẩn máy ảo

lá cờ jp

Tôi đang sử dụng Ubuntu 21.04. Tôi có AMD Radeon RX550 và Nvidia GTX 1050Ti

Tôi đang cố gắng thiết lập thông qua VFIO cho thẻ nvidia trong máy ảo Windows. Windows báo cáo mã lỗi 43 trên thẻ nvidia trong trình quản lý thiết bị sau khi cài đặt trình điều khiển nvidia trên máy ảo và tôi bị kẹt với 800x600 trong VM.

Card chính là AMD ( tức là card hiện bài BIOS khi bật máy vật lý) Tôi đã xóa trình điều khiển nvidia, đưa vào danh sách đen cả nvidia và nouveau /etc/modprobe.d/nvideoa-graphics-drivers.conf

danh sách đen nvidia
tân danh sách đen

trong grub tôi đang gắn VFIO-PCI vào thẻ nvidea như vậy

GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on kvm.ignore_msrs=1 vfio-pci.ids=10de:1c82,10de:0fb9 vfio_iommu_type1.allow_unsafe_interrupts=1 video=vesafb:off video=efifb:off"

Tôi đã thử làm theo các hướng dẫn này để giải quyết mã 43 https://mathiashueber.com/fight-error-43-nvidia-gpu-virtual-machine/

Cấu hình máy ảo của tôi:

<domain type="kvm">
  <name>win10</name>
  <uuid>59656775-5930-11df-bbda-8577d84ed8d3</uuid>
  <metadata>
    <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
      <libosinfo:os id="http://microsoft.com/win/10"/>
    </libosinfo:libosinfo>
  </metadata>
  <memory unit="KiB">8388608</memory>
  <currentMemory unit="KiB">8388608</currentMemory>
  <vcpu placement="static">2</vcpu>
  <os>
    <type arch="x86_64" machine="pc-q35-5.2">hvm</type>
    <loader readonly="yes" secure="yes" type="pflash">/usr/share/OVMF/OVMF_CODE_4M.secboot.fd</loader>
    <nvram>/var/lib/libvirt/qemu/nvram/win10_VARS.fd</nvram>
    <bootmenu enable="no"/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state="on"/>
      <vapic state="on"/>
      <spinlocks state="on" retries="8191"/>
      <vendor_id state="on" value="1234567890ab"/>
    </hyperv>
    <kvm>
      <hidden state="on"/>
    </kvm>
    <vmport state="off"/>
    <smm state="on"/>
    <ioapic driver="kvm"/>
  </features>
  <cpu mode="host-passthrough" check="none" migratable="on">
    <feature policy="disable" name="hypervisor"/>
  </cpu>
  <clock offset="localtime">
    <timer name="rtc" tickpolicy="catchup"/>
    <timer name="pit" tickpolicy="delay"/>
    <timer name="hpet" present="no"/>
    <timer name="hypervclock" present="no"/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled="no"/>
    <suspend-to-disk enabled="no"/>
  </pm>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type="file" device="cdrom">
      <driver name="qemu" type="raw"/>
      <source file="/home/maria/Downloads/virtio-win-0.1.185.iso"/>
      <target dev="sdb" bus="sata"/>
      <readonly/>
      <boot order="1"/>
      <address type="drive" controller="0" bus="0" target="0" unit="1"/>
    </disk>
    <disk type="file" device="disk">
      <driver name="qemu" type="qcow2"/>
      <source file="/home/maria/virtual_machines/windows10.qcow2"/>
      <target dev="sdc" bus="sata"/>
      <boot order="2"/>
      <address type="drive" controller="0" bus="0" target="0" unit="2"/>
    </disk>
    <controller type="usb" index="0" model="qemu-xhci" ports="15">
      <address type="pci" domain="0x0000" bus="0x02" slot="0x00" function="0x0"/>
    </controller>
    <controller type="sata" index="0">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x1f" function="0x2"/>
    </controller>
    <controller type="pci" index="0" model="pcie-root"/>
    <controller type="pci" index="1" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="1" port="0x10"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" multifunction="on"/>
    </controller>
    <controller type="pci" index="2" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="2" port="0x11"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x1"/>
    </controller>
    <controller type="pci" index="3" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="3" port="0x12"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x2"/>
    </controller>
    <controller type="pci" index="4" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="4" port="0x13"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x3"/>
    </controller>
    <controller type="pci" index="5" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="5" port="0x14"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x4"/>
    </controller>
    <controller type="pci" index="6" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="6" port="0x15"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x5"/>
    </controller>
    <controller type="pci" index="7" model="pcie-to-pci-bridge">
      <model name="pcie-pci-bridge"/>
      <address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
    </controller>
    <controller type="pci" index="8" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="8" port="0x16"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x6"/>
    </controller>
    <controller type="pci" index="9" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="9" port="0x8"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0" multifunction="on"/>
    </controller>
    <controller type="pci" index="10" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="10" port="0x9"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/>
    </controller>
    <controller type="pci" index="11" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="11" port="0xa"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x2"/>
    </controller>
    <controller type="pci" index="12" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="12" port="0xb"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x3"/>
    </controller>
    <controller type="pci" index="13" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="13" port="0xc"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x4"/>
    </controller>
    <controller type="pci" index="14" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="14" port="0xd"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x5"/>
    </controller>
    <controller type="pci" index="15" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="15" port="0xe"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x6"/>
    </controller>
    <controller type="pci" index="16" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="16" port="0xf"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x7"/>
    </controller>
    <controller type="pci" index="17" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="17" port="0x17"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x7"/>
    </controller>
    <controller type="pci" index="18" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="18" port="0x18"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0" multifunction="on"/>
    </controller>
    <controller type="pci" index="19" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="19" port="0x19"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x1"/>
    </controller>
    <controller type="pci" index="20" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="20" port="0x1a"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x2"/>
    </controller>
    <controller type="pci" index="21" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="21" port="0x1b"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x3"/>
    </controller>
    <controller type="pci" index="22" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="22" port="0x1c"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x4"/>
    </controller>
    <controller type="pci" index="23" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="23" port="0x1d"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x5"/>
    </controller>
    <controller type="pci" index="24" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="24" port="0x1e"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x6"/>
    </controller>
    <controller type="virtio-serial" index="0">
      <address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
    </controller>
    <interface type="network">
      <mac address="52:54:00:70:14:a4"/>
      <source network="default"/>
      <model type="virtio"/>
      <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
    </interface>
    <serial type="pty">
      <target type="isa-serial" port="0">
        <model name="isa-serial"/>
      </target>
    </serial>
    <console type="pty">
      <target type="serial" port="0"/>
    </console>
    <channel type="spicevmc">
      <target type="virtio" name="com.redhat.spice.0"/>
      <address type="virtio-serial" controller="0" bus="0" port="1"/>
    </channel>
    <input type="tablet" bus="usb">
      <address type="usb" bus="0" port="1"/>
    </input>
    <input type="mouse" bus="ps2"/>
    <input type="keyboard" bus="ps2"/>
    <graphics type="spice" autoport="yes">
      <listen type="address"/>
      <image compression="off"/>
    </graphics>
    <sound model="ich9">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/>
    </sound>
    <video>
      <model type="none"/>
    </video>
    <hostdev mode="subsystem" type="usb" managed="yes">
      <source>
        <vendor id="0x0461"/>
        <product id="0x4e04"/>
      </source>
      <address type="usb" bus="0" port="4"/>
    </hostdev>
    <hostdev mode="subsystem" type="usb" managed="yes">
      <source>
        <vendor id="0x093a"/>
        <product id="0x2510"/>
      </source>
      <address type="usb" bus="0" port="5"/>
    </hostdev>
    <hostdev mode="subsystem" type="pci" managed="yes">
      <source>
        <address domain="0x0000" bus="0x18" slot="0x00" function="0x0"/>
      </source>
      <rom file="/usr/share/ovmf/GP107.bin"/>
      <address type="pci" domain="0x0000" bus="0x06" slot="0x00" function="0x0"/>
    </hostdev>
    <hostdev mode="subsystem" type="pci" managed="yes">
      <source>
        <address domain="0x0000" bus="0x18" slot="0x00" function="0x1"/>
      </source>
      <address type="pci" domain="0x0000" bus="0x08" slot="0x00" function="0x0"/>
    </hostdev>
    <redirdev bus="usb" type="spicevmc">
      <address type="usb" bus="0" port="2"/>
    </redirdev>
    <redirdev bus="usb" type="spicevmc">
      <address type="usb" bus="0" port="3"/>
    </redirdev>
    <memballoon model="virtio">
      <address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
    </memballoon>
    <shmem name="looking-glass">
      <model type="ivshmem-plain"/>
      <size unit="M">32</size>
      <address type="pci" domain="0x0000" bus="0x07" slot="0x01" function="0x0"/>
    </shmem>
  </devices>
</domain>

như bạn có thể thấy tôi đã ẩn máy ảo và trong trình quản lý tác vụ Windows 10 bên dưới bộ xử lý, nó hiển thị như thể đó không phải là máy ảo.

Các nhóm IOMMU của tôi như sau

Nhóm IOMMU 0 00:00.0 Cầu nối máy chủ [0600]: Bộ xử lý lõi Intel Corporation DMI [8086:d130] (rev 11)
IOMMU Group 1 00:03.0 PCI bridge [0604]: Bộ xử lý lõi PCI Express Root Port 1 [8086:d138] (rev 11)
IOMMU Group 2 00:08.0 Thiết bị ngoại vi hệ thống [0880]: Thanh ghi quản lý hệ thống bộ xử lý lõi của Tập đoàn Intel [8086:d155] (rev 11)
IOMMU Group 3 00:08.1 Thiết bị ngoại vi hệ thống [0880]: Thanh ghi Semaphore và Scratchpad của Bộ xử lý lõi Intel Corporation [8086:d156] (rev 11)
IOMMU Group 4 00:08.2 Thiết bị ngoại vi hệ thống [0880]: Thanh ghi trạng thái và kiểm soát hệ thống bộ xử lý lõi của tập đoàn Intel [8086:d157] (rev 11)
IOMMU Group 5 00:08.3 Thiết bị ngoại vi hệ thống [0880]: Các thanh ghi khác của Bộ xử lý lõi Intel Corporation [8086:d158] (rev 11)
IOMMU Nhóm 6 00:10.0 Thiết bị ngoại vi hệ thống [0880]: Liên kết QPI của Bộ xử lý lõi Intel Corporation [8086:d150] (rev 11)
IOMMU Nhóm 6 00:10.1 Thiết bị ngoại vi hệ thống [0880]: Thanh ghi giao thức và định tuyến QPI của bộ xử lý lõi Intel Corporation [8086:d151] (rev 11)
IOMMU Nhóm 7 00:16.0 Bộ điều khiển giao tiếp [0780]: Bộ điều khiển HECI Chipset sê-ri 5/3400 sê-ri Intel Corporation [8086:3b64] (rev 06)
IOMMU Nhóm 7 00:16.3 Bộ điều khiển nối tiếp [0700]: Intel Corporation 5 Series/3400 Series Chipset KT Controller [8086:3b67] (rev 06)
Bộ điều khiển Ethernet IOMMU Group 8 00:19.0 [0200]: Kết nối mạng Gigabit 82578DM của Intel Corporation [8086:10ef] (rev 05)
Bộ điều khiển USB IOMMU Group 9 00:1a.0 [0c03]: Chipset sê-ri 5/3400 sê-ri Intel Corporation Bộ điều khiển máy chủ nâng cao USB2 [8086:3b3c] (rev 05)
IOMMU Group 10 00:1b.0 Thiết bị âm thanh [0403]: Chipset sê-ri 5/3400 sê-ri Intel Corporation Âm thanh độ nét cao [8086:3b56] (rev 05)
IOMMU Group 11 00:1c.0 PCI bridge [0604]: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 [8086:3b42] (rev 05)
Cầu PCI IOMMU Nhóm 12 00:1c.4 [0604]: Chipset sê-ri 5/3400 sê-ri Intel Corporation Cổng gốc PCI Express 5 [8086:3b4a] (rev 05)
Cầu PCI IOMMU Nhóm 13 00:1c.6 [0604]: Chipset sê-ri 5/3400 sê-ri Intel Corporation Cổng gốc PCI Express 7 [8086:3b4e] (rev 05)
IOMMU Group 14 00:1d.0 Bộ điều khiển USB [0c03]: Chipset sê-ri 5/3400 sê-ri Intel Corporation Bộ điều khiển máy chủ nâng cao USB2 [8086:3b34] (rev 05)
IOMMU Group 15 00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev a5)
IOMMU Group 16 00:1f.0 ISA bridge [0601]: Intel Corporation 3450 Chipset LPC Interface Controller [8086:3b16] (rev 05)
Bộ điều khiển bus RAID IOMMU Nhóm 16 00:1f.2 [0104]: Bộ điều khiển SATA của Intel Corporation [Chế độ RAID] [8086:2822] (rev 05)
IOMMU Group 17 01:00.0 Bộ điều khiển tương thích VGA [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Baffin [Radeon RX 550 640SP / RX 560/560X] [1002:67ff] (rev ff)
IOMMU Group 17 01:00.1 Thiết bị âm thanh [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X] [1002:aae0]
Bộ điều khiển tương thích VGA IOMMU Group 18 18:00.0 [0300]: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] [10de:1c82] (rev a1)
IOMMU Group 18 18:00.1 Thiết bị âm thanh [0403]: NVIDIA Corporation GP107GL High Definition Audio Controller [10de:0fb9] (rev a1)
IOMMU Group 19 3f:00.0 Cầu nối máy chủ [0600]: Bộ xử lý lõi của tập đoàn Intel Kiến trúc QuickPath Thanh ghi không lõi chung [8086:2c50] (rev 04)
IOMMU Group 19 3f:00.1 Cầu nối máy chủ [0600]: Bộ giải mã địa chỉ hệ thống kiến ​​trúc QuickPath của bộ xử lý lõi tập đoàn Intel Corporation [8086:2c81] (rev 04)
IOMMU Group 20 3f:02.0 Cầu nối máy chủ [0600]: Bộ xử lý lõi Intel Corporation QPI Link 0 [8086:2c90] (rev 04)
IOMMU Group 20 3f:02.1 Cầu máy chủ [0600]: Bộ xử lý lõi của Tập đoàn Intel QPI Vật lý 0 [8086:2c91] (rev 04)
Cầu máy chủ IOMMU Group 21 3f:03.0 [0600]: Bộ điều khiển bộ nhớ tích hợp bộ xử lý lõi của tập đoàn Intel [8086:2c98] (rev 04)
IOMMU Group 21 3f:03.1 Cầu máy chủ [0600]: Bộ xử lý lõi tích hợp bộ điều khiển bộ nhớ bộ điều khiển bộ giải mã địa chỉ mục tiêu của Tập đoàn Intel [8086:2c99] (rev 04)
IOMMU Group 21 3f:03.2 Cầu máy chủ [0600]: Thanh ghi kiểm tra bộ điều khiển bộ xử lý lõi tích hợp của Intel Corporation [8086:2c9a] (rev 04)
IOMMU Group 21 3f:03.4 Cầu máy chủ [0600]: Thanh ghi kiểm tra bộ điều khiển bộ xử lý lõi tích hợp của Intel Corporation [8086:2c9c] (rev 04)
IOMMU Group 22 3f:04.0 Cầu nối máy chủ [0600]: Thanh ghi điều khiển kênh 0 Bộ xử lý lõi tích hợp của Intel Corporation [8086:2ca0] (rev 04)
IOMMU Group 22 3f:04.1 Cầu nối máy chủ [0600]: Bộ điều khiển bộ nhớ tích hợp của Intel Corporation Kênh 0 Thanh ghi địa chỉ [8086:2ca1] (rev 04)
IOMMU Group 22 3f:04.2 Cầu nối máy chủ [0600]: Kênh bộ điều khiển bộ nhớ tích hợp bộ xử lý Intel Corporation 0 Thanh ghi xếp hạng [8086:2ca2] (rev 04)
IOMMU Group 22 3f:04.3 Cầu nối máy chủ [0600]: Bộ điều khiển bộ nhớ tích hợp của Intel Corporation Kênh 0 Thanh ghi điều khiển nhiệt [8086:2ca3] (rev 04)
IOMMU Group 23 3f:05.0 Cầu nối máy chủ [0600]: Thanh ghi điều khiển kênh 1 Bộ xử lý lõi tích hợp của Intel Corporation [8086:2ca8] (rev 04)
IOMMU Group 23 3f:05.1 Cầu nối máy chủ [0600]: Thanh ghi địa chỉ kênh 1 Bộ xử lý lõi tích hợp của Intel Corporation [8086:2ca9] (rev 04)
IOMMU Group 23 3f:05.2 Cầu nối máy chủ [0600]: Bộ điều khiển bộ nhớ tích hợp Bộ xử lý lõi Intel Corporation Kênh 1 Thanh ghi xếp hạng [8086:2caa] (rev 04)
IOMMU Group 23 3f:05.3 Cầu nối máy chủ [0600]: Bộ điều khiển bộ nhớ tích hợp của Intel Corporation Kênh 1 Thanh ghi điều khiển nhiệt [8086:2cab] (rev 04)

như bạn có thể thấy mọi thiết bị đều có nhóm IOMMU riêng (đây là bo mạch chủ của máy chủ).

Không có lỗi từ VFIO trong dmesg. Tôi không biết làm thế nào để giải quyết vấn đề này, bất kỳ trợ giúp nào cũng sẽ được đánh giá cao.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.