Dual Monitors in FreeBSD

To those (few) of you out there that actually use FreeBSD as a workstation (myself included) , you may have had the opportunity to utilize dual monitors.

As a Systems Administrator who is usually working on 3-4 things simultaneously , it is crucial to be able to function with enough screen space.

One of the headaches I’ve encountered is trying to get my Dual monitors working with my Ati/Radeon video card in FreeBSD. I’ve written a little tutorial to help those who may need help or are thinking of implementing a second monitor.

I found out my video driver and pci configuration by executing the following commands :

X -configure
pciconf -l

I entered the following as my xorg.conf (ATI / RADEON video driver):

Section "Files"
    RgbPath     "/usr/X11R6/lib/X11/rgb"
    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath   "/usr/X11R6/lib/X11/fonts/TTF/"
    FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"
    FontPath   "/usr/X11R6/lib/X11/fonts/local/"

Section "Module"
        Load    "GLcore"
        Load    "i2c"
        Load    "bitmap"
        Load    "ddc"
        Load    "dri"
        Load    "extmod"
        Load    "freetype"
        Load    "glx"
        Load    "int10"
        Load    "type1"
        Load    "vbe"

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"

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

Section "Device"
        Identifier      "ATI Technologies, Inc. Radeon 9600 (R300 AP)"
        Driver          "ati"
        BusID           "PCI:1:0:0"
Option "MergedFB" "true" #Enable MergedFB function
 Option "MonitorLayout" "TMDS, CRT" # Use LCD and CRT even if you have 2 LCD's or CRT's
 Option "OverlayOnCRTC2" "true"
 Option "CRT2Position" "LeftOf" #Physical location of your secondary monitor in relationship to your primary monitor.
 Option "MetaModes" "1280x1024-1280x1024" #Monitor Resolutions for Primary-Secondary monitors
Option "MergedXineramaCRT2IsScreen0" "true" #determines which screen is going to be the primary screen; value can be "true" or "false

Section "Monitor"
        Identifier      "Monitor gen'erico"
        Option          "DPMS"
        HorizSync       28-64
        VertRefresh     43-60
Section "Screen"
        Identifier      "Default Screen"
        Device          "ATI Technologies, Inc. Radeon 9600 (R300 AP)"
        Monitor         "Monitor gen'erico"
        DefaultDepth    24
        SubSection "Display"
                Depth           1
                Modes           "1280x960" "1024x768" "800x600" "640x480"
        SubSection "Display"
                Depth           4
                Modes           "1280x960" "1024x768" "800x600" "640x480"
        SubSection "Display"
                Depth           8
                Modes           "1280x960" "1024x768" "800x600" "640x480"
        SubSection "Display"
                Depth           15
                Modes           "1280x960" "1024x768" "800x600" "640x480"
        SubSection "Display"
                Depth           16
                Modes           "1280x960" "1024x768" "800x600" "640x480"
        SubSection "Display"
                Depth           24
                Modes           "1280x1024" "1280x960" "1024x768" "800x600" "640x480"
                Virtual     2624 1200

Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Default Screen"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"

Section "DRI"
        Mode    0666

Starting KDE / Xorg initially displays two identical monitors. You need to use the “xrandr” utility to utilize the dual monitor configuration. The following script, when run after starting KDE will do this for you :

xrandr --output DVI-1 --auto --output DVI-0 --auto --left-of DVI-1