Eu tenho duas placas Radeon nesta máquina, uma Radeon HD 6570 e uma Radeon HD 6950 :
lspci | grep VGA
01: 00.0 controlador compatível com VGA: Advanced Micro Devices [AMD] e ATI Turks [Radeon HD 6570]
02: 00.0 controlador compatível com VGA: Advanced Micro Devices [AMD] e ATI Cayman PRO [Radeon HD 6950]
Estou tentando fazer com que a transmissão VGA funcione com o KVM no Debian 7 (Wheezy), passando pelo 6950 como uma placa de vídeo secundária para um convidado do Windows 7. Isso funciona bem se eu colocar o radeon
módulo do kernel na lista negra /etc/modprobe.d/
.
Se eu remover a lista negra para executar o X11 (ou mesmo apenas um console KMS ) no 6570, o radeon
módulo parecerá anexado aos dois cartões:
dmesg egrep "01: 00.0 | 02: 00.0 | radeon"
pci 0000: 01: 00.0: [1002: 6759] tipo 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: suporta D1 D2
pci 0000: 02: 00.0 : [1002: 6719] classe 0 do tipo 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: suporta D1 D2
vgaarb: dispositivo adicionado: PCI: 0000: 01: 00.0, decodifica = io + mem, possui = io + mem, bloqueios = nenhum
vgaarb: dispositivo adicionado: PCI: 0000: 02: 00.0, decodifica = io + mem, possui = nenhum , bloqueios = nenhum
vgaarb: controle de ponte possível 0000: 02: 00.0
vgaarb: controle de ponte possível 0000: 01: 00.0
pci 0000: 01: 00.0: inicialização do dispositivo de vídeo
[drm] modo de núcleo do radeon ativado.
radeon 0000: 01: 00.0: configurando o timer de latência para 64
radeon 0000: 01: 00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M usado)
radeon 0000: 01: 00.0: GTT: 512M 0x0000000040000000 - 0x000000005FFFFFFF
[drm] radeon memory ready
[drm] radeon: 512M de memória GTT pronta.
radeon 0000: 01: 00.0: irq 46 para MSI / MSI-X
radeon 0000: 01: 00.0: radeon: usando MSI.
[drm] radeon: irq inicializado.
radeon 0000: 01: 00.0: WB ativado
[drm] radeon: ib pool ready.
[drm] radeon: gerenciamento de energia inicializado
fbcon: radeondrmfb (fb0) é o dispositivo principal
fb0: dispositivo de buffer de quadro radeondrmfb
[drm] Radeon inicializado 2.12.0 20080528 para 0000: 01: 00.0 no dispositivo 0 de menor potência
Radeon 0000: 02: 00.0: habilitado (0000 -> 0003)
radeon 0000: 02: 00,0: ajuste temporizador latência para 64
radeon 0000: 02: 00,0: VRAM: 2048M 0x0000000000000000 - 0x000000007FFFFFFF (2048M utilizado)
radeon 0000: 02: 00,0: GTT: 512M 0x0000000080000000 - 0x000000009FFFFFFF
[DRM ] radeon: 2048M de memória VRAM pronta
[drm] radeon: 512M de memória GTT pronta.
radeon 0000: 02: 00.0: irq 49 para MSI / MSI-X
radeon 0000: 02: 00.0: radeon: usando MSI.
[drm] radeon: irq inicializado.
radeon 0000: 02: 00.0: WB ativado
[drm] radeon: ib pool ready.
[drm] radeon: gerenciamento de energia inicializado
fb1: dispositivo de buffer de quadro radeondrmfb
[drm] Radeon inicializado 2.12.0 20080528 para 0000: 02: 00.0 no
dispositivo de acabamento 1 [drm] radeon: final menor .
radeon 0000: 02: 00.0: ffff88041a941800 desafixar não é necessário
[drm] radeon: ttm finalizou o
pci-stub 0000: 02: 00.0: reivindicado pelo stub
pci-stub 0000: 02: 00.0: irq 49 para MSI / MSI-X
Isso faz com que a VM do Windows 7 seja exibida em azul na inicialização.
Como posso configurar as coisas para que o módulo seja radeon
conectado apenas ao 6570 e não ao 6950?
fonte
pci_stub.ids=1002:6719,1002:aa80
final da linha de comando do kernel no arquivo de configuração do grub. Eu suspeito que o motivo é que opci-stub
módulo está embutido no kernel na minha configuração.Usando a resposta genpfault como referência, criei outra resposta, acho mais simples.
O primeiro passo é o mesmo que acima:
Então eu criei um arquivo chamado /lib/modprobe.d/pci-stub.conf, com os argumentos que encontrei:
Então eu criei um arquivo chamado /lib/modprobe.d/drm.conf, com o softdep:
Dessa forma, quando o processo de inicialização tenta carregar o drm, primeiro carrega o pci-stub, que reserva o hardware de uma placa de vídeo e impede que o drm se conecte a algum dispositivo.
Mais tarde, você pode remover a reserva em rc.local
modprobe -r pci-stub
,.Opcionalmente, você pode carregar outro módulo
modprobe another-module
para esse cartão.fonte