debian/rules
   
Thu, 12 May 2005

The X Config

Well, I've had at least one email asking about the X Config for my Triple head setup.. So, I thought I'd chuck it up here, explaining the relevant bits.

Ok, to start with, you need to make sure your ServerFlags section turns on Xinerama:

Section "ServerFlags"
    ...
    Option  "Xinerama"  "1"
    ...
EndSection

Then, you need to create some Device sections for each head - with a dual head nvidia card, you can use the Screen option to distinguish between the outputs - I'm not sure if this is specific to the nvidia driver. With multiple cards, you must specify the BusID option - you can find out what the correct value is for your card by running 'X -scanbus' and checking the output (which on my system gets sent to /var/log/XFree86.0.log).

Here's what I use (First two are on a Dual head AGP card, the third is the PCI card):

Section "Device"
    Identifier  "nVidia GeForce FX 5200 - 0"
    Driver      "nvidia"
    BusID       "PCI:1:0:0"
    Option      "NvAgp" "1"
    Screen      0
EndSection

Section "Device"
    Identifier  "nVidia GeForce FX 5200 - 1"
    Driver      "nvidia"
    BusID       "PCI:1:0:0"
    Option      "NvAgp" "1"
    Screen      1
EndSection

Section "Device"
    Identifier  "nVidia GeForce2 MX400"
    Driver      "nvidia"
    BusID       "PCI:5:9:0"
    Option      "NvAgp" "1"
EndSection

Next up, you need to create some relevant Screen sections to go with each of the above. Childs play - this is so far, all bog standard X stuff. I have:

Section "Screen"
    Identifier  "Screen <x>"
    Device      "<device>"
    Monitor     "HP L1925"
    DefaultDepth    24
    SubSection "Display"
        Depth       24
        Modes       "1280x1024"
    EndSubSection
EndSection

Finally, You need to add each Screen to your ServerLayout section, to create a virtual definition of how your physical displays are set up. I have the following (note that the logical order of my displays in relation to the devices defined above is '2-0-1' from left to right)

Section "ServerLayout"
    Identifier  "Default Layout"
    Screen      0 "Screen 0"
    Screen      1 "Screen 1" rightOf "Screen 0"
    Screen      2 "Screen 2" leftOf "Screen 0"
    InputDevice ....
    ....
EndSection

And that's it. X is clever enough to do the rest for you. I'm currently using XFree86 on Debian unstable, but I'd imagine the X.org setup would be somewhat similar.

And just for reference, this is the Device section I used before going to 3 heads, which shows how to use TwinView:

Section "Device"
    Identifier  "nVidia GeForce FX 5200"
    Driver      "nvidia"
    BusID       "PCI:1:0:0"
    Option      "NvAgp"             "1"
    Option      "TwinView"
    Option      "SecondMonitorHorizSync"    "30-82"
    Option      "SecondMonitorVertRefresh"  "60"
    Option      "TwinViewOrientation"       "RightOf"
    Option      "ConnectedMonitor"      "CRT,CRT"
    Option      "MetaModes"   "1280x1024,1280x1024; 1280x1024,NULL"
EndSection

You can use TwinView when you have more that two displays, if you're only using one nvidia card. (this is how Jon Oxer is still using TwinView)

[02:26] [/Work] [permanent link]