LinuxQuestions.org
Register a domain and help support LQ
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices

Reply
 
Search this Thread
Old 02-24-2012, 01:05 AM   #1
hydraMax
Member
 
Registered: Jul 2010
Location: Skynet
Distribution: Debian + Emacs
Posts: 467
Blog Entries: 60

Rep: Reputation: 51
xorg.conf: dual monitor with xinerama


Hi. I'm trying to use a set up a dual monitor display with Xinerama, using the onboard graphics system for my PC. The graphics system is a "ATI Technologies Inc Device 9715" with one VGA port and one DVI-D port, which Gnu/Linux is running in VGA compatibility mode (no DRI):

Code:
lspci -xxv
<snip>
01:05.0 VGA compatible controller: ATI Technologies Inc Device 9715 (prog-if 00 [VGA controller])
	Subsystem: Giga-byte Technology Device d000
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 4 bytes
	Interrupt: pin A routed to IRQ 18
	Region 0: Memory at d0000000 (32-bit, prefetchable) [size=256M]
	Region 1: I/O ports at ee00 [size=256]
	Region 2: Memory at fdee0000 (32-bit, non-prefetchable) [size=64K]
	Region 5: Memory at fdd00000 (32-bit, non-prefetchable) [size=1M]
	Expansion ROM at <unassigned> [disabled]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
00: 02 10 15 97 07 00 10 00 00 00 00 03 01 00 80 00
10: 08 00 00 d0 01 ee 00 00 00 00 ee fd 00 00 00 00
20: 00 00 00 00 00 00 d0 fd 00 00 00 00 58 14 00 d0
30: 00 00 00 00 50 00 00 00 00 00 00 00 0a 01 00 00
<snip>
If I start X without a config file, it just displays the same thing on each monitor. If I create an autoconfigured xorg.conf file, the xorg.conf file only provides information for one of the monitors, and doesn't contain any info about Xinerama. After comparing autogenerated config files (with only one monitor plugged in at a time), examining bus settings in the procfs, and looking at sample multihead configs that I found online, I was able to come up with an xorg.conf like so:

Code:
# cat /etc/X11/xorg.conf
Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen 0 "Screen0" 1280 0
	Screen 1 "Screen1" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
	Option "Xinerama" "1"
EndSection

Section "Files"
	ModulePath   "/usr/lib64/xorg/modules"
	FontPath     "/usr/share/fonts/misc/"
	FontPath     "/usr/share/fonts/TTF/"
	FontPath     "/usr/share/fonts/OTF/"
	FontPath     "/usr/share/fonts/Type1/"
	FontPath     "/usr/share/fonts/100dpi/"
	FontPath     "/usr/share/fonts/75dpi/"
EndSection

Section "Module"
	Load  "extmod"
	Load  "record"
	Load  "dbe"
	Load  "dri2"
	Load  "dri"
	Load  "glx"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/input/mice"
	Option	    "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
	#DisplaySize	  310   230	# mm
	Identifier   "Monitor0"
	VendorName   "CPQ"
	ModelName    "CPQ TFT5010"
	HorizSync    32.0 - 60.0
	VertRefresh  57.0 - 85.0
	Option	    "DPMS"
EndSection

Section "Monitor"
	#DisplaySize	  380   300	# mm
	Identifier   "Monitor1"
	VendorName   "WDE"
	ModelName    "LCM-19v7"
	HorizSync    30.0 - 82.0
	VertRefresh  56.0 - 76.0
	Option	    "DPMS"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "NoAccel"            	# [<bool>]
        #Option     "SWcursor"           	# [<bool>]
        #Option     "Dac6Bit"            	# [<bool>]
        #Option     "Dac8Bit"            	# [<bool>]
        #Option     "BusType"            	# [<str>]
        #Option     "CPPIOMode"          	# [<bool>]
        #Option     "CPusecTimeout"      	# <i>
        #Option     "AGPMode"            	# <i>
        #Option     "AGPFastWrite"       	# [<bool>]
        #Option     "AGPSize"            	# <i>
        #Option     "GARTSize"           	# <i>
        #Option     "RingSize"           	# <i>
        #Option     "BufferSize"         	# <i>
        #Option     "EnableDepthMoves"   	# [<bool>]
        #Option     "EnablePageFlip"     	# [<bool>]
        #Option     "NoBackBuffer"       	# [<bool>]
        #Option     "DMAForXv"           	# [<bool>]
        #Option     "FBTexPercent"       	# <i>
        #Option     "DepthBits"          	# <i>
        #Option     "PCIAPERSize"        	# <i>
        #Option     "AccelDFS"           	# [<bool>]
        #Option     "IgnoreEDID"         	# [<bool>]
        #Option     "CustomEDID"         	# [<str>]
        #Option     "DisplayPriority"    	# [<str>]
        #Option     "PanelSize"          	# [<str>]
        #Option     "ForceMinDotClock"   	# <freq>
        #Option     "ColorTiling"        	# [<bool>]
        #Option     "VideoKey"           	# <i>
        #Option     "RageTheatreCrystal" 	# <i>
        #Option     "RageTheatreTunerPort" 	# <i>
        #Option     "RageTheatreCompositePort" 	# <i>
        #Option     "RageTheatreSVideoPort" 	# <i>
        #Option     "TunerType"          	# <i>
        #Option     "RageTheatreMicrocPath" 	# <str>
        #Option     "RageTheatreMicrocType" 	# <str>
        #Option     "ScalerWidth"        	# <i>
        #Option     "RenderAccel"        	# [<bool>]
        #Option     "SubPixelOrder"      	# [<str>]
        #Option     "ClockGating"        	# [<bool>]
        #Option     "VGAAccess"          	# [<bool>]
        #Option     "ReverseDDC"         	# [<bool>]
        #Option     "LVDSProbePLL"       	# [<bool>]
        #Option     "AccelMethod"        	# <str>
        #Option     "DRI"                	# [<bool>]
        #Option     "ConnectorTable"     	# <str>
        #Option     "DefaultConnectorTable" 	# [<bool>]
        #Option     "DefaultTMDSPLL"     	# [<bool>]
        #Option     "TVDACLoadDetect"    	# [<bool>]
        #Option     "ForceTVOut"         	# [<bool>]
        #Option     "TVStandard"         	# <str>
        #Option     "IgnoreLidStatus"    	# [<bool>]
        #Option     "DefaultTVDACAdj"    	# [<bool>]
        #Option     "Int10"              	# [<bool>]
        #Option     "EXAVSync"           	# [<bool>]
        #Option     "ATOMTVOut"          	# [<bool>]
        #Option     "R4xxATOM"           	# [<bool>]
        #Option     "ForceLowPowerMode"  	# [<bool>]
        #Option     "DynamicPM"          	# [<bool>]
        #Option     "NewPLL"             	# [<bool>]
        #Option     "ZaphodHeads"        	# <str>
	Identifier  "Card0"
	Driver      "radeon"
	BusID       "PCI:1:5:0"
	Screen 0
