# Dual head issues, non-xinerama setup possible?



## ben___ (Feb 22, 2010)

Hey everyone, I'm having issues getting my dual head radeon card to work properly. Normally, I'm able to start X and run

`% xrandr --output VGA-0 --mode 1680x1050 --primary --right-of DVI-0`

At first, it gave me an error regarding virtual screen size, so I modified my xorg.conf to include "Virtual 3120 1050":


```
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        ModulePath   "/usr/local/lib/xorg/modules"
        FontPath     "/usr/local/lib/X11/fonts/misc/"
        FontPath     "/usr/local/lib/X11/fonts/TTF/"
        FontPath     "/usr/local/lib/X11/fonts/OTF"
        FontPath     "/usr/local/lib/X11/fonts/Type1/"
        FontPath     "/usr/local/lib/X11/fonts/100dpi/"
        FontPath     "/usr/local/lib/X11/fonts/75dpi/"
EndSection

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

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

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

Section "Monitor"
        #DisplaySize      430   270     # mm
        Identifier   "Monitor0"
        VendorName   "BNQ"
        ModelName    "BenQ G2000W"
        HorizSync    31.0 - 83.0
        VertRefresh  55.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"
        ### [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     "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     "ShowCache"                 # [<bool>]
        #Option     "DynamicClocks"             # [<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>]
        Identifier  "Card0"
        Driver      "radeon"
        VendorName  "ATI Technologies Inc"
        BoardName   "RV710 [Radeon HD 4350]"
        BusID       "PCI:2:0:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        SubSection "Display"
                Viewport   0 0
                Depth     1
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Virtual 3120 1050
        EndSubSection
EndSection
```

Now, both monitors work however they're being seen as 1 large virtual desktop, is it possible to force independent displays?

Thanks!

Ben


----------



## adamk (Feb 22, 2010)

It is possible to use separate screens, but you will need to setup separate monitor, screen and device sections in the xorg.conf file.  And, obviously you can't use xrandr.

Another side effect, though, is that direct rendering will be disabled, leaving you without any 2D or 3D acceleration.  

Adam


----------



## ben___ (Feb 22, 2010)

Thanks Adam!

Here's my updated xorg.conf, although I must be missing something as my screens are mirrored, any thoughts?


```
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        Screen      1  "Screen1" Leftof "Screen0"
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        ModulePath   "/usr/local/lib/xorg/modules"
        FontPath     "/usr/local/lib/X11/fonts/misc/"
        FontPath     "/usr/local/lib/X11/fonts/TTF/"
        FontPath     "/usr/local/lib/X11/fonts/OTF"
        FontPath     "/usr/local/lib/X11/fonts/Type1/"
        FontPath     "/usr/local/lib/X11/fonts/100dpi/"
        FontPath     "/usr/local/lib/X11/fonts/75dpi/"
EndSection

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

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

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

Section "Monitor"
        #DisplaySize      430   270     # mm
        Identifier   "Monitor0"
        VendorName   "BNQ"
        ModelName    "BenQ G2000W"
        Option      "DPMS"
EndSection

Section "Monitor"
        #DisplaySize      430   270     # mm
        Identifier   "Monitor1"
        VendorName   "BNQ"
        ModelName    "BenQ G2000W"
        Option      "DPMS"
EndSection

Section "Device"
        Option     "NoAccel"                    # [<bool>]
        Identifier  "Card0"
        Driver      "radeon"
        VendorName  "ATI Technologies Inc"
        BoardName   "RV710 [Radeon HD 4350]"
        BusID       "PCI:2:0:0"
EndSection

Section "Device"
        Option     "NoAccel"                    # [<bool>]
        Identifier  "Card1"
        Driver      "radeon"
        VendorName  "ATI Technologies Inc"
        BoardName   "RV710 [Radeon HD 4350]"
        BusID       "PCI:2:0:1"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

Section "Screen"
        Identifier "Screen1"
        Device     "Card1"
        Monitor    "Monitor1"
        DefaultDepth 24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection
```


----------



## adamk (Feb 22, 2010)

Yeah, I just tried with your xorg.conf file on an HD4350 here.  It's not even trying to load a separate instance of the radeon driver for the other screen, and I'm not sure why.  It certainly previously worked for me with an older ATI card (minus direct rendering, as I noted), but I'm not sure if this not working is due to a change in the X server, driver, or hardware itself.  I'm trying to find out on #radeon now on freenode, but haven't gotten a response back.

Adam


----------



## adamk (Feb 22, 2010)

Alright, I'm hearing on #radeon that it only works for certain versions of the driver and X server, but can't get any more details than that.  I'm guessing that it's broken in X server 1.6.*.

Adam


----------



## ben___ (Feb 22, 2010)

Bummer, thanks for your help Adam!


----------



## adamk (Feb 22, 2010)

No problem.  I have to say that without any 2D acceleration, you'd probably find the performance quite miserable, anyway 

Adam


----------



## joag (Dec 2, 2010)

*Dual Monitor - Unix (FreeBSD - Linux Slackware)*

This post is a bit old but in any case this is how I've managed to get things in a working state:

http://www.nixheiser.org/DualMonitor


----------

