Skip to content
August 10, 2014 / Chris Merck

FreeBSD Desktop (with Mutliple Monitors)

I got fed up with the complications of Linux somewhere around systemd being added to ArchLinux. Manually typing a 20-line systemd script just to set a static IP was the last straw for me.

So I installed FreeBSD. It just worked for the most part.

The one trick I needed to do was manually set the maximum virtual screen resolution to allow multiple monitors. I was guided by this post on the Gentoo forums

The error I was up against was:

xrandr: screen cannot be larger than 1920×1920 (desired size 3840×1080)

I had to create /usr/X11/xorg.conf, where the bolded line is the crucial addition.

Section “ServerLayout”
Identifier     “ Configured”
Screen      0  “Screen0” 0 0
InputDevice    “Mouse0” “CorePointer”
InputDevice    “Keyboard0” “CoreKeyboard”

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/”

Section “Module”
Load  “dbe”
Load  “dri”
Load  “dri2”
Load  “extmod”
Load  “record”
Load  “glx”

Section “InputDevice”
Identifier  “Keyboard0”
Driver      “kbd”

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

Section “Monitor”
Identifier   “Monitor0”
VendorName   “Monitor Vendor”
ModelName    “Monitor Model”

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     “SWcursor”               # [<bool>]
#Option     “HWcursor”               # [<bool>]
#Option     “NoAccel”                # [<bool>]
#Option     “ShadowFB”               # [<bool>]
#Option     “UseFBDev”               # [<bool>]
#Option     “Rotate”                 # [<str>]
#Option     “VideoKey”               # <i>
#Option     “FlatPanel”              # [<bool>]
#Option     “FPDither”               # [<bool>]
#Option     “CrtcNumber”             # <i>
#Option     “FPScale”                # [<bool>]
#Option     “FPTweak”                # <i>
#Option     “DualHead”               # [<bool>]
Identifier  “Card0”
Driver      “nv”
VendorName  “NVIDIA Corporation”
BoardName   “G96 [GeForce 9500 GT]”
BusID       “PCI:1:0:0”

Section “Screen”
Identifier “Screen0”
Device     “Card0”
Monitor    “Monitor0”
SubSection “Display”
Viewport   0 0
Depth     24
        Virtual      3200 1080

Now to see if I can setup my ARM cross-compilation toolchain for ChibiOS/STM32… That will be the real test.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: