LINUX.ORG.RU

Установка драйвера Nvidia в QEMU на Windows 7

 , , , ,


0

1

Сделал всё как на вики написано: https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF Видеокарта пробросилась, но драйвер отказывается устанавливаться... Использовал кастомный OVMF для Windows 7

dmesg | grep -i -e DMAR -e IOMMU

[    0.033354] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.8-x86_64 root=UUID=65c8752c-5510-43b3-87d5-18ecd8bae04c rw quiet apparmor=1 security=apparmor udev.log_priority=3 intel_iommu=on iommu=pt vfio-pci.ids=10de:134f
[    0.033458] DMAR: IOMMU enabled
[    0.078444] DMAR: Host address width 39
[    0.078445] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.078452] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 7e3ff0505e
[    0.078453] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.078457] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[    0.078458] DMAR: RMRR base: 0x0000006f782000 end: 0x0000006f7a1fff
[    0.078459] DMAR: RMRR base: 0x00000078800000 end: 0x0000007affffff
[    0.078461] DMAR: ANDD device: 1 name: \_SB.PCI0.I2C0
[    0.078463] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.078464] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.078465] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.079981] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.250864] iommu: Default domain type: Passthrough (set via kernel command line)
[    0.504075] DMAR: ACPI device "device:6e" under DMAR at fed91000 as 00:15.0
[    0.504086] DMAR: No ATSR found
[    0.504122] DMAR: dmar0: Using Queued invalidation
[    0.504125] DMAR: dmar1: Using Queued invalidation
[    0.504428] pci 0000:00:00.0: Adding to iommu group 0
[    0.504439] pci 0000:00:02.0: Adding to iommu group 1
[    0.504457] pci 0000:00:14.0: Adding to iommu group 2
[    0.504466] pci 0000:00:14.2: Adding to iommu group 2
[    0.504480] pci 0000:00:15.0: Adding to iommu group 3
[    0.504493] pci 0000:00:16.0: Adding to iommu group 4
[    0.504502] pci 0000:00:17.0: Adding to iommu group 5
[    0.504515] pci 0000:00:1c.0: Adding to iommu group 6
[    0.504529] pci 0000:00:1c.4: Adding to iommu group 7
[    0.504541] pci 0000:00:1c.5: Adding to iommu group 8
[    0.504565] pci 0000:00:1f.0: Adding to iommu group 9
[    0.504575] pci 0000:00:1f.2: Adding to iommu group 9
[    0.504585] pci 0000:00:1f.3: Adding to iommu group 9
[    0.504595] pci 0000:00:1f.4: Adding to iommu group 9
[    0.504608] pci 0000:01:00.0: Adding to iommu group 10
[    0.504620] pci 0000:02:00.0: Adding to iommu group 11
[    0.504632] pci 0000:03:00.0: Adding to iommu group 12
[    0.504746] DMAR: Intel(R) Virtualization Technology for Directed I/O
[    0.530488] AMD-Vi: AMD IOMMUv2 driver by Joerg Roedel <jroedel@suse.de>
[    0.530489] AMD-Vi: AMD IOMMUv2 functionality not available on this system
[    1.094259]     intel_iommu=on

#!/bin/bash
shopt -s nullglob
for g in /sys/kernel/iommu_groups/*; do
    echo "IOMMU Group ${g##*/}:"
    for d in $g/devices/*; do
        echo -e "\t$(lspci -nns ${d##*/})"
    done;
done;
IOMMU Group 0:
	00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers [8086:1904] (rev 09)
IOMMU Group 1:
	00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 520 [8086:1921] (rev 0a)
IOMMU Group 10:
	01:00.0 3D controller [0302]: NVIDIA Corporation GM108M [GeForce 920MX] [10de:134f] (rev a2)
IOMMU Group 11:
	02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 10)
IOMMU Group 12:
	03:00.0 Network controller [0280]: Intel Corporation Dual Band Wireless-AC 3165 Plus Bluetooth [8086:3166] (rev 99)
IOMMU Group 2:
	00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21)
	00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31] (rev 21)
IOMMU Group 3:
	00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 [8086:9d60] (rev 21)
IOMMU Group 4:
	00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a] (rev 21)
IOMMU Group 5:
	00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] [8086:9d03] (rev 21)
IOMMU Group 6:
	00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 [8086:9d10] (rev f1)
IOMMU Group 7:
	00:1c.4 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 [8086:9d14] (rev f1)
IOMMU Group 8:
	00:1c.5 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #6 [8086:9d15] (rev f1)
IOMMU Group 9:
	00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-LP LPC Controller [8086:9d48] (rev 21)
	00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)
	00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d70] (rev 21)
	00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)

dmesg | grep -i vfio

[    0.033354] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.8-x86_64 root=UUID=65c8752c-5510-43b3-87d5-18ecd8bae04c rw quiet apparmor=1 security=apparmor udev.log_priority=3 intel_iommu=on iommu=pt vfio-pci.ids=10de:134f
[    1.120191] VFIO - User Level meta-driver version: 0.3
[    1.142365] vfio_pci: add [10de:134f[ffffffff:ffffffff]] class 0x000000/00000000
[  231.802193] vfio-pci 0000:01:00.0: enabling device (0002 -> 0003)
[  232.825201] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x1e@0x258
[  232.825218] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x19@0x900

lspci -nnk -d 10de:134f

01:00.0 3D controller [0302]: NVIDIA Corporation GM108M [GeForce 920MX] [10de:134f] (rev a2)
	Kernel driver in use: vfio-pci
	Kernel modules: nouveau

https://i.imgur.com/G1VcqNN.jpg https://i.imgur.com/3XVmnhz.png https://i.imgur.com/bs0LO0r.png

Драйвер nvidia встанет на видео картуя проброшенную в виртуалку только для линейки nvidia quadro.

Но это вроде бы можно обойти, смотри комментарий выше.

anonymous ()
Ответ на: комментарий от Kron4ek

Даже если использовать более ранний драйвер, допустим версии 335.23, то уже не пишет, что «Этот графический драйвер NVIDIA несовместим с данной версией Windows»

sawanzard ()
Ответ на: комментарий от anonymous

фрагмент кофига, со скрытием виртуализации:

  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state="on"/>
      <vapic state="on"/>
      <spinlocks state="on" retries="8191"/>
      <vendor_id state="on" value="asus"/>
    </hyperv>
    <kvm>
      <hidden state="on"/>
    </kvm>
    <vmport state="off"/>
  </features>
  <cpu mode="host-model" check="partial">
    <topology sockets="1" cores="2" threads="1"/>
    <feature policy="disable" name="hypervisor"/>
  </cpu>
anonymous ()

Ноутбук с гибридной графикой? Может у этой видеокарты нет физического выхода на монитор, и установщик драйвера для Windows видит это, и не проводит установку из-за этого?

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Такое тоже возможно, но были умельцы, которые «пробрасывали» успешно видеокарту на гибридной графике

sawanzard ()

сделай-ка $ virsh dumpxml vm-name|rg machine

насколько помню, с q35 на вин7 видео не заведется

You need to use legacy boot, then use the qemu argument method in libvirt to pass “x-vga=on”, and that should do the trick. OVMF in Windows 7 is tricky, I seldom got it to work right.

s-o ()
Последнее исправление: s-o (всего исправлений: 1)
3 ноября 2020 г.

Всё бесполезно, на этом ноутбуке не пробросить дискретную видеокарту…

sawanzard ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.