You are not logged in.
Hi,
I have tried to utilise two screens, both to a seperate grahpics card but it does not seem to be working! Setting them as two different devices with BUS id's does not work and xrandr does not seem to be working either - it comes up that one of the screens is disconnected.
Here is my 60-radeon.conf:
Section "Device"
Identifier "Advanced Micro Devices, Inc. [AMD/ATI] RS780L [Radeon 3000]"
Driver "radeon"
BusID "PCI:1:05:0"
EndSection
Section "Device"
Identifier "Advanced Micro Devices, Inc. [AMD/ATI] Juniper XT [Radeon HD 6770]"
Driver "radeon"
BusID "PCI:2:00:0"
EndSection
And here is my xrandr command:
xrandr --output VGA-0 --auto --output DVI-0 --auto --right-of VGA-0
Any help would be greatly appreciated!
Offline
Since you're using the open source driver anyway, you might as well try prime provideroutput stuff.
First, remove the xorg.conf config or wherever you have that. (It probably works with that config present too. I don't really know.)
Then, make sure you have 3d acceleration on one gpu with glamor etc. all working. I think you need to use a compositing manager for this to work.
Then, try whether xrandr --listproviders shows to gpus.
Then with xrandr:
--setprovideroutputsource provider source
Set source as the source of display output images for provider.
For provider and source you can just use 0 for the first and 1 for the second gpu xrandr --listproviders returned. I don't think the manpage is very easily understandable but you can just try both possibilities.
Offline
Since you're using the open source driver anyway, you might as well try prime provideroutput stuff.
First, remove the xorg.conf config or wherever you have that. (It probably works with that config present too. I don't really know.)
Then, make sure you have 3d acceleration on one gpu with glamor etc. all working. I think you need to use a compositing manager for this to work.
Then, try whether xrandr --listproviders shows to gpus.Then with xrandr:
--setprovideroutputsource provider source Set source as the source of display output images for provider.
For provider and source you can just use 0 for the first and 1 for the second gpu xrandr --listproviders returned. I don't think the manpage is very easily understandable but you can just try both possibilities.
Hi,
Thank you for the reply!
This is the prompt I receive from --listproviders:
Providers: number : 2
Provider 0: id: 0x9f cap: 0xd, Source Output, Source Offload, Sink Offload crtcs: 2 outputs: 2 associated providers: 0 name:radeon
Provider 1: id: 0x58 cap: 0xd, Source Output, Source Offload, Sink Offload crtcs: 6 outputs: 3 associated providers: 0 name:radeon
and using --setprovideroutputsource 0 1 returns:
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 35 ()
Value in failed request: 0x9f
Serial number of failed request: 16
Current serial number in output stream: 17
I'm pretty clueless - any ideas?
Offline
Also from the man page:
This is only possible if source and provider have the Source Output and Sink Output capabilities, respectively.
At least one of the gpus should have "Sink Output" or so. From here I have no idea. I'm not using radeon right now, but maybe your software is not recent enough.
I really don't know. But you could try installing xf86-video-ati-git from aur https://aur.archlinux.org/packages/xf86-video-ati-git/ for possibly getting http://www.phoronix.com/scan.php?page=n … px=MTQyNDA
Maybe someone else knows what's the problem...
Offline
And here is my xrandr command:
xrandr --output VGA-0 --auto --output DVI-0 --auto --right-of VGA-0
Any help would be greatly appreciated!
This would be okay if you had both connectors on the same card.
I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.
Offline
I am interested in this as well. Here is my experience, it is slightly different, but I haven't got the second card working:
Two graphics cards (I want to use 3 eventually)---AMD HD6670 using the open source drivers. And 3 different monitors (want to use 5 eventually).
I have two monitors running on the top card just fine. Initially when I run xrandr, I get the following output:
Screen 0: minimum 320 x 200, current 3200 x 1200, maximum 16384 x 16384
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected primary 1920x1200+1280+0 (normal left inverted right x axis y axis) 519mm x 324mm
1920x1200 60.0*+
... more modes...
DVI-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
1280x1024 60.0*+ 75.0
... more modes ...
And the output of xrandr --listproviders is:
Providers: number : 2
Provider 0: id: 0xa2 cap: 0xf, Source Output, Sink Output, Source Offload,
Sink Offload crtcs: 6 outputs: 3 associated providers: 0 name:radeon
Provider 1: id: 0x58 cap: 0xf, Source Output, Sink Output, Source Offload,
Sink Offload crtcs: 6 outputs: 3 associated providers: 0 name:radeon
So it sees both my cards. So then, I run xrandr --setprovideroutputsource 1 0. If I subsequently run xrandr again, I get the following output:
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected primary 1920x1200+1280+0 (normal left inverted right x axis y axis) 519mm x 324mm
1920x1200 60.0*+
... other modes ...
DVI-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
1280x1024 60.0*+ 75.0
... other modes ...
DisplayPort-1-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-1 connected (normal left inverted right x axis y axis)
1280x1024 60.0 + 75.0
... other modes ...
DVI-1-1 disconnected
TL;DR, it can see the HDMI and DVI monitor connected to my top card, and the HDMI monitor connected to the bottom card.
So far so good. If I then do xrandr --output HDMI-1-1 --auto or xrandr --output HDMI-1-1 --right-of HDMI-0 or anything at all that changes HDMI-1-1 (the monitor plugged into my second card), the X server crashes. I can't find any interesting error reports at all in Xorg.0.log or errors.log or everything.log. The server goes down instantly and I am left at a login shell.
I am willing to experiment, does anybody have any ideas?
Offline
the X server crashes
It's my understanding that this should never happen, and always deserves a bug report upstream at xf86-video-ati or the X.org server.
What you can first try is installing xf86-video-ati-git from AUR to see whether it's already fixed and just not in a stable release yet.
The next step would just be collecting a stack trace and posting it on https://bugs.freedesktop.org/enter_bug.cgi?product=xorg in Driver/Radeon or so (only after looking whether ther is already a similar bug of course) depending on how the stacktrace looks.
You really want a second computer and do this with ssh because a paused X server that controls the keyboard/mouse and the tty is not something you want to deal with...
So you have an ssh server running and start X normally on your computer, then at the second computer you connect with ssh and attach gdb to the xserver with "sudo gdb /usr/bin/X $(pgrep -f /usr/bin/X)" or so. That will first pause the X Server and you have to "continue" with writing "c[enter]" or so. Then you do whatever you do to make it crash and when it is crashing, gdb will pause it again. Then you can get a backtrace with "bt[enter]". That will give you a list of function calls from which libraries lead up to the crash and possibly some extra information about parameters or so. Then quit with ctrl+d or "quit" or so.
If you get stuck on a black screen on the PC with the crashing X server, try "startx" over ssh and then killing it with ctrl+c again. Starting and killing X "properly" helped at least for me when that happened.
You can get a lot more information when you recompile some thing with debug symbols. For example if you have yaourt you can use yaourt -G xf86-video-ati-git to create a directory xf86-video-ati-git and download the PKGBUILD into it.
In the PKGBUILD you can add !strip to options so it looks like "options=('!libtool' '!strip')" and in the build() function anywhere before autoreconf/make add export CFLAGS="-O0 -ggdb" (and if there is c++ code, export CXXFLAGS="-O0 -ggdb", but for xf86-video-ati and the x server there isn't I think) and then simply reinstall with "makepkg -fi"
Now if you replicate the crash with packages with such debug information you can do "bt full" in gdb. Without these debug information you will just get a lot of "No symbol table info available." but with it you can get many variable values and function parameters that can help the developers greatly (possibly).
Offline
Thanks for all of this information, I wil try these steps when I get some time.
You really want a second computer and do this with ssh because a paused X server that controls the keyboard/mouse and the tty is not something you want to deal with...
Don't I know it, there has been several occasions where I have had to switch the PC off from the wall. I tried experimenting by starting a second X session (using xinit -- :1). But of course if I lose keyboard control, then there is no way to <Ctrl>-<Alt>-<F1> back to my original session... Cheers.
Offline
There are the "magic sysrq" keys that you can enable: https://wiki.archlinux.org/index.php/Ke … uts#Kernel
Then alt+print+r will in theory get your keyboard back from the X server but when a debugger is attached to X in my experience it did not work reliably.
Offline
My setup has an onboard Intel and an add-in ATI with two outputs. Works fine in Windows but doesn't want to work at all with Linux. I can define both cards and have them recognized in Xorg.0.log, but it just doesn't cooperate. Switching to console with both cards defined causes X server to restart before allowing switch to console. Works ok if I only use the default (no xorg.conf), with the onboard Intel. Can only list one or the other as a provider. Xvinfo shows both cards present however. Xinerama doesn't do anything useful.
Last edited by nomorewindows (2013-09-15 18:07:02)
I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.
Offline
So you have an ssh server running and start X normally on your computer, then at the second computer you connect with ssh and attach gdb to the xserver with "sudo gdb /usr/bin/X $(pgrep -f /usr/bin/X)" or so. That will first pause the X Server and you have to "continue" with writing "c[enter]" or so. Then you do whatever you do to make it crash and when it is crashing, gdb will pause it again. Then you can get a backtrace with "bt[enter]". That will give you a list of function calls from which libraries lead up to the crash and possibly some extra information about parameters or so. Then quit with ctrl+d or "quit" or so.
You can get a lot more information when you recompile some thing with debug symbols. For example if you have yaourt you can use yaourt -G xf86-video-ati-git to create a directory xf86-video-ati-git and download the PKGBUILD into it.
In the PKGBUILD you can add !strip to options so it looks like "options=('!libtool' '!strip')" and in the build() function anywhere before autoreconf/make add export CFLAGS="-O0 -ggdb" (and if there is c++ code, export CXXFLAGS="-O0 -ggdb", but for xf86-video-ati and the x server there isn't I think) and then simply reinstall with "makepkg -fi"
Now if you replicate the crash with packages with such debug information you can do "bt full" in gdb. Without these debug information you will just get a lot of "No symbol table info available." but with it you can get many variable values and function parameters that can help the developers greatly (possibly).
I may have to try this to see if it tells me anything about why ati refuses to work with an onboard intel.
I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.
Offline