J'ai deux cartes Radeon dans cette machine, une Radeon HD 6570 et une Radeon HD 6950 :
lspci | grep VGA
01: 00.0 Contrôleur compatible VGA: Advanced Micro Devices [AMD] nee ATI Turks [Radeon HD 6570]
02: 00.0 Contrôleur compatible VGA: Advanced Micro Devices [AMD] nee ATI Cayman PRO [Radeon HD 6950]
J'essaie d'obtenir le passthrough VGA pour travailler avec KVM sur Debian 7 (Wheezy), en passant par le 6950 en tant que carte vidéo secondaire à un invité Windows 7. Cela fonctionne bien si je blackliste le radeon
module du noyau via /etc/modprobe.d/
.
Si je supprime la liste noire pour exécuter X11 (ou même juste une console KMS ) sur le 6570, le radeon
module semble s'attacher aux deux cartes:
dmesg | egrep "01: 00.0 | 02: 00.0 | radeon"
pci 0000: 01: 00.0: [1002: 6759] type 0 classe 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: prend en charge D1 D2
pci 0000: 02: 00.0 : [1002: 6719] type 0 classe 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: prend en charge D1 D2
vgaarb: périphérique ajouté: PCI: 0000: 01: 00.0, décode = io + mem, possède = io + mem, verrouille = aucun
vgaarb: périphérique ajouté: PCI: 0000: 02: 00.0, décode = io + mem, possède = aucun , verrous = aucun
vgaarb: contrôle de pont possible 0000: 02: 00.0
vgaarb: contrôle de pont possible 0000: 01: 00.0
pci 0000: 01: 00.0: Boot video device
[drm] radeon kernel modesetting enabled enabled.
radeon 0000: 01: 00.0: réglage de la minuterie de latence à 64
radeon 0000: 01: 00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M utilisé)
radeon 0000: 01: 00.0: GTT: 512M 0x0000000040000000 - 0x000000005FFFFFFF
[drm] radeon: 1024M de VRAM mémoire prête
[drm] radeon: 512M de mémoire GTT prête.
radeon 0000: 01: 00.0: irq 46 pour MSI / MSI-X
radeon 0000: 01: 00.0: radeon: en utilisant MSI.
[drm] radeon: irq initialisé.
radeon 0000: 01: 00.0: WB activé
[drm] radeon: ib pool ready.
[drm] radeon: gestion de l'alimentation initialisée
fbcon: radeondrmfb (fb0) est le périphérique principal
fb0: radeondrmfb frame buffer device
[drm] Radeon initialisé 2.12.0 20080528 pour 0000: 01: 00.0 sur le mineur 0
radeon 0000: 02: 00.0: dispositif d'activation (0000 -> 0003)
radeon 0000: 02: 00.0: réglage du minuteur de latence sur 64
radeon 0000: 02: 00.0: VRAM: 2048M 0x0000000000000000 - 0x000000007FFFFFFF (2048M utilisé)
radeon 0000: 02: 00.0: GTT: 512M 0x0000000080000000 - 0x000000009FFFFFFF
[drm ] radeon: 2048M de mémoire VRAM prête
[drm] radeon: 512 Mo de mémoire GTT prêts.
radeon 0000: 02: 00.0: irq 49 pour MSI / MSI-X
radeon 0000: 02: 00.0: radeon: en utilisant MSI.
[drm] radeon: irq initialisé.
radeon 0000: 02: 00.0: WB activé
[drm] radeon: ib pool ready.
[drm] radeon: gestion de l'alimentation initialisée
fb1: périphérique tampon de trame radeondrmfb
[drm] Radeon initialisé 2.12.0 20080528 pour 0000: 02: 00.0 sur le mineur 1
[drm] radeon: périphérique de finition.
radeon 0000: 02: 00.0: ffff88041a941800 annuler l'épinglage non nécessaire
[drm] radeon: ttm finalized
pci-stub 0000: 02: 00.0: revendiqué par stub
pci-stub 0000: 02: 00.0: irq 49 pour MSI / MSI-X
Cela provoque le bluescreen de la machine virtuelle Windows 7 au démarrage.
Comment puis-je configurer les choses pour que le module radeon
se connecte uniquement au 6570 et non au 6950?
la source
pci_stub.ids=1002:6719,1002:aa80
à la fin de la ligne de commande du noyau dans le fichier de configuration grub. Je soupçonne que la raison est que lepci-stub
module est intégré au noyau dans ma configuration.En utilisant la réponse genpfault comme référence, j'ai créé une autre réponse, je pense que c'est plus simple.
La première étape est la même que ci-dessus:
Ensuite, j'ai créé un fichier appelé /lib/modprobe.d/pci-stub.conf, avec les arguments que j'ai trouvés:
J'ai ensuite créé un fichier appelé /lib/modprobe.d/drm.conf, avec softdep:
De cette façon, lorsque le processus de démarrage tente de charger drm, charge d'abord pci-stub, qui réserve le matériel d'une carte vidéo et empêche drm de se connecter à un périphérique.
Plus tard , vous pouvez supprimer la réservation en rc.local,
modprobe -r pci-stub
.En option, vous pouvez charger un autre module
modprobe another-module
pour cette carte.la source