FreeBSD 9.2 with vesa in Parallels Desktop 9


FreeBSD 9.2 running in Parallels Desktop 9

In 2006, I started running FreeBSD 6.2 in a beta release of Parallels Desktop. It was quite the learning experience, and further cemented my love of this OS. Half a decade later, I find myself trying to run FreeBSD 9.2 in Parallels Desktop 9.

A lot has changed in FreeBSD; the workstation teams have done a terrific job. For one, we have the stunningly beautiful pkgng system which negates another reason why I stuck with Linux in several different settings. On the Xorg front, we no longer need to configure xorg.conf manually, and we don't need messy modelines to manually enable widescreen resolutions. It takes reading a post I wrote in 2007 to really appreciate this!

Enter xrandr

From an end-user perpective, we also now have xrandr. A simple front end to randr, it allows us to specifiy our screen resolution on the fly without rebooting X, and without root permissions. Install:

# pkg install xrandr

Now we can specify our desired initial screen resolution in our .xinitrc along with our window manager and other such goodies. Below, we've specified we want a resolution of 1024×768 and the Xfce desktop when we start our graphical X server:

xrandr -s 1024x768 &&
exec startxfce4

I remember reading somewhere that .xinitrc was depracated, but I can’t remember where. For now at least, it still works.

Why is this important for Parallels?

With the latest release of Parallels, this is very important. The vesa driver detects my humble MacBook Air is capable of driving a 1920×1200 display, so it starts X at that resolution. On my internal 1366×768 display, this means a lot of squishing and impossible to read text. Setting 1024×768 as above offers native resolution, albeit with black letterboxing.

This is where we hit a snag. Using the -q option, we can query which screen sizes are available and supported for our use. After changing on-the-fly to 1280×800 to test widescreen operation, this was the output:

% xrandr -q
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640x480, current 1280 x 800, maximum 1920x1200
default connected 1280x800+0+0 0mm x 0mm
1920x1200          0.0
1600x1200          0.0
1680x1050          0.0
1400x1050          0.0
1280x1024          0.0
1440x900           0.0
1280x960           0.0
1280x800           0.0*
1024x768           0.0
800x600            0.0
640x480            0.0

Alas, the native 1366×768 resolution of this MacBook Air is not among those listed. From what I've been able to find, this is a limitation of the xf86-video-vesa driver.

This was mostly an excercise in curiousity; I run FreeBSD on my ThinkPad hardware natively. Still, it would be nice to re-creaate what I had on my original MacBook Pro all those years ago. The next step will be to see if the Parallels tools have been maintained for FreeBSD, and if there's a driver offering.

Author bio and support


Ruben Schade is a technical writer and infrastructure architect in Sydney, Australia who refers to himself in the third person. Hi!

The site is powered by Hugo, FreeBSD, and OpenZFS on OrionVM, everyone’s favourite bespoke cloud infrastructure provider.

If you found this post helpful or entertaining, you can shout me a coffee or send a comment. Thanks ☺️.