Multiseat with VGAArbiter on 2 Radeon cards

Steffen Schaumburg steffen at schaumburger.info
Fri Dec 4 12:00:19 PST 2009


Hi everyone,
I'm trying to setup multiseat with 2 radeon cards using the new-ish VGA
arbiter thing. The latest info I could find about it is dated July and
said that one needs to get certain things from git but since linux
2.6.32 has arbiter I figured I give it a go. So I guess here is my first
question really: should this work with current release versions of X etc.?

The current status of my work is:
>From pressing the power button to kdm loading it displays in low-res on
just the monitor on the primary card. This is how it used to be when I
had just one card and I don't mind.
Then when kdm starts it turns the second monitor on (so far so good) but
then nothing. The primary monitor loads kdm as expected but the second
one stays on but black. It doesn't go into standby even after hours.
I tried swapping the monitors in kdmrc and it does exactly that - after
the swap the secondary monitor loads kdm as wanted, but the primary
monitor now turns on but stays black. This is the configuration I'm
using now.

Here's my current software:
Kernel: Gentoo 2.6.32 (I previously tried vanilla 2.6.32-rc8)
>Framebuffer: Originally I had this as modules which were loaded, but I
read in a guide that it has to be off so it's completely out now.
Xorg-server: 1.7.3 (previously tried 1.7.1)
Xorg ati drivers (xf86-video-ati): 6.12.4
libpciaccess: 0.10.9
kdm: 4.3.4 (previously tried 4.3.3)

And hardware (from lspci):
AthlonX2 with RX780/RX790 Chipset
Mobility Radeon HD 3450 (not sure why it thinks it's a mobility, its a
normal desktop PCIe card)
>this card is in the primary slot and has a 1440*900 LCD connected via
analog
RV710 [Radeon HD 4350]
>this card has a 1920*1080 LCD connected via DVI

My boot logs show that the kernel arbiter gets both cards. Both xorg
logs show that they got the right card. I couldn't find anything that
strikes me as strange or wrong except maybe these:
(Xorg.1.log line 298): (II) LoadModule: "vgahw"
(II) Loading /usr/lib64/xorg/modules/libvgahw.so
(II) Module vgahw: vendor="X.Org Foundation"
    compiled for 1.7.3, module version = 0.1.0
    ABI class: X.Org Video Driver, version 6.0
However further up it says it loaded both "ati" and "radeon" (same
version, as noted above) driver. Bit confused about that.

line 338: drmOpenDevice: node name is /dev/dri/card0
[drm] failed to load kernel module "radeon"
(EE) RADEON(0): [dri] RADEONDRIGetVersion failed to open the DRM
[dri] Disabling DRI.

This is a shame but I expected it. Can I really not have acceleration
with VGA arbiter?
Further down it finds the primary monitor's resolutions correctly.

Line 603: (II) RADEON(0): RandR 1.2 enabled, ignore the following RandR
disabled message.
(WW) RADEON(0): Option "ProbeAllGpus" is not used
(--) RandR disabled
(II) Found 2 VGA devices: arbiter wrapping enabled

I attached both full logs. Xorg.0.log is for the secondary card&monitor,
ie. the one which is working.

My xorg.conf (I commented out the input stuff as with it on I couldn't
use either keyboard or mouse on the working monitor. I did confirm each
device name by doing "cat device" but there were errors in the xorg logs
as well):
Section "ServerFlags"
#    Option         "DefaultServerLayout" "Seat0"
    Option         "AllowMouseOpenFail"  "true"
#    Option         "AutoAddDevices"      "false"
EndSection


Section "ServerLayout"
    Identifier    "Seat0"
    Screen    0    "Screen0" 0 0
#    InputDevice    "Keyboard0" "CoreKeyboard"
#    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "ServerLayout"
    Identifier    "Seat1"
    Screen    1    "Screen1" 0 0
#    InputDevice    "Keyboard1" "CoreKeyboard"
#    InputDevice    "Mouse1" "CorePointer"
EndSection

Section "Device"
    Identifier    "GPU0"
    Driver    "ati"
    BusID          "PCI:1:0:0"
    Option      "ProbeAllGpus" "false"

EndSection

Section "Device"
    Identifier    "GPU1"
    Driver    "ati"
    BusID          "PCI:2:0:0"
    Option      "ProbeAllGpus" "false"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    Option         "DPMS"
EndSection

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

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

#Section "InputDevice"
#    Driver "evdev"
#    Option "Device"       "/dev/input/event4"
#    Identifier     "Keyboard0"
#    Option         "XkbModel" "evdev"
#    Option         "XkbLayout" "uk"
#    Option         "CoreKeyboard"
#EndSection

#Section "InputDevice"
#    Driver "evdev"
#    Option "Device"       "/dev/input/event2"
#    Identifier     "Keyboard1"
#    Option         "XkbModel" "evdev"
#    Option         "XkbLayout" "uk"
#    Option         "CoreKeyboard"
#EndSection

#Section "InputDevice"
#    Identifier     "Mouse0"
#    Driver         "evdev"
#    Option         "Device" "/dev/input/mouse2"
#EndSection

#Section "InputDevice"
#    Identifier     "Mouse1"
#    Driver         "evdev"
#    Option         "Device" "/dev/input/mouse0"
#EndSection


my kdmrc:
[General]
ConfigVersion=2.4
StaticServers=:0,:1
ReserveServers=:2,:3
ServerVTs=-7
ConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6
PidFile=/var/run/kdm.pid

[Xdmcp]
Enable=false
Willing=/usr/share/config/kdm/Xwilling

[Shutdown]

[X-*-Core]
Setup=/usr/share/config/kdm/Xsetup
Startup=/usr/share/config/kdm/Xstartup
Reset=/usr/share/config/kdm/Xreset
Session=/usr/share/config/kdm/Xsession
AllowRootLogin=false
AllowNullPasswd=false
AllowShutdown=Root
SessionsDirs=/usr/share/xsessions
#ClientLogFile=.xsession-errors-%d

[X-*-Greeter]
LogoArea=Logo
LogoPixmap=/usr/share/apps/kdm/pics/kdelogo.png
MinShowUID=1000
MaxShowUID=65000
ForgingSeed=1259072861
Preloader=/usr/bin/preloadkde
UseTheme=true
Theme=/usr/share/apps/kdm/themes/oxygen-air

[X-:*-Core]
ServerCmd=/usr/bin/X -br -quiet
ServerArgsLocal=-nolisten tcp
AllowNullPasswd=true
AllowShutdown=All

[X-:*-Greeter]
PreselectUser=Previous
FocusPasswd=true
LoginMode=DefaultLocal
AllowClose=false

[X-:0-Core]
ServerArgsLocal=-nolisten tcp -layout Seat1 -novtswitch -isolateDevice
PCI:2:0:0
ClientLogFile=.xsession0-errors

[X-:0-Greeter]
DefaultUser=cath

[X-:1-Core]
ServerArgsLocal=-nolisten tcp -layout Seat0 -novtswitch -isolateDevice
PCI:1:0:0
ClientLogFile=.xsession1-errors

[X-:1-Greeter]
DefaultUser=steffen

My main source for these configs was:
http://wpkg.org/Configuring_multiseat_X_workstation

Anyone any ideas?

Thanks, Steffen



More information about the xorg mailing list