Linux: Display output only goes to one graphics card after it starts udev

1

I've got two graphics cards in a system, both of which have all of the monitors enabled up until it gets to

:: Starting udevd...
done.

in the boot process. After it gets past there, the 2 monitors attached to the primary graphics card continue updating, while the monitor attached to the secondary card just stays at that screen forever.

The primary card is an ATI card (HD4770) using the radeon driver, and the secondary card is a NVidia card (NVS 290), using the nouveau driver.

I've used mkinitcpio to add the nouveau and radeon modules to the initramfs.

If I look at the kernel log (dmesg), I see that both of the cards were initialized (based on driver messages), but the ATI card is 'primary' and is the only one that is getting video output after udev is started.

There is no mention of the card whatsoever in any X apps, and Xrandr doesn't realize that the card even exists.

Is it possible to get the system to continue using both of the graphics cards for output, including for X?

Here is my 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

I've got it doing a lot of autoconfiguration in the xorg.conf, but it works just fine for the monitors on the primary card.

Proof that both of the cards, are, in fact, initialized:

$ 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

If it matters, I'm running Arch Linux on x86_64.

linux
arch-linux
amd-radeon
graphics
nvidia-quadro
asked on Super User Dec 23, 2011 by Eli • edited Mar 7, 2016 by fixer1234

1 Answer

0

AFAIK You need to use a different driver for that card ...

I'm using an nVidia card with the proprietary nVidia driver and it works well ... but you need to make some configurations to get it to work.

In order to use the proprietary driver ... you probably need to blacklist nouveau though as there are known compatibility issues ...

Consult 8.1. Interaction with the Nouveau Driver in the docs regarding that ..

Regarding you xorg.conf ... you most likely need to enable TwinView once you install the nVidia driver to configure the second card and third monitor.

answered on Super User Dec 28, 2011 by Edward J Beckett

User contributions licensed under CC BY-SA 3.0