Linux: A saída do monitor só vai para uma placa gráfica depois de iniciar o udev

1

Eu tenho duas placas gráficas em um sistema, ambas com todos os monitores habilitados até chegar a

:: Starting udevd...
done.

no processo de inicialização. Depois que ele passa por lá, os dois monitores conectados à placa gráfica principal continuam sendo atualizados, enquanto o monitor conectado à placa secundária permanece para sempre na tela.

A placa principal é uma placa ATI (HD4770) usando o driver radeon, e a placa secundária é uma placa NVidia (NVS 290), usando o driver nouveau.

Eu usei o mkinitcpio para adicionar os módulos nouveau e radeon ao initramfs.

Se eu olhar no log do kernel (dmesg), vejo que ambas as placas foram inicializadas (com base nas mensagens do driver), mas a placa ATI é 'primária' e é a única que obtém saída de vídeo após o udev é iniciado.

Não há menção do cartão em qualquer aplicativo X, e Xrandr não percebe que o cartão existe.

É possível fazer com que o sistema continue usando ambas as placas gráficas para saída, inclusive para X?

Aqui está o meu xorg.conf:

Section "Monitor"
    Identifier "LeftMonitor"
EndSection

Section "Monitor"
        Identifier "MainMonitor"
EndSection

Section "Monitor"
    Identifier "RightMonitor"
EndSection


Section "Device"
    Identifier "NVCard"
    Driver "nouveau"
EndSection

Section "Device"
    Identifier "ATICard"
    Driver "radeon"
EndSection


Section "Screen"
    Identifier "LeftScreen"
    Device "NVCard"
    Monitor "LeftMonitor"
    DefaultDepth 24
EndSection

Section "Screen"
    Identifier "MainScreen"
    Device  "ATICard"
    Monitor "MainMonitor"
    DefaultDepth 24
EndSection

Section "Screen"
    Identifier "RightScreen"                                                                                                                                                                                                                                               
    Device "ATICard"                                                                                                                                                                                                                                                       
    Monitor "RightMonitor"                                                                                                                                                                                                                                                 
    DefaultDepth 24                                                                                                                                                                                                                                                        
EndSection                                                                                                                                                                                                                                                                     


Section "ServerLayout"                                                                                                                                                                                                                                                         
    Identifier "Default Layout"                                                                                                                                                                                                                                            
    Screen  0       "MainScreen"    0 0                                                                                                                                                                                                                                    
    Screen  1       "RightScreen"   RightOf "MainScreen"                                                                                                                                                                                                                   
    Screen  2       "LeftScreen"    LeftOf  "MainScreen"                                                                                                                                                                                                                   
EndSection                                                                                                                                                                                                                                                                     

Section "ServerFlags"                                                                                                                                                                                                                                                          
    Option  "Xinerama"      "true"                                                                                                                                                                                                                                         
EndSection

Eu consegui fazer muita autoconfiguração no xorg.conf, mas funciona muito bem para os monitores na placa principal.

Prova de que ambas as cartas são, de fato, inicializadas:

