Ich habe zwei Radeon-Karten in dieser Maschine, eine Radeon HD 6570 und eine Radeon HD 6950 :
lspci | grep VGA
01: 00.0 VGA-kompatibler Controller: Erweiterte Mikrogeräte [AMD] nee ATI Turks [Radeon HD 6570]
02: 00.0 VGA-kompatibler Controller: Erweiterte Mikrogeräte [AMD] nee ATI Cayman PRO [Radeon HD 6950]
Ich versuche, VGA-Passthrough für die Arbeit mit KVM unter Debian 7 (Wheezy) zu erhalten, indem ich die 6950 als sekundäre Grafikkarte an einen Windows 7-Gast weitergebe. Dies funktioniert einwandfrei, wenn ich das radeon
Kernelmodul über auf die Blacklist setze /etc/modprobe.d/
.
Wenn ich die Blacklist entferne, um X11 (oder sogar nur eine KMS- Konsole) auf dem 6570 auszuführen, radeon
scheint das Modul mit beiden Karten verbunden zu sein:
dmesg | egrep 01: 00.0 | 02: 00.0 | radeon
pci 0000: 01: 00.0: [1002: 6759] Klasse 0 0x000300
pci 0000: 01: 00.0: reg 10: [mem 0xe0000000-0xefffffff 64bit pref]
pci 0000: 01: 00.0: reg 18: [mem 0xf7e20000-0xf7e3ffff 64bit ]
pci 0000: 01: 00.0: reg 20: [io 0xe000-0xe0ff]
pci 0000: 01: 00.0: reg 30: [mem 0xf7e00000-0xf7e1ffff pref]
pci 0000: 01: 00.0: unterstützt D1 D2
pci 0000: 02: 00.0 : [1002: 6719] Klasse 0 0x000300
pci 0000: 02: 00.0: reg 10: [mem 0xd0000000-0xdfffffff 64bit pref]
pci 0000: 02: 00.0: reg 18: [mem 0xf7d20000-0xf7d3ffff 64bit]
pci 0000: 02: 00.0: reg 20: [io 0xd000-0xd0ff]
pci 0000: 02: 00.0: reg 30: [mem 0xf7d00000-0xf7d1ffff pref]
pci 0000: 02: 00.0: unterstützt D1 D2
vgaarb: Gerät hinzugefügt: PCI: 0000: 01: 00.0, decodiert = io + mem, besitzt = io + mem, sperrt = keine
vgaarb: Gerät hinzugefügt: PCI: 0000: 02: 00.0, decodiert = io + mem, besitzt = keine , locks = none
vgaarb: Bridge-Steuerung möglich 0000: 02: 00.0
vgaarb: Bridge-Steuerung möglich 0000: 01: 00.0
pci 0000: 01: 00.0: Booten des Videogeräts
[drm] Radeon-Kernel-Modus aktiviert.
Radeon 0000: 01: 00.0: Latenzzeitgeber auf 64 setzen
Radeon 0000: 01: 00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M verwendet)
Radeon 0000: 01: 00.0: GTT: 512M 0x0000000040000000 - 0x00000000005FF
] 10FF speicher bereit
[drm] radeon: 512 MB GTT-Speicher bereit.
Radeon 0000: 01: 00.0: IRQ 46 für MSI / MSI-X
Radeon 0000: 01: 00.0: Radeon: Verwenden von MSI.
[drm] radeon: irq initialisiert.
Radeon 0000: 01: 00.0: WB aktiviert
[drm] Radeon: Ib Pool bereit.
[DRM] radeon: Power Management initialisiert
fbcon: radeondrmfb (fb0) ist Primärgerät
fb0: radeondrmfb Rahmenpuffervorrichtung
[DRM] Initialized radeon 2.12.0 20.080.528 für 0000: 01: 00.0 auf minor 0
radeon 0000: 02: 00,0: Zustimmeinrichtung (0000 -> 0003)
radeon 0000: 02: 00,0: Einstellung Latency Timer auf 64
radeon 0000: 02: 00,0: VRAM: 2048M 0x0000000000000000 - 0x000000007FFFFFFF (2048M verwendet)
radeon 0000: 02: 00,0: GTT: 512M 0x0000000080000000 - 0x000000009FFFFFFF
[DRM ] Radeon: 2048 MB VRAM-Speicher bereit
[drm] radeon: 512M GTT-Speicher bereit.
Radeon 0000: 02: 00.0: IRQ 49 für MSI / MSI-X
Radeon 0000: 02: 00.0: Radeon: Verwenden von MSI.
[drm] radeon: irq initialisiert.
Radeon 0000: 02: 00.0: WB aktiviert
[drm] Radeon: Ib Pool bereit.
[drm] radeon: Power Management initialisiert
fb1: radeondrmfb Frame Buffer Device
[drm] Initialisiert radeon 2.12.0 20080528 für 0000: 02: 00.0 auf Moll 1
[drm] radeon: Finishing Device.
radeon 0000: 02: 00.0: ffff88041a941800 nicht erforderlich
[drm] radeon: ttm finalisiert
pci-stub 0000: 02: 00.0: beansprucht von stub
pci-stub 0000: 02: 00.0: irq 49 für MSI / MSI-X
Dies führt dazu, dass die Windows 7-VM beim Start einen Bluescreen anzeigt.
Wie kann ich die Dinge so konfigurieren, dass das Modul radeon
nur an die 6570 und nicht an die 6950 angeschlossen wird?
quelle
pci_stub.ids=1002:6719,1002:aa80
Ende der Kernel-Befehlszeile in der Grub-Konfigurationsdatei hinzugefügt . Ich vermute, der Grund dafür ist, dass daspci-stub
Modul in meinem Setup in den Kernel integriert ist.Unter Verwendung von genpfault answer als Referenz habe ich eine andere Antwort erstellt, die meiner Meinung nach einfacher ist.
Der erste Schritt ist der gleiche wie oben:
Dann habe ich eine Datei mit dem Namen /lib/modprobe.d/pci-stub.conf erstellt, die die folgenden Argumente enthält:
Dann habe ich eine Datei mit dem Namen /lib/modprobe.d/drm.conf mit dem Namen softdep erstellt:
Auf diese Weise wird beim Versuch, drm zu laden, zuerst pci-stub geladen, wodurch die Hardware einer Grafikkarte reserviert wird und verhindert wird, dass drm an ein Gerät angeschlossen wird.
Später können Sie die Reservierung in rc.local, entfernen
modprobe -r pci-stub
.Optional können Sie ein anderes Modul
modprobe another-module
für diese Karte laden .quelle