Juraj's Blog

14 Apr 2020

Installing FreeBSD 12.1

I wanted to check out FreeBSD as I recently acquired a venerable Thinkpad T61. I have played around ages ago, but wasn’t sure how usable it is today as a Unix desktop.

I initially did a test run in a virtual machine, later on the physical one.

Downloaded the install ISO (12.1 amd64 dvd1) from the official website , spun up a new Hyper-V VM and booted from the ISO.

Collecting information from the handbook - Installing Xorg , Desktop Environments :

After the system was installed to the HDD, updated the packages with

pkg update 
pkg upgrade

Installed X, Gnome and related packages:

pkg install gnome-desktop gdm xorg gnome3

Enabled necessary services:

echo gnome_enable="YES" >> /etc/rc.conf
echo moused_enable="YES" >> /etc/rc.conf
echo dbus_enable="YES" >> /etc/rc.conf
echo hald_enable="YES" >> /etc/rc.conf
echo gdm_enable="YES" >> /etc/rc.conf

GNOME requires /proc to be mounted, so:

echo proc /proc procfs rw 0 0 >> /etc/fstab

After a reboot GNOME showed up.

Enabling remote desktop

For some reason, mouse support doesn’t work on Hyper-V, because they say so on the mailing list , so I installed TightVNC server according to freebsddiary.org :

pkg install tightvnc

Running vncserver allows me to start up the server, and set up a password for the connection. We obtain the VM’s IP address from ifconfig and the VNC port from tail ~/.vnc/freebsd:1.log.

By default the VNC connections connect to twm, unlike the Gnome session I expected.

To rectify this, we edit ~/.vnc/xstartup and set it to use gnome-session

(last 2 lines of xstartup)

#twm
gnome-session &

Start the server again with vncserver -geometry 1280x768 yields strange result - some terminal is running, but not the entire Gnome UI.

Turns out this starts a new X session (as described in the xstartup script).

x11vnc

It was much easier to use x11vnc based on this forum post to share a VNC of the current desktop.

Real hardware test

The installation procedure was obviously the same on the real hardware. I was pleasantly surprised that all of the hardware bits I checked worked out of the box, so the driver support for ancient ThinkPads is good :).

I decided to install the Xfce desktop enviromnent this time as it was supposed to be lighter on the resources.

Installation:

# pkg install xfce

I needed to create a ~/.xinitrc with the following contents to start xfce with the startx command.

exec startxfce4

Most of my usual software worked well - I was able to install Firefox, Python, Git, Nodejs, npm from the packages. Wi-Fi and audio worked fine, youtube playback was a bit choppy.

I wasn’t able to start VSCode despite installing it according to the FreeBSD-VSCode instructions. I suspect that’s due to a wonky Electron port.

Update 2021: Visual Studio Code is now part of the ports tree: https://www.freshports.org/editors/vscode/ and works fine!