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     “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  “record”
Load  “glx”
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”
Identifier   “Monitor0”
VendorName   “Monitor Vendor”
ModelName    “Monitor Model”
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     “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”
EndSection

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

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

Advertisements

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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: