You are not logged in.

#1 2014-02-09 00:07:35

perseus69
Member
Registered: 2014-02-07
Posts: 4

X wont output to second graphics card

Hi all,

I have just installed Arch on a Dell Optiplex with 2 identical AMD/ATI Radeon HD (DVI) Graphics cards. I have used the the open source AMD/ATI driver xf86-video-ati. I also have Xorg/mesa/Enlightenment(E17) installed. I completed the install with a single monitor plugged into the DVI port of the first card. Since then, I have not been able to get any output to the DVI port on the second card and the second monitor is not visible in the Enlightenment display manager GUI. The BIOS provides the following system info:

PCI Information
SLOT1 = VGA Compatible
SLOT2 = VGA Compatible
...
Device Information
Video Controller = ATI Radeon HD Graphics

lspci reveals that Arch can see the 2 graphics cards:

$ lscpi |grep VGA
01:00.0	VGA compatible controller: Advanced Micro Devices, Inc [AMD/ATI] Caicos XT [Radeon HD 7470/8470]
03:00.0	VGA compatible controller: Advanced Micro Devices, Inc [AMD/ATI] Caicos XT [Radeon HD 7470/8470]

I assumed Xorg would automatically configure for multiple detected video devices but obviously not. When I run:

$ Xorg :0 -configure

It fails, I can't tell what the problem is from the Xorg log:

[  1199.955] (**) FontPath set to:
        /usr/share/fonts/misc/,
        /usr/share/fonts/TTF/,
        /usr/share/fonts/misc/,
        /usr/share/fonts/TTF/
