Saya memiliki dua kartu Radeon di mesin ini, Radeon HD 6570 dan Radeon HD 6950 :
lspci | grep VGA
01: 00.0 Pengontrol yang kompatibel VGA: Advanced Micro Devices [AMD] dan ATI Turks [Radeon HD 6570]
02: 00.0 Pengontrol yang kompatibel VGA: Advanced Micro Devices [AMD] dan ATI Cayman PRO [Radeon HD 6950]
Saya mencoba untuk mendapatkan VGA passthrough untuk bekerja dengan KVM pada Debian 7 (Wheezy), melewati 6950 sebagai kartu video sekunder ke tamu Windows 7. Ini berfungsi dengan baik jika saya daftar hitam radeon
melalui modul kernel /etc/modprobe.d/
.
Jika saya menghapus daftar hitam untuk menjalankan X11 (atau bahkan hanya konsol KMS ) pada 6570 radeon
modul tampaknya melekat pada kedua kartu:
dmesg | egrep "01: 00.0 | 02: 00.0 | radeon"
pci 0000: 01: 00.0: [1002: 6759] type 0 class 0x000300
pci 0000: 01: 00.0: reg 10: [mem 0xe0000000-0xefffffff 64bit pref]
pci 0000: 01: 00.0: reg 18: [mem 0xf7e20000-0xf7e3ff 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: mendukung D1 D2
pci 0000: 02: 00.0: : [1002: 6719] ketik 0 kelas 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: mendukung D1 D2
vgaarb: perangkat ditambahkan: PCI: 0000: 01: 00.0, decodes = io + mem, memiliki = io + mem, kunci = tidak ada
vgaarb: perangkat ditambahkan: PCI: 0000: 02: 00.0, decode = io + mem, memiliki = tidak ada , kunci = tidak ada
vgaarb: kontrol jembatan mungkin 0000: 02: 00.0
vgaarb: kontrol jembatan mungkin 0000: 01: 00.0
pci 0000: 01: 00.0: Boot perangkat video
[drm] mode pengaturan kernel radeon kernel diaktifkan.
radeon 0000: 01: 00.0: pengaturan waktu latency untuk 64
radeon 0000: 01: 00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M digunakan)
radeon 0000: 01: 00.0: GTT: 512M 0x0000000040000000 - 0x000000005FFFFFFF
[drm] radeon: 1024M VRAM siap memori
[drm] radeon: 512M memori siap GTT.
radeon 0000: 01: 00.0: irq 46 untuk MSI / MSI-X
radeon 0000: 01: 00.0: radeon: using MSI.
[drm] radeon: irq diinisialisasi.
radeon 0000: 01: 00.0: WB diaktifkan
[drm] radeon: ib pool ready.
[drm] radeon: manajemen daya yang diinisialisasi
fbcon: radeondrmfb (fb0) adalah perangkat utama
fb0: perangkat penyangga bingkai radeondrmfb
[drm] Inisialisasi radeon 2.12.0 20080528 untuk 0000: 01: 00.0 pada minor 0
radeon 0000: 02: 00.0: perangkat yang diaktifkan (0000 -> 0003)
radeon 0000: 02: 00.0: pengaturan waktu latency untuk 64
radeon 0000: 02: 00.0: VRAM: 2048M 0x0000000000000000 - 0x000000007FFFFFFF (2048M digunakan)
radeon 0000: 02: 00.0: GTT: 512M 0x0000000080000000 - 0x000000009FFFFFFF
[drm ] radeon: 2048M memori VRAM siap
[drm] radeon: 512M memori GTT siap.
radeon 0000: 02: 00.0: irq 49 untuk MSI / MSI-X
radeon 0000: 02: 00.0: radeon: using MSI.
[drm] radeon: irq diinisialisasi.
radeon 0000: 02: 00.0: WB diaktifkan
[drm] radeon: ib pool ready.
[drm] radeon: manajemen daya diinisialisasi
fb1: perangkat penyangga bingkai radeondrmfb
[drm] Inisialisasi radeon 2.12.0 20080528 untuk 0000: 02: 00.0 pada minor 1
[drm] radeon: perangkat finishing.
radeon 0000: 02: 00.0: ffff88041a941800 tidak perlu pinus
[drm] radeon: ttm finalized
pci-stub 0000: 02: 00.0: diklaim oleh stub
pci-stub 0000: 02: 00.0: irq 49 untuk MSI / MSI-X
Ini menyebabkan Windows 7 VM bluescreen saat boot.
Bagaimana saya bisa mengkonfigurasi hal-hal sehingga modul radeon
hanya menempel pada 6570 dan bukan 6950?
sumber
pci_stub.ids=1002:6719,1002:aa80
ke akhir baris perintah kernel dalam file konfigurasi grub. Saya menduga alasannya adalah bahwapci-stub
modul dibangun ke dalam kernel pada pengaturan saya.Dengan menggunakan jawaban genpfault sebagai referensi, saya membuat jawaban lain, saya pikir lebih sederhana.
Langkah pertama sama dengan di atas:
Kemudian saya membuat file bernama /lib/modprobe.d/pci-stub.conf, dengan argumen yang saya temukan:
Kemudian saya membuat file bernama /lib/modprobe.d/drm.conf, dengan softdep:
Dengan cara ini, ketika proses boot mencoba memuat drm, pertama-tama memuat pci-stub, yang menyimpan perangkat keras dari satu kartu video, dan mencegah drm untuk melampirkan ke beberapa perangkat.
Nanti Anda dapat menghapus reservasi di rc.local
modprobe -r pci-stub
,.Secara opsional Anda dapat memuat modul lain
modprobe another-module
untuk kartu itu.sumber