$ dmesg | grep nouveau
[    0.665095] nouveau 0000:03:00.0: enabling device (0000 -> 0003)
[    0.665103] nouveau 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[    0.665109] nouveau 0000:03:00.0: setting latency timer to 64
[    0.666787] [drm] nouveau 0000:03:00.0: Detected an NV50 generation card (0x086f00a2)
[    0.672319] [drm] nouveau 0000:03:00.0: Attempting to load BIOS image from PRAMIN
[    0.672326] [drm] nouveau 0000:03:00.0: ... BIOS signature not found
[    0.672327] [drm] nouveau 0000:03:00.0: Attempting to load BIOS image from PROM
[    0.866916] [drm] nouveau 0000:03:00.0: ... appears to be valid
[    0.866919] [drm] nouveau 0000:03:00.0: BIT BIOS found
[    0.866920] [drm] nouveau 0000:03:00.0: Bios version 60.86.57.00
[    0.866922] [drm] nouveau 0000:03:00.0: TMDS table version 2.0
[    0.866924] [drm] nouveau 0000:03:00.0: Found Display Configuration Block version 4.0
[    0.866926] [drm] nouveau 0000:03:00.0: Raw DCB entry 0: 02011300 00000028
[    0.866928] [drm] nouveau 0000:03:00.0: Raw DCB entry 1: 01011302 00000010
[    0.866930] [drm] nouveau 0000:03:00.0: Raw DCB entry 2: 01000310 00000028
[    0.866931] [drm] nouveau 0000:03:00.0: Raw DCB entry 3: 02000312 00000010
[    0.866933] [drm] nouveau 0000:03:00.0: Raw DCB entry 4: 0000000e 00000000
[    0.866935] [drm] nouveau 0000:03:00.0: DCB connector table: VHER 0x40 5 14 2
[    0.866937] [drm] nouveau 0000:03:00.0:   0: 0x00002030: type 0x30 idx 0 tag 0x08
[    0.866939] [drm] nouveau 0000:03:00.0:   1: 0x00001130: type 0x30 idx 1 tag 0x07
[    0.866946] [drm] nouveau 0000:03:00.0: Adaptor not initialised, running VBIOS init tables.
[    0.866948] [drm] nouveau 0000:03:00.0: Parsing VBIOS init table 0 at offset 0xC311
[    0.890347] [drm] nouveau 0000:03:00.0: Parsing VBIOS init table 1 at offset 0xC688
[    0.912148] [drm] nouveau 0000:03:00.0: Parsing VBIOS init table 2 at offset 0xD2C9
[    0.912184] [drm] nouveau 0000:03:00.0: Parsing VBIOS init table 3 at offset 0xD3BB
[    0.913281] [drm] nouveau 0000:03:00.0: Parsing VBIOS init table 4 at offset 0xD5B5
[    0.913282] [drm] nouveau 0000:03:00.0: Parsing VBIOS init table at offset 0xD61A
[    1.340045] [drm] nouveau 0000:03:00.0: 2 available performance level(s)
[    1.340048] [drm] nouveau 0000:03:00.0: 0: memory 100MHz core 208MHz shader 416MHz fanspeed 100% timing 0
[    1.340051] [drm] nouveau 0000:03:00.0: 1: memory 400MHz core 459MHz shader 918MHz fanspeed 100% timing 2
[    1.340067] [drm] nouveau 0000:03:00.0: c: memory 399MHz core 459MHz shader 918MHz
[    1.344826] [drm] nouveau 0000:03:00.0: Detected 256MiB VRAM
[    1.344843] [drm] nouveau 0000:03:00.0: 512 MiB GART (aperture)
[    1.628178] [drm] nouveau 0000:03:00.0: allocated 1280x1024 fb: 0x310000, bo ffff880137763800
[    1.649087] fb0: nouveaufb frame buffer device
[    1.649092] [drm] Initialized nouveau 0.0.16 20090420 for 0000:03:00.0 on minor 0

$ dmesg | grep radeon
[    1.662486] [drm] radeon defaulting to kernel modesetting.
[    1.662489] [drm] radeon kernel modesetting enabled.
[    1.662530] radeon 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    1.662534] radeon 0000:01:00.0: setting latency timer to 64
[    1.662931] radeon 0000:01:00.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used)
[    1.662934] radeon 0000:01:00.0: GTT: 512M 0x0000000020000000 - 0x000000003FFFFFFF
[    1.662949] [drm] radeon: 512M of VRAM memory ready
[    1.662951] [drm] radeon: 512M of GTT memory ready.
[    1.662991] radeon 0000:01:00.0: irq 44 for MSI/MSI-X
[    1.662995] radeon 0000:01:00.0: radeon: using MSI.
[    1.663016] [drm] radeon: irq initialized.
[    1.667914] radeon 0000:01:00.0: WB enabled
[    1.713645] [drm] radeon: ib pool ready.
[    1.818118] [drm] radeon: power management initialized
[    1.954928] fbcon: radeondrmfb (fb1) is primary device
[    2.539672] fb1: radeondrmfb frame buffer device
[    2.539676] [drm] Initialized radeon 2.11.0 20080528 for 0000:01:00.0 on minor 1

Se for importante, estou executando o Arch Linux no x86_64.

    
por Eli 23.12.2011 / 03:43

1 resposta

0

AFAIK Você precisa usar um driver diferente para esse cartão ...

Estou usando uma placa da nVidia com o driver da nVidia proprietário e funciona bem ... mas você precisa fazer algumas configurações para que funcione.

Para usar o driver proprietário ... você provavelmente precisará incluir o nouveau na lista negra, pois há problemas de compatibilidade conhecidos ...

Consulte 8.1. Interação com o Nouveau Driver nos documentos relacionados a isso ..

Em relação a você, o xorg.conf ... você provavelmente precisará ativar o TwinView assim que instalar o driver nVidia para configurar o segundo cartão e o terceiro monitor.

    
por 28.12.2011 / 10:21