[  1199.955] (**) ModulePath set to "/usr/lib/xorg/modules"
[  1199.955] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[  1199.955] (WW) Disabling Mouse0
[  1199.955] (WW) Disabling Keyboard0
[  1199.957] (II) [KMS] Kernel modesetting enabled.
[  1199.959] (II) [KMS] Kernel modesetting enabled.
[  1199.959] (EE)
[  1199.960] (EE) Backtrace:
[  1199.962] (EE) 0: Xorg (xorg_backtrace+0x48) [0x584ae8]
[  1199.963] (EE) 1: Xorg (0x400000+0x1887c9) [0x5887c9]
[  1199.965] (EE) 2: /usr/lib/libpthread.so.0 (0x7f0564100000+0xf870) [0x7f056410f870]
[  1199.966] (EE) 3: /usr/lib/xorg/modules/drivers/radeon_drv.so (0x7f05619be000+0x4497b) [0x7f0561a0297b]
[  1199.968] (EE) 4: Xorg (DoConfigure+0xd46) [0x468876]
[  1199.970] (EE) 5: Xorg (0x400000+0x77b54) [0x477b54]
[  1199.971] (EE) 6: Xorg (0x400000+0x3993b) [0x43993b]
[  1199.973] (EE) 7: /usr/lib/libc.so.6 (__libc_start_main+0xf5) [0x7f0562d73b05]
[  1199.974] (EE) 8: Xorg (0x400000+0x250ce) [0x4250ce]
[  1199.976] (EE)
[  1199.977] (EE) Segmentation fault at address 0x18
[  1199.979] (EE)
Fatal server error:
[  1199.981] (EE) Caught signal 11 (Segmentation fault). Server aborting
[  1199.983] (EE)
[  1199.984] (EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
for help.
[  1199.990] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[  1199.991] (EE)

So instead I've followed the Arch documentation for Xorg and made a file in /etc/xorg.cond.d/ called 20-radeon.conf with each "device" mapped to one of the PCI IDs from lspci output:

# First monitor
Section "Monitor"
        Identifier      "Monitor0"
EndSection

# Second monitor
Section "Monitor"
        Identifier      "Monitor1"
EndSection

# First GPU
Section "Device"
        Identifier      "Radeon0"
        Driver          "radeon"
        BusID           "PCI:1:0.0"
EndSection

# Second GPU
Section "Device"
        Identifier      "Radeon1"
        Driver          "radeon"
        BusID           "PCI:3:0.0"
EndSection

# 1st screen- belong to 1st GPU and 1st monitor
Section "Screen"
        Identifier      "Screen0"
        Device          "Radeon0"
        Monitor         "Monitor0"
EndSection

# 2nd screen- belongs to 2nd GPU and 2nd monitor
Section "Screen"
        Identifier      "Screen1"
        Device          "Radeon1"
        Monitor         "Monitor1"
EndSection

startx fails when this file is added to xorg.conf.d:

$ startx
...
Initializing built-in extension DRI2
Loading extension GLX
(EE) (EE) Server terminated with error(1). Closing log file. (EE) Please consult the X.Org Foundation support at http://wiki.x.org for help. (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

The tail of the Xorg log reports no screens found or device detected?

HAWAII, HAWAII, HAWAII, HAWAII, HAWAII, HAWAII, HAWAII, HAWAII,
        HAWAII, HAWAII, HAWAII, HAWAII
[  1097.728] (++) using VT number 1
[  1097.728] (II) [KMS] Kernel modesetting enabled.
[  1097.728] (II) [KMS] Kernel modesetting enabled.
[  1097.728] (EE) No devices detected.
[  1097.728] (EE)
Fatal server error:
[  1097.728] (EE) no screens found(EE)
[  1097.728] (EE)
Please consult the The X.Org Foundation support at http://wiki.x.org for help.
[  1097.728] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[  1097.728] (EE)

I've never had to manually configure monitor output before so it's likely I'm missing something obvious. I would rather stick to the open source video driver than install AMD's Catalyst driver but will if required. Any ideas would be greatly appreciated.

Cheers,
Clive

Offline

#2 2014-02-09 19:26:14

rebootl
Member
Registered: 2012-01-10
Posts: 431
Website

Re: X wont output to second graphics card

One thing is that you have the same error (in your config file) that was in a thread some time ago, just can't find it (the thread) right now.

The BusID notation in the Xorg config file is different from the lspci output, look closely at the wiki example.

You may want to try out xrandr as well. Though I'm not sure wether it works for such a setup...

To use xrandr you have to execute it from inside a running X session.

xrandr --listproviders

to show your devices.

Also see:

man xrandr

for further information.

Last edited by rebootl (2014-02-09 19:27:11)


Personal website: reboot.li
GitHub: github.com/rebootl

Offline

#3 2014-02-10 11:19:25

perseus69
Member
Registered: 2014-02-07
Posts: 4

Re: X wont output to second graphics card

You are correct about the bus ID notation, thanks. X server starts but still no monitor, the Xorg log is saying "Screen 1 deleted because of no matching config section."
Ok, so I've updated the conf file with the correct bus ID notation (note the ID elements are separated by colons only, no period) and I've also added a server layout section:

Section "ServerLayout"

        Identifier      "Layout0"
        Screen  0       "Screen0"
        Screen  1       "Screen1"
        Option          "Xinerama" "0"
EndSection

Section "Monitor"
        Identifier      "Monitor0"
EndSection

Section "Monitor"
        Identifier      "Monitor1"
EndSection

Section "Device"
        Identifier      "Radeon0"
        Driver          "radeon"
        BusID           "PCI:1:0:0"
        Screen          0
EndSection

Section "Device"
        Identifier      "Radeon1"
        Driver          "radeon"
        BusID           "PCI:3:0:0"
        Screen          1
EndSection

Section "Screen"
        Identifier      "Screen0"
        Device          "Radeon0"
        Monitor         "Monitor0"
EndSection

Section "Screen"
        Identifier      "Screen1"
        Device          "Radeon1"
        Monitor         "Monitor1"
EndSection

X starts now but still no output to second monitor. The log reports:

[   524.102] (II) [KMS] Kernel modesetting enabled.
[   524.102] (EE) Screen 1 deleted because of no matching config section.
[   524.102] (II) UnloadModule: "radeon"
[   524.102] (II) RADEON(0): Creating default Display subsection in Screen section "Screen0" for depth/fbbpp 24/32

I ommitted in the original post that I had already tried xrandr because I didnt want to add an extra problem to solve. It seems xrandr cant see the second monitor because it wasnt loaded by the X server.

$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
DVI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 510mm x 287mm
   1920x1080      60.0*+
   1280x1024      75.0     60.0
   1152x864       75.0
   1024x768       75.1     60.0
   800x600        75.0     60.3
   640x480        75.0     60.0
   720x400        70.1

$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x55 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 2 associated providers: 0 name:radeon

Where I think DisplayPort-0 must be the onboard VGA port.

So xrandr doesn't help unfortunately. I don't care what method I use, I just want two monitors working. Perhaps I'm missing something in the xorg config file?

Offline

#4 2014-02-10 19:09:44

rebootl
Member
Registered: 2012-01-10
Posts: 431
Website

Re: X wont output to second graphics card

The only obvious thing I can see is that you don't specify a position in the ServerLayout, e.g.:

        Screen  1       "Screen1" RightOf "Screen0"

I'd remove the screen from Device section and Xinerama from serverlayout, guess you tried that already...

This now looks more like an xorg.conf file, so I would put it under /etc/X11/xorg.conf .

Did you try wether you can get the second card working alone ?

Good luck


Personal website: reboot.li
GitHub: github.com/rebootl

Offline

#5 2014-02-11 08:33:16

perseus69
Member
Registered: 2014-02-07
Posts: 4

Re: X wont output to second graphics card

Hi rebootl,
I have edited the config file and relocated it to /etc/X112/xorg.conf as suggested and it still fails with the same errors in the log. I have also tried booting with only the second card connected and theres no output at, which is strange given that lspci can see both cards.

Offline

#6 2014-02-13 03:36:08

zir_blazer
Member
Registered: 2013-12-12
Posts: 35

Re: X wont output to second graphics card

I had a similar issue to yours trying to use two Monitors with two different Video Cards (But they were not identical, one was a Haswell integrated GPU and a Radeon 5770). It simply doesn't autodetects the other Monitor properly, so you have to manually configure it. This is a copypaste from a file named 09-gpus.conf at /etc/X11/xorg.conf.d/ which I did, you may have to adapt it for your setup, but this is what got mine working:

Section "Device"
    Identifier             "GPU Intel Haswell IGP"
    Driver                 "intel"
    BusID                  "PCI:0:2:0"
EndSection


Section "Device"
    Identifier             "GPU AMD Radeon 5770"
    Driver                 "radeon"
    BusID                  "PCI:1:0:0"
EndSection



Section "Monitor"
    Identifier             "Monitor Samsung P2370H"
    Option                 "Primary" "true"
    Option                 "PreferredMode" "1920x1080"
    Option                 "Position" "0 0"
EndSection


Section "Monitor"
    Identifier             "Monitor Samsung 932N+"
    Option                 "PreferredMode" "1280x1024"
    Option                 "Position" "1920 0"
EndSection



Section "Screen"
    Identifier             "Screen Samsung P2370H"
    Device                 "GPU Intel Haswell IGP"
    Monitor                "Monitor Samsung P2370H"
EndSection


Section "Screen"
    Identifier             "Screen Samsung 932N+"
    Device                 "GPU AMD Radeon 5770"
    Monitor                "Monitor Samsung 932N+"
EndSection



Section "ServerLayout"
    Identifier      "Main Layout"
    Screen          0 "Screen Samsung P2370H"
    Screen          1 "Screen Samsung 932N+" RightOf "Screen Samsung P2370H"
EndSection

Last edited by zir_blazer (2014-02-13 03:38:49)

Offline

Board footer

Powered by FluxBB