APPENDIX B

XF86Config file examples for Xinerama

Below are three examples of XF86Config files for different vga drivers. The first of these uses the accelerated OpenGL drivers from nVidia. The second example is for a Matrox G200, a single PCI card with four vga outputs. Notice that within each example, a single projector definition (Section "Monitor", actually) can be used in multiple Screen definitions whenever the same type of projector is being used. The third example shows how a Matrox Parhelia with 3 vga outputs can be combined with a single output nVidia based PCI card. More general information on Xinerama is available in the Linux Xinerama HOWTO.

All these examples will provide layouts in which the three leftmost vga outputs are to be projected, while the rightmost output is intended for the operator's monitor. They could reversed by replacing the "RightOf" keyword in the "ServerLayout" Sections with the keyword "LeftOf". All the screen sizes are based on single 1280x1024 rasters, giving a 3840x1024 projected area and a 1280x1024 monitor area. If your projectors only support 1024x768, then the "Modes" lines in each "Screen" will need to be changed.

If basing a real system on these examples, remember to replace the Monitor Horizontal and Vertical sync entries with those matching the projectors and monitor actually being used.

  1. XF86Config file for Leadtek Quadro4 380XGL (dual output AGP) card and two generic RIVA TNT2 (single output PCI) cards. This configuration uses nVidia's accelerated OpenGL driver (Driver "nvidia" in the Device sections).

    Section "ServerLayout"
        Identifier     "XFree86 Configured"
        Screen      0  "Screen0" 0 0
        Screen      1  "Screen1" RightOf "Screen0"
        Screen      2  "Screen2" RightOf "Screen1"
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        Option "Xinerama" "True"
    EndSection

    Section "Files"
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        ModulePath   "/usr/X11R6/lib/modules"
        FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
        FontPath     "/usr/X11R6/lib/X11/fonts/Speedo/"
        FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
        FontPath     "/usr/X11R6/lib/X11/fonts/CID/"
        FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
        FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"
    EndSection

    Section "Module"
        Load  "record"
        Load  "extmod"
        Load  "dbe"
        Load  "dri"
        Load  "xtrap"
        Load  "glx"
        Load  "type1"
        Load  "speedo"
    EndSection

    Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "keyboard"
    EndSection

    Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option     "Protocol" "auto"
        Option     "Device" "/dev/mouse"
    EndSection

    Section "Monitor"
        Identifier   "Monitor0"
        # This is the monitor
        VendorName   "Mitsubishi"
        ModelName    "Diamond View DV172"
        HorizSync       31.0 - 81.0
        VertRefresh     56.0 - 75.0
    EndSection

    Section "Monitor"
        Identifier   "Monitor1"
        # This is the projector
        VendorName   "Hitachi"
        ModelName    "SX-5500"
        HorizSync    15 - 92
        VertRefresh  50 - 120
    EndSection

    Section "Device"
        Option  "TwinView"
        Option  "SecondMonitorHorizSync"    "31.0 - 81.0"
        Option  "SecondMonitorVertRefresh"  "56.0 - 75.0"
        Option  "MetaModes"     "1280x1024, 1280x1024;"
        
        Identifier  "Card0"
        Driver      "nvidia"
        VendorName  "nVidia Corporation"
        BoardName   "NV18GL [Quadro4 380 XGL]"
        BusID       "PCI:1:0:0"
    EndSection

    Section "Device"
        Identifier  "Card1"
        Driver      "nvidia"
        VendorName  "nVidia Corporation"
        BoardName   "NV5M64 [RIVA TNT2 Model 64/Model 64 Pro]"
        BusID       "PCI:2:4:0"
    EndSection

    Section "Device"
        Identifier  "Card2"
        Driver      "nvidia"
        VendorName  "nVidia Corporation"
        BoardName   "NV5M64 [RIVA TNT2 Model 64/Model 64 Pro]"
        BusID       "PCI:2:6:0"
    EndSection

    Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor1"
        DefaultDepth    24
        SubSection "Display"
            Depth    8
            Modes    "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
            Depth    24
            Modes    "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
    EndSection

    Section "Screen"
        Identifier "Screen1"
        Device     "Card1"
        Monitor    "Monitor1"
        DefaultDepth    24
        SubSection "Display"
            Depth    8
            Modes    "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
            Depth    24
            Modes    "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
    EndSection

    Section "Screen"
        Identifier "Screen2"
        Device     "Card2"
        Monitor    "Monitor0"
        DefaultDepth    24
        SubSection "Display"
            Depth    8
            Modes    "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
            Depth    24
            Modes    "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
    EndSection

  2. XF86Config file for a single Matrox G200 multimonitor card. This card has four vga outputs. To enable the Xinerama facility, the Matrox driver for Linux should be installed first.

    Section "ServerLayout"
        Identifier     "XFree86 Configured"
        Option      "Xinerama"   "True"
        Screen      0  "Screen0" 0 0
        Screen      1  "Screen1" RightOf "Screen0"
        Screen      2  "Screen2" RightOf "Screen1"
        Screen      3  "Screen3" RightOf "Screen2"
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
    EndSection

    Section "Files"
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        ModulePath   "/usr/X11R6/lib/modules"
        FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
        FontPath     "/usr/X11R6/lib/X11/fonts/Speedo/"
        FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
        FontPath     "/usr/X11R6/lib/X11/fonts/CID/"
        FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
        FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"
    EndSection

    Section "Module"
        Load  "dbe"
        Load  "dri"
        Load  "extmod"
        Load  "glx"
        Load  "record"
        Load  "xtrap"
        Load  "speedo"
        Load  "type1"
    EndSection

    Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "keyboard"
    EndSection

    Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option     "Protocol" "PS/2"
        Option     "Device" "/dev/mouse"
    EndSection

    Section "Monitor"
        Identifier   "Monitor0"
        # This is the monitor
        VendorName   "Hansol"
        ModelName    "710P"
        HorizSync    39 - 96
        VertRefresh  47 - 160
    EndSection

    Section "Monitor"
        Identifier   "Monitor1"
        # This is the projector
        VendorName   "Hitachi"
        ModelName    "SX-5500"
        HorizSync    15 - 92
        VertRefresh  50 - 120
    EndSection

    Section "Device"
        Option     "MGASDRAM" "True"
        Option     "SWcursor" "True"
        Identifier  "Card0"
        Driver      "mga"
        VendorName  "Matrox"
        BoardName   "MGA G200 AGP"
        BusID       "PCI:3:0:0"
    EndSection

    Section "Device"
        Option     "MGASDRAM" "True"
        Option     "SWcursor" "True"
        Identifier  "Card1"
        Driver      "mga"
        VendorName  "Matrox"
        BoardName   "MGA G200 AGP"
        BusID       "PCI:3:4:0"
    EndSection

    Section "Device"
        Option     "MGASDRAM" "True"
        Option     "SWcursor" "True"
        Identifier  "Card2"
        Driver      "mga"
        VendorName  "Matrox"
        BoardName   "MGA G200 AGP"
        BusID       "PCI:3:8:0"
    EndSection

    Section "Device"
        Option     "MGASDRAM" "True"
        Option     "SWcursor" "True"
        Identifier  "Card3"
        Driver      "mga"
        VendorName  "Matrox"
        BoardName   "MGA G200 AGP"
        BusID       "PCI:3:12:0"
    EndSection

    Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor1"
        DefaultDepth 24
        SubSection "Display"
            Depth     8
            Modes "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
            Depth     24
            Modes "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
    EndSection

    Section "Screen"
        Identifier "Screen1"
        Device     "Card1"
        Monitor    "Monitor1"
        DefaultDepth 24
        SubSection "Display"
            Depth     8
            Modes "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
            Depth     24
            Modes "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
    EndSection

    Section "Screen"
        Identifier "Screen2"
        Device     "Card2"
        Monitor    "Monitor1"
        DefaultDepth 24
        SubSection "Display"
            Depth     8
            Modes "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
            Depth     24
            Modes "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
    EndSection

    Section "Screen"
        Identifier "Screen3"
        Device     "Card3"
        aonitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
            Depth     8
            Modes "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
            Depth     24
            Modes "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
    EndSection

  3. XF86Config file for a Matrox Parhelia AGP card with three vga outputs, combined with a PNY brand GeForce4 MX 420 single output PCI card.

        Section      "ServerLayout"
        Identifier   "Quad Layout"
        Option       "Xinerama" "True"
        Screen     0 "Screen0" 
        Screen     1 "Screen1" RightOf "Screen0"
        InputDevice  "Mouse1" "CorePointer"
        InputDevice  "Keyboard1" "CoreKeyboard"
    EndSection

    Section "Files"
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        FontPath     "/usr/X11R6/lib/X11/fonts/local/"
        FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
        FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
        FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
        FontPath     "/usr/X11R6/lib/X11/fonts/Speedo/"
        FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
    EndSection

    Section "Module"
        Load  "dbe"
        SubSection "extmod"
            Option "omit xfree86-dga"
        EndSubSection
        Load  "type1"
        Load  "freetype"
        EndSection

    Section "InputDevice"
        Identifier  "Keyboard1"
        Driver      "Keyboard"
        Option      "AutoRepeat" "500 30"
        Option      "XkbRules" "xfree86"
        Option      "XkbModel" "pc101"
        Option      "XkbLayout" "us"
        Option      "XkbCompat" ""
    EndSection

    Section "InputDevice"
        Identifier  "Mouse1"
        Driver      "mouse"
        Option      "Protocol" "PS/2"
        Option      "Device" "/dev/mouse"
    EndSection

    Section "Monitor"
        Identifier   "My Monitor"
        HorizSync    31.5 - 95.0
        VertRefresh  50.0 - 100.0
    EndSection

    Section "Monitor"
        Identifier   "Monitor0"
        # This is the monitor
        VendorName   "Mitsubishi"
        ModelName    "Diamond View DV172"
        HorizSync       31.0 - 81.0
        VertRefresh     56.0 - 75.0
    EndSection

    Section "Monitor"
        Identifier   "Monitor1"
        # This is the projector
        VendorName   "Hitachi"
        ModelName    "SX-5500"
        HorizSync    15 - 92
        VertRefresh  50 - 120
    EndSection

    Section "Device"
        Identifier  "MGA CARD 1"
        Driver      "mtx"
        BusID       "PCI:1:0:0"
    EndSection

    Section "Device"
        Identifier  "Card1"
        Driver      "nv"
        VendorName  "nVidia Corporation"
        BoardName   "NV17 [GeForce4 MX 420]"
        BusID       "PCI:2:4:0"
    EndSection


    Section "Screen"
        Identifier "Screen0"
        Device     "MGA CARD 1"
        Monitor    "Monitor1"
        DefaultDepth    24 
        DefaultFbbpp 32
        Option "TripleHead"
        SubSection "Display"
            Depth    8 
            Virtual 3840 1024 
            Modes    "1280x1024" "1024x768" "800x600" 
        EndSubSection
        SubSection "Display"
            Depth    24 
            Virtual 3840 1024 
            Modes    "1280x1024" "1024x768" "800x600" 
        EndSubSection
    EndSection

    Section "Screen"
        Identifier "Screen1"
        Device     "Card1"
        Monitor    "Monitor0"
        DefaultDepth    24 
        SubSection "Display"
            Depth    8 
            Modes    "1280x1024" "1024x768" "800x600" 
        EndSubSection
        SubSection "Display"
            Depth    24 
            Modes    "1280x1024" "1024x768" "800x600" 
        EndSubSection
    EndSection


    Section "DRI"
    EndSection