Coming from a working dual-screen setup, I can't make the screens work separately.
So the idea is to be able to separately start/kill servers on any screen.
The X server can be launched either with startx,xinit or plain X. The first two seem of no use in this case as they'd keep telling the X server is already running and prevent from launching a second copy (both startx -- -layout vga :1 and xinit -layout vga :1) so I reverted back to X.
Now, that's where the fun begins:
X -layout vga :1
Works as expected: got image on the second screen, hdmi left intact.
X -layout hdmi :0
This would reset vga and bring the very same X that appears on hdmi screen.
What's interesting it that killing the latter would reveal the X previously started on vga. In any other combination killing one server would bring the second one as well.
The sidenotes:
0) Trying to mix fglrx for one screen with radeonhd for another either prevents X from starting or brings the entire system down. That's totally acceptable as radeonhd might not like the fglrx kernel module. What's not is that radeonhd keeps crashing on it's own in a dual-X setup.
1) Option "Xinerama" "off" doesn't seem to change anything.
2) Having Screen declaration under "Device" section like
Code:
Section "Device"
Identifier "vga-device"
Driver "fglrx"
BusID "PCI:1:5:0"
Screen 1
EndSection
Is required to run a dual-head config with fglrx but won't let X start in a single-display mode (what's I've been trying to achieve).
So having
Code:
Section "ServerFlags"
Option "DefaultServerLayout" "dual"
EndSection
Section "ServerLayout"
Identifier "dual"
Screen 0 "hdmi-screen"
Screen 1 "vga-screen" LeftOf "hdmi-screen"
EndSection
Section "ServerLayout"
Identifier "hdmi"
Screen 0 "hdmi-screen" 0 0
EndSection
Section "ServerLayout"
Identifier "vga"
Screen 1 "vga-screen" 0 0
EndSection
in order to start in dual-headed mode by default and custom mode manually launching X is not technically possible.
Here's my xorg.conf:
Code:
Section "ServerLayout"
Identifier "hdmi"
Screen 0 "hdmi-screen" 0 0
EndSection
Section "ServerLayout"
Identifier "vga"
Screen 1 "vga-screen" 0 0
EndSection
Section "ServerFlags"
Option "Xinerama" "off"
EndSection
Section "Monitor"
Identifier "hdmi-monitor"
ModeLine "1920x1080" 138.5 1920 1968 2000 2080 1080 1083 1088 1111 +vsync
Option "VendorName" "LG"
Option "ModelName" "42LF75"
Option "DPMS" "true"
EndSection
Section "Monitor"
Identifier "vga-monitor"
ModeLine "1280x1024" 135.0 1280 1296 1440 1688 1024 1025 1028 1066
Option "VendorName" "Samsung"
Option "ModelName" "740BF"
Option "DPMS" "true"
EndSection
Section "Device"
Identifier "hdmi-device"
Driver "fglrx"
BusID "PCI:1:5:0"
EndSection
Section "Device"
Identifier "vga-device"
Driver "fglrx"
BusID "PCI:1:5:0"
EndSection
Section "Screen"
Identifier "hdmi-screen"
Device "hdmi-device"
Monitor "hdmi-monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080"
EndSubSection
EndSection
Section "Screen"
Identifier "vga-screen"
Device "vga-device"
Monitor "vga-monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024"
EndSubSection
EndSection
P.S.
You won't be able to initialize more
than one X server so soon. That's the reason why people is still using
nested servers (like Xephyr) under a multi-head Xorg to deploy the
multiseat model.
http://www.mail-archive.com/xorg@lis.../msg03640.html