У меня есть две карты Radeon на этой машине, Radeon HD 6570 и Radeon HD 6950 :
lspci | grep VGA
01: 00.0 VGA-совместимый контроллер: Advanced Micro Devices [AMD], ни одна ATI Turks [Radeon HD 6570]
02: 00.0 VGA-совместимый контроллер: Advanced Micro Devices [AMD], новая ATI Cayman PRO [Radeon HD 6950]
Я пытаюсь заставить VGA работать с KVM в Debian 7 (Wheezy), проходя через 6950 в качестве вторичной видеокарты гостю Windows 7. Это работает нормально, если я помещаю черный список radeon
модуля ядра через /etc/modprobe.d/
.
Если я удаляю черный список для запуска X11 (или даже просто консоли KMS ) на 6570, radeon
модуль, кажется, прикрепляется к обеим платам:
Dmesg | egrep "01: 00.0 | 02: 00.0 | radeon"
pci 0000: 01: 00.0: [1002: 6759] тип 0, класс 0x000300
pci 0000: 01: 00.0: рег. 10: [mem 0xe0000000-0xefffffff 64-битный преф]
pci 0000: 01: 00.0: рег. 18: [mem 0xf7e20000-0xf7e3ffff 64-бит ]
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: поддерживает D1 D2
pci 0000: 02: 00.0 : [1002: 6719] тип 0 класс 0x000300
pci 0000: 02: 00.0: рег. 10: [mem 0xd0000000-0xdfffffff 64-битный преф]
pci 0000: 02: 00.0: рег. 18: [mem 0xf7d20000-0xf7d3ffff 64-бит]
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: поддерживает D1 D2
vgaarb: добавленное устройство: PCI: 0000: 01: 00.0, декодирование = io + mem,
владение = io + mem, блокировки = нет vgaarb: добавленное устройство: PCI: 0000: 02: 00.0, декодирование = io + mem, владение = нет , locks = none
vgaarb: возможно управление мостом 0000: 02: 00.0
vgaarb: возможно управление мостом 0000: 01: 00.0
pci 0000: 01: 00.0:
Включена настройка режима загрузочного видеоустройства [drm] radeon kernel.
radeon 0000: 01: 00.0: установка таймера задержки на 64
radeon 0000: 01: 00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (используется 1024M)
radeon 0000: 01: 00.0: GTT: 512M 0x0000000040000000 -
0x0000FFF 0MF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFXXXXXXXXXXX -XFX-PDEHE-PDE-BWFX-FSB-FSB-PRAM-ONE-PRAM-TQ память готова
[drm] radeon: 512M памяти GTT готова.
radeon 0000: 01: 00.0: irq 46 для MSI / MSI-X
radeon 0000: 01: 00.0: radeon: с использованием MSI.
[drm] radeon: irq инициализирован.
radeon 0000: 01: 00.0: WB включен
[drm] radeon: пул ib готов.
[drm] radeon: инициализированное управление
питанием fbcon: radeondrmfb (fb0) является основным устройством
. fb0: radeondrmfb устройство кадрового буфера
[drm] Инициализированный radeon 2.12.0 20080528 для 0000: 01: 00.0 на второстепенном 0
radeon 0000: 02: 00.0: разрешающее устройство (0000 -> 0003)
Radeon 0000: 02: 00.0: установка времени ожидания таймера 64
RADEON 0000: 02: 00.0: VRAM: 2048M 0x0000000000000000 - 0x000000007FFFFFFF (2048M используется)
RADEON 0000: 02: 00.0: GTT: 512M 0x0000000080000000 - 0x000000009FFFFFFF
[УЦП ] Radeon: готово 2048M памяти RAM
[drm] radeon: готово 512M памяти GTT.
radeon 0000: 02: 00.0: irq 49 для MSI / MSI-X
radeon 0000: 02: 00.0: radeon: с использованием MSI.
[drm] radeon: irq инициализирован.
radeon 0000: 02: 00.0: WB включен
[drm] radeon: пул ib готов.
[drm] radeon: инициализированное управление
питанием fb1: radeondrmfb устройство кадрового буфера
[drm] Инициализированное radeon 2.12.0 20080528 для 0000: 02: 00.0 на второстепенном 1
[drm] radeon: устройство завершения.
radeon 0000: 02: 00.0: ffff88041a941800 открепление не требуется
[drm] radeon: окончание ttm
pci-заглушка 0000: 02: 00.0: заявлено заглушкой
pci-stub 0000: 02: 00.0: irq 49 для MSI / MSI-X
Это приводит к тому, что виртуальная машина Windows 7 становится синей при загрузке.
Как я могу настроить все так, чтобы модуль radeon
подключался только к 6570, а не к 6950?
источник
pci_stub.ids=1002:6719,1002:aa80
в конец командной строки ядра файл конфигурации grub. Я подозреваю, что причина в том, чтоpci-stub
модуль встроен в ядро в моей установке.Используя ответ genpfault в качестве ссылки, я создал другой ответ, я думаю, более простой.
Первый шаг такой же, как указано выше:
Затем я создал файл с именем /lib/modprobe.d/pci-stub.conf, используя аргументы, которые я нашел:
Затем я создал файл /lib/modprobe.d/drm.conf с помощью softdep:
Таким образом, когда процесс загрузки пытается загрузить drm, сначала загружается pci-stub, который резервирует аппаратное обеспечение одной видеокарты и предотвращает подключение drm к какому-либо устройству.
Позже вы можете удалить бронирование в rc.local
modprobe -r pci-stub
.При желании вы можете загрузить другой модуль
modprobe another-module
для этой карты.источник