Initial assumptions

As I’ve been written in my introductory blog post I first noticed the Pinebook Pro at the FOSDEM 2020 in February this year. Prior to that point I was mainly using an already aged MacBook Pro 15“ from 2008 (!!!), which I installed with Regolith Linux due to the fact that newer version of macOS were no longer supported on it. Even though this device was already more than 10 years old it was still running fine with Linux. Needless to say that I’ve tuned it a bit by replacing the old physical hard drive with a newer SSD as well as upgraded the RAM to the maximum of 6GB.

MacBook Pro 2009 running Regolith Linux

Still it showed it’s age here and there… the battery life was quite short in comparison to today’s standards (usually less than 3 hours, even though I got a quite new aftermarket battery replacement), it has difficulties with newer video codecs (the build-in NVIDIA graphic only has hardware acceleration for H.264) and the fans are running wild as soon as you put it under load (remember: it still hosts a Core2Duo Penryn, which is not really optimized for mobile scenarios).

So I was looking for something I can easily grab and take around with me, it should be optimized to running Linux, be lightweight and with a good battery life. Additionally, as I rather saw this as a kind of second device, it should not cost that much. Most of the people in forums / social media will tell you that you can easily go with an used Lenovo Thinkpad of some sort, which you can easily find online for different price tags based on their conditions. While I was also considering this option in the beginning I soon noticed that you will have to spend a decent amount for upgrades to hard drives, RAM, and battery in case you will go with one of the cheaper options, or you also have to spend north of the 500 EUR landmark for an used device with some decent specs in it.

My initial plan got a make over when I was putting my hands on the Pinebook Pro at FOSDEM. From the start I was positively surprised about the build quality of it. It also offers a good selection of hardware choices for the given price tag without making too much compromises - something others have been written about at length. So after my return from the conference I ordered an ISO version of the device on the Pine64 web site immediately.

The device arrived in mid of March 2020 (due to some delay in shipment process caused by the upcoming COVID-19 pandemic) and was installed with a custom tailored Debian GNU/Linux 9 image. It wasn’t long until I noticed that this older Debian version together with the newer ARM64 architecture will give me some headaches with recent software packages. So I initially tried to install Flatpak on it, but the sofware selection for ARM64 was quite small and outdated even there.

Finally, I remembered that I have used Manjaro Linux in the past, and that the main benefit of this rolling-release distribution is the AUR repository, in which users can provide package build scripts for software not being part of the core distribution. These packages will be downloaded with their sources and build on the users machine. This sounded like a perfect way to get me a good software selection on the new ARM64 hardware…

As I’m not a fan of the KDE or XFCE desktop environments, which are the official image variants provided by the ManjaroARM team, I was eventually heading over to their Manjaro-ARM-Installer script instead and got myself a custom MATE desktop image, which was a really good starting point, and I used it over the next couple of weeks.

Pinebook Pro running Manjaro ARM Mate

With that software selection was very solid and it was no problem to install most of the commonly used Linux desktop apps on the Pinebook Pro - either directly from the repos or via some AUR package scripts. As you can see it also runs VSCodium, which is a FOSS version of Visual Studio Code without the Microsoft branding and telemetry, quite well.

Pinebook Pro running Manjaro ARM Mate

I was also quite surprised about the battery lifetime of the device that could be achieved out of the box without any additional power management tuning. Beside that the device is also capable to decode full hd video streams from the Internet such as Youtube or FreeTV channels without any hiccups. And you can get all this without an active fan / cooling solution, which means even though the top left area of the bottom might get some heat when the load increases, the device will be still completely silent.

To that end I could achieve most if not all of the workloads, which I previously did on my MacBook Pro with Regolith Linux, on this smaller, lighter and more portable device. That was all I have had initially been looking for…

The Point of No Return

The days went by and I noticed that I somewhat used either the Macbook Pro when I’m on my desk, or the Pinebook Pro when I’m not. This also involves taking care of synchronising my current work between both devices, make sure to transfer settings and preferences between them as well as upgrade the systems independently. Which became a burden after some weeks also due to the fact that the underlying Linux distributions are quite different - Regolith was still based on Ubuntu 18.04 and I was using a lot of Flatpak packages to keep it up-to-date with newer versions of desktop applications.

On one rainy day in May I stumbled upon this video from Bryan Lunduke and it hit a nerve with me asap:

I was immediately convinced that the major problems of Linux adoption are no longer the various choices of distributions you have, or the missing software selection for productivity applications or even games, but rather people who are talking very positively about FOSS on conferences, besides using proprietary hardware and software platforms (yes, mostly Macbooks nowadays) to do so. So it’s rather a question of ‘eat your own dogfoot’ and engage in and with the community to bring the FOSS initiatives and especially Linux as a platform forward.

This was the day I decided to go all-in with the Pinebook Pro and using it as my main (personal) computing device. So I gave my Macbook Pro finally some rest and got myself an USB-C dock to be able to connect the second screen to the Pinebook Pro.

Actually it went better than expected. The only thing that I really missed was the way the tiling-window manager i3 in Regolith was handling multiple screens when compared to the way it works in MATE. Which was one of the main reasons I started investigating Sway as a modern alternative, and created / contributed a custom Sway installer profile to the ManjaroARM community, which I will write about in the following blog post (to be published very soon).

Final thoughts and considerations

Some topics I haven’t considered in this post so far are the challenges and issues with the Pinebook Pro. Most of those are areas I haven’t been much involved with recently as they are not part of my main workload, such as:

  • Games… there should be a good selection of games developed natively on Linux; usually they should run fine when being cross-compiled for ARM64, but following the forums I noticed that the open-source GPU drivers are still lacking decent OpenGL support at the moment. It’s being said that the MESA team is heavily working on improving the situation here. Others seem to have good progress with getting old DOS games running via DOSBOX, or using any other kind of emulator to play retro-games.
  • x86 emulation…looks like some folks are playing around with getting WINE as well as PlayOnLinux running on the Pinebook Pro; heck there was even an attempt to run Windows 10 ARM via KVM. As this is emulating a different processor architecture and operating system the performance might be too low for serious work though.
  • Android…a quite better approach to me is the work to integrate the Anbox layer, which would allow you to run Android applications on the Pinebook Pro (in a similar way that Google Chromebooks can do). Due to the same processor architecture and operating system foundations the performance should be decent IMHO.
  • DRM… at the moment the Firefox browser doesn’t provide a plugin for decoding DRM-protected content on ARM64, which will block you from using commercial content sites such as Netflix, Amazon Prime Video, or even Spotify. The main issue here seems to be the widevine plugin from Google, which isn’t yet available for ARM64. The ManjaroARM team came up with a workaround that involves running a Docker image based on 32-bit armhf Linux and the widevine plugin from Chromium OS (see thread). It seems to work fine for others, but I don’t like the idea to have a root daemon (Docker) running for it. For my container-based workloads I settled with Podman instead, which offers a root-less mode. For Spotify I have chosen a CLI client ncspot, and for Netflix & Co. I’m looking forward to run this 32-bit armhf Chromium build via nspawn-systemd instead.

For a quick performance comparison (not to be considered scientifically correct though), I was using a cargo build wrangler command on both machines I currently use:

  • my professional HP Elitebook running Windows 10
Windows 10 System Info
  • my personal Pinebook Pro running ManjaroARM Linux
Manjaro ARM Linux System Info

On the Windows 10 machine this build includes compiling 314 Rust packages and takes overall 14m 20s.

Build Rust binary on Windows 10

On the Pinebook Pro device this build includes compiling 312 Rust packages and takes overall 19m 33s.

Build Rust binary on Manjaro ARM Linux

This is a difference of ~5 mins, or saying it another way the HP Elitebook was just 25% faster than the Pinebook Pro. You will have to consider though that the HP Elitebook has a larger amount of RAM and hosts an internal SSD. Additionally, the driver and performance optimizations on the Pinebook Pro haven’t finished yet, and there are additional performance improvements to be expected in future software releases.

That said the actual performance hit wasn’t actually that bad TBH…

With the recent announcement of Apple to go with a custom silicon chip based on the ARM64 architecture in their future Macbooks and desktop computing devices I can imagine that the ARM64 hardware platform itself will get a boost. I wouldn’t be surprised if we will see further ARM64 based devices from various vendors down the road as the benefits of the architecture get’s more visible and obvious. With the broader availability of hardware also the range of available software will increase over time. This is very exciting and could give the Linux on ARM platform a headstart as it seems to be more suitable for a low-cost, custom build and open computing platform.