EndSection

Section "Device"
	Identifier  "Card1"
	Driver      "radeon"
	BusID       "PCI:1:5:1"
	Screen 1
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	SubSection "Display"
		Viewport   0 0
		Depth     1
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     4
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     8
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     15
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     16
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

Section "Screen"
	Identifier "Screen1"
	Device     "Card1"
	Monitor    "Monitor1"
	SubSection "Display"
		Viewport   0 0
		Depth     1
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     4
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     8
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     15
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     16
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection
However, when I start X with this config, I still do not get a multi-head display: it is still the same display duplicated across monitors. When I query Xinerama, it appears as though two heads are present, but they have the same origin point:

Code:
# xinequery 
Xinerama extension detected on display: :0
Detected Xinerama version: 1.1
Detected heads: 2
Screen number: 0. Origin: 0,0. Dimensions: 1024x768
Screen number: 1. Origin: 0,0. Dimensions: 1024x768
Does anyone know what I have overlooked in my xorg.conf that is preventing this from giving me a multi-head display? (separate screen on each monitor that I can move my mouse across)
 
Old 02-24-2012, 04:23 AM   #2
adamk75
Senior Member
 
Registered: May 2006
Posts: 3,091

Rep: Reputation: 396Reputation: 396Reputation: 396Reputation: 396
Is there some reason you are trying to use xinerama, rather than xrandr?

Adam
 
Old 02-24-2012, 01:14 PM   #3
hydraMax
Member
 
Registered: Jul 2010
Location: Skynet
Distribution: Debian + Emacs
Posts: 467
Blog Entries: 60

Original Poster
Rep: Reputation: 51
Quote:
Originally Posted by adamk75 View Post
Is there some reason you are trying to use xinerama, rather than xrandr?

Adam
To be honest, its been years and years since I last used xrandr and I remember very little about it. I used Nvidia TwinView + Xinerama for a long time, and this worked really well because my WM has full Xinerama support built in. But I'll take a look at it.
 
Old 02-24-2012, 01:54 PM   #4
hydraMax
Member
 
Registered: Jul 2010
Location: Skynet
Distribution: Debian + Emacs
Posts: 467
Blog Entries: 60

Original Poster
Rep: Reputation: 51
I was able to get this working using xrandr, starting with a fresh xorg.conf, adding a Virtual line to the Display subsection, and adding the appropriate xrandr command to my .xsession file. Some (semi-)helpful instructions were available here:

http://www.thinkwiki.org/wiki/Xorg_RandR_1.2

This seems to be working fine. Xinerama also shows the correct screen sizes and origins when I query it. Only downside is my larger monitor will only go up to 1024x768, whereas it used to go up to 1280x1024, but perhaps the onboard graphics system doesn't support that high a resolution. So I'll mark this thread solved.
 
Old 02-24-2012, 02:35 PM   #5
adamk75
Senior Member
 
Registered: May 2006
Posts: 3,091

Rep: Reputation: 396Reputation: 396Reputation: 396Reputation: 396
You can try creating a modeline for 1280x1024 for the monitor and adding it to that specific Monitor section of your xorg.conf file. Then you might be able to select it.

Adam
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
xorg.conf , nvidia (dual-monitor) and Ubuntu 11.10 linux87n Linux - Newbie 5 12-01-2011 01:42 PM
Dual Monitor: 2nd monitor not coming up -- xorg.conf missing something? Hewson Linux - Hardware 3 10-20-2009 11:24 AM
Xinerama dual-head xorg.conf debug wilsonsamm Linux - Desktop 0 10-05-2009 05:33 PM
HD3200 Dual monitor xorg.conf R4cOOn Linux - Hardware 0 07-22-2009 12:30 PM
Need xorg.conf for Radeon 9800 dual monitor eric.r.turner Linux - Hardware 4 07-24-2008 08:14 PM


All times are GMT -5. The time now is 09:32 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration