Adventures with the Pinebook Pro
The Pinebook Pro, created by Pine64, is a $200 Linux laptop. If your familiar with the Raspberry Pi, the $35 mini-computer adored by makers and tech enthusiasts, a good way to think of the Pinebook is “like a Raspberry Pi, in that it’s an inexpensive enthusiast device, but in a laptop form factor.”
It is challenging to say if I recommend the Pinebook Pro, since this is not a consumer device. While the hardware is surprisingly good for the price, and the system is quite functional, the rough edges around software (most of which have to do with Linux on ARM) make the system tricky to recommend as a primary device to do work (even compared to a basic Chromebook).
Still, I like the device, even with the rough edges. If you’re interested in learning more about Linux, and don’t mind fixing problems yourself, it’s a sold, interesting system.
As a note before we begin – this isn’t a review, as much as a journal of my experience with the device, some things that went wrong, and how I fixed a few of them.
Keyboard and Trackpad Oddities
The build quality is surprisingly nice - $200 nets you a sturdy metal body, which prevents the laptop from feeling cheap. There’s no branding of any kind on the outside of the device, something I personally liked.
The keyboard was comfortable to type on – keys had decent travel and feedback. Though I hate that they put the power button on the keyboard – it’s right where the delete key is on my other keyboards and I’ve struck it more than once by mistake.
I feel like the touchpad is one of those places where they tried to cut cost. It’s not bad in the way early touchpads were, but it feels imprecise compared to more modern systems. Palm rejection is effectively non-existent, so it’s incredibly easy to brush the touchpad (and move/click the mouse) while typing.
The Pinebook offers hardware kill switches for the WiFi, camera, and microphones, allowing you to disable those components using a keyboard command to cut power (this means, even if someone hacked into your system, it would be exceptionally challenging to turn on the microphones/cameras to spy on you). The kill switches are engaged by entering specific key-chords on the device (when you turn a component on or off using one of the chords, the caps lock or num lock lights will blink to acknowledge the new command).
Unfortunately, my unit arrived with the WiFi kill switch engaged, causing a bit of confusion when I first got the device (since it wouldn’t connect to the internet, and there’s no indication if the kill switches are engaged). Thankfully a few minutes on the Pinebook Pro wiki helped and I was able to get internet back up easily.
The keyboard firmware itself had some quirks on its own: the default keyboard firmware would not process key chords with the Pine Key (the Windows Key) and the arrow keys, which is frustrating if you use that combination to move windows around the screen (as I do). Also, the Num Lock function was triggered by the Print Screen key (not the Num Lock key). That said, I was able to download new keyboard firmware and it fixed both problems.
Similarly, I was able to make the trackpad much more pleasant by using the syndaemon tool, which allows you to have the trackpad shut off while typing.
But… this is a good sample of what it’s like using the Pinebook: “yes, I can get it working (sometimes without too much effort), but it doesn’t work from the start.” Nothing, while using the Pinebook, caused me to stop using it. However, this isn’t my work machine – if it acts up, it’s not blocking me from completing my job (again, to keep hammering in the point, this isn’t a consumer device).
Distros and Installation
Many of the oddities with the Pinebook Pro’s software are not really the Pinebook’s fault. Running Linux desktop software on low-power ARM chips (often used in cellphones and tablets) is not nearly as mature as running a Linux desktop on Intel/AMD x86 chips. Additionally, variations between ARM chips make it harder to grab an off-the-shelf build of a major Linux distribution (this variation is why Debian Linux, which supports ARM processors, has three different ARM versions, depending on the type of ARM chip you want to run on).
The Pinebook Wiki does offer a solid list of images that work with the device, but it’s worth noting a lot of these builds were contributed by members of the community, so you are often going to a contributor’s GitHub page to download an installer, instead of going from the distribution’s own website.
The installation process is also different than what I’ve come to expect for most Linux distributions. If I was going to install Ubuntu on a normal, x86, computer, I’d write a bootable flash drive, place it in the computer where I wanted to install Linux, boot from the flash drive, and I’d be greeted with a nice, friendly installer screen.
Pinebook Pro images aren’t installers – they’re working, bootable copies of the operating system. If you place a Pinebook Pro image on a SD card, and boot the system, you will be prompted for a username, password, and then you’re booted into a ‘installed’, normal environment.
So, to install to the internal storage (the EMMC), you’d image a SD card with a Pinebook Pro image, boot from SD, and enter a name and password. At this point, you have a working install on the SD card, which, if you wanted, you could keep using to boot the system. But, to install to internal storage, you’d download the image again (or move it from your previous machine) onto the SD card you’re using to boot, and then use dd to transfer the image onto the EMMC.
This isn’t bad as much as different – even by Linux install standards, this process is unusual.
The default distribution that comes pre-installed on the Pinebook is Manjaro with the KDE desktop.
Manjaro is a reasonable distribution for Linux enthusiasts — it’s a fast-moving, rolling distribution that frequently incorporates newer software, so users will be closer to the bleeding edge compared to more conservative distributions like Ubuntu (which will favor stability over newness). It is based on Arch Linux, which I used for many years as my primary OS and still like.
But I found the choice of KDE as a default desktop environment odd. KDE is visually appealing, don’t get me wrong, but you don’t choose KDE for speed. On the Pinebook’s lightweight ARM processor, KDE felt sluggish – launching Firefox took several, painful seconds.
Like many things on the Pinebook, though – you can change this. There are other distributions (if you’d prefer something with a slower update cadence) and Manjaro offers other desktop environments for their Pinebook images.
I ended up using Manjaro with the i3 window manager. i3 is a tiling window manager; unlike the more common ‘floating’ window managers, where you drag and drop windows, tiling windows are arranged like non-overlapping frames. This is very much not for everyone, but i3 (like other tiling window managers) has the benefit of being incredibly lightweight and fast, even on anemic hardware.
After switching to i3, performance improved considerably (Firefox launching was <= 1 second).
Note: If you don’t want a tiling window manager, but you still want something faster than KDE, Manjaro offers an XFCE build as another option. XFCE is much closer to a ‘normal’ desktop experience, and it is significantly faster than KDE.
Software and Experience
The software that is available for you to install will depend on which distribution you choose, so keep in mind I’m using Manjaro on my Pinebook (your mileage may vary on another distro).
Overall, I was impressed with what packages were available for Manjaro on ARM – while there were Arch/Manjaro packages for x86 that hadn’t been ported yet (Extreme Tux Racer, for example, was not available), most software I tried to install was readily available.
Also, this is less of a problem with open source software, since, if there isn’t a provided ARM package, you can always try grab the source code and compile it yourself for the Pinebook. Now, this won’t always work (since ARM has a different memory model than Intel, so you might need to modify things), and compiling non-trivial software on the Pinebook’s not-very-fast processor isn’t fun, but my point is you’re not limited by what’s already been packaged by your distribution. For example, I couldn’t install the official builds of Visual Studio Code (since they don’t package it for Linux on ARM), but there was a contributed package within the Arch User Repository (the user submitted packages listing) for Visual Studio Code that ran just fine.
Overall the system worked fine for most things I wanted to do – I was able to browse the web, access network shares, and use my Yubikey to sign into websites. Video conferencing was a bit iffy – while the system was able to (mostly) keep up with a video chat on Google Hangouts, the speakers were weak and the video from the built in camera wasn’t perfectly smooth, leading to a usable, though imperfect, experience.
At the same time, there are things that don’t work – playing Netflix video, for example, is a pain. While it is theoretically possible, the solution is brittle (it involves downloading Chrome OS, extracting the Widevine DRM libraries, plugging them into your current browser, and hoping nothing changes). It’s doable, but not necessarily easy (or convenient).
If you’re new to running Linux as a desktop operating system – you have to remember you’re a minority (like a Mac user in the early 1990s and early 2000s, most software isn’t written for you). As an ARM Linux user, you’re a minority within a minority, and even stuff that might be advertised as working on Linux (like Steam) has a good chance of not being compatible with Linux on ARM.
There are also things that don’t work well now, but might later, like sleep. Using Manjaro on a Pinebook, suspending the system (or closing the lid) triggers a type of sleep called s2idle. Unlike traditional sleep/suspend (ACPI S3), s2idle keeps the CPU awake. The benefit is that this kind of sleep is supported on pretty much every system that runs Linux, and the time it takes to put the system to sleep/wake it up is negligible. The downside is that the system will burn power, even when sleeping (to the tune of several percent per hour). From the forum threads I’ve read, there is some work to improve sleep by replacing the bootloader in some distributions, but, again, not necessarily easy or convenient.
If I was to try to review this as a consumer device – this would fail miserably. It has plenty of rough edges, often requires you work around bizarre edge cases or dig into system internals, and it’s far from user friendly. The store even warns that there may be dead pixels on some displays, and they won’t accept returns for them.
But, that’s not what this device is. This isn’t designed to be your primary system – it’s designed for enthusiasts to play with and learn (similar to how the original Raspberry Pi was designed as a teaching tool).
And that’s a good thing. I’m good with computers, and I attribute much of that to having a Linux system growing up, and learning how to debug and solve problems on my own. I learned about how sound worked on computers by having to debug ALSA (Linux’s sound system), I learned about graphics (and VESA) handling driver glitches. There’s value in a Pinebook, especially as a tool to experiment and play.
I probably would not have tried i3, the tiling window manager I’m using right now, were it not for the Pinebook forcing me to experiment and figure out what ran fastest on this hardware.
There’s an old proverb: “necessity is the mother of invention.” There will be things on the Pinebook that will not work the way you want. But, a small part of me says, if this isn’t your primary device, if something not working isn’t going to ruin your day, then, if you’re willing to learn how to fix it, you might just be better off for it.