Running FreeBSD on Pinebook, a review

Default featured post

FreeBSD has an official image for Pinebook, 14″ edition which was initially released on November 2018. Since then they have released multiple versions which the latest one at the time of authoring this article is r342020, released on December 13.

In this article, first, we go through the installation process of FreeBSD on Pinebook.

Then we do a quick review of how FreeBSD works on Pinebook and what things work and what things don’t.

Lastly, we discuss how to overcome some of the obstacles such as connecting to the internet and installing some of the packages.

Installation process

The installation process of FreeBSD on Pinebook is fairly simple. All you need to do is to download an image from the FreeBSD site, here, and then burn it on a microSD card using an application like Etcher.

After that, need to insert the card to the Pinebook and turn the device on. It will automatically boot to the FreeBSD.

Remember that this process does not overwrite the OS installed on the flash drive, so don’t worry.

Once loading the kernel is completed, you should see the login prompt. The default username and password are: root and root.

Pinebook running FreeBSD
Pinebook running FreeBSD

Hardware support

At the time of writing this article the following things are working on build r342020:

  • Trackpad
  • Keyboard with the exception of function keys
  • Display with 1366×768 resolution, with some flickering

Things that are not working are:

  • Wireless
  • Audio
  • Microphone
  • Webcam
  • Keyboard function keys
  • Battery status

Things that have not tested are:

  • HDMI output
  • Bluetooth

Major issues

  • The device powers on automatically and fails to boot once the charger is connected
  • Random boot failure
  • Fail to boot once a device is connected to Pinebook via a USB port

Performance

Pinebook performs poorly under FreeBSD. I guess that is because the FreeBSD kernel is not really optimized for the Pinebook yet. For instance, installation of Xorg and i3 packages took an hour. Most of the time spent on extracting, uncompressing the packages. The process was painfully slow.

Video playback is working fine, using MPV. But due to lack of GPU driver and hardware acceleration, it puts much of pressure on the CPU. Playing a sample 720p MP4 video spiked up the CPU load from zero percent to forty percent which is considered quite high. Frame drops are also insanely high, playing 27 seconds of the video, resulted in above 60 frame drops.
Additionally, the video started to slow down once it played in fullscreen.

You can see a more in-depth review of the video playback and other things from this YouTube video I have created.

How to connect to the internet

As stated earlier FreeBSD does not recognize the Pinebook wireless card. Hence, to connect to the internet you need to either share your phone internet via a USB cable or using a USB ethernet dongle, untested.

Since I didn’t have an ethernet dongle, I shared my phone internet via USB tethering. But to connect to the internet, you need to use dhclient command to connect to the network interface. To do so first you need to find your phone network interface by running the below command:

# ifconfig

And then pick the network interface of your phone and load it via dhclient like below:

# dhclient [network interface]

After that you should be able to connect to the internet.

Package installation

Once you got your internet up and running, it’s very easy to install any packages via FreeBSD package manager, pkg. One caveat of the package manager is that at the moment the Pinebook build is missing many packages. For instance, I couldn’t find either Firefox or Chromium. The only available browser I saw was w3m.

Before installing any packages you need to install/update the package manager via this command:

# pkg update

You can also search for packages using

# pkg search

To install Xorg you can execute this command:

# pkg install xorg

And to install i3 you need to run:

# pkg install i3 i3 status i3lock dmenu

Verdict

Although FreeBSD is runnable on Pinebook it is not suitable for the day to day tasks. The current image is a work in process which is missing many parts such as hardware drivers, kernel optimization and software packages. Above all, the kernel port is quite unstable which is needed to be fixed before anything else. So, I wouldn’t recommend anybody to use it for day to day tasks not until some issues fixed.

I must also thank the FreeBSD community for putting time and effort to build this image for Pinebook and hope to see more improvements soon.

References