Thursday, May 14, 2020

The Pinebook Pro

I'm bored.

I'm working at home because of the Corona virus; we've spent our weekends and the entire Golden Week vacation at home because of Corona; my emails, Line and other communication all involve Corona; NHK news and morning shows is nothing but Corona stories; newspapers, Reddit, podcasts, even Steam forums are filled with posts about - well, you know what. My life has turned into the All Corona All The Time Multimedia Extravaganza.

This is an ongoing disaster, it's disrupting all our lives, and we absolutely must protect those who would otherwise die from the disease. But I'm also fed up with the constant media bombardment about something I can do nothing about.

Okinawa has had no new cases for two weeks now, and we're finally preparing to get back to work again from Monday next week. It's probably only temporary of course; the infection rate is bound to bounce back, especially as we are moving into the main tourist season. Oh, and just to spice things up a little bit, the first typhoon of the season is expected to hit us on Monday morning. Not a strong one, but still - we got a million problems, why not add a typhoon?

I'm bored. Let's talk about something else.

Such as things I get in the mail.


A package! for me — I wonder what it could be? Oooh, it's a computer! "Pinebook Pro". It certainly looks very slick.

Around the time we moved to Okinawa three years ago I got myself a HP Spectre 360 for a lightweight, high-performance laptop. It was light, fast and beautiful. It was expensive — and as fragile as a Faberge egg.

About a year ago we spilled water on the dining table — not on the laptop, just the table. Some of the water trickled its way under the computer, where the bottom fan sucked it inside and promptly killed the machine. Repairing it would have cost as much as buying a new computer.

That expensive mistake soured me on the whole idea of a laptop for a long while. I've relied on my desktop and my smartphone. But I missed having a portable computer, and when I saw this thing I had to try it out.

The Pinebook Pro



The Pinebook Pro in all it's glory. It looks and feels just as good in real life as it seems in this image. Thin and light, fanless, good screen, good keyboard, metal shell.

In short, the Pinebook Pro is a slim fanless — completely quiet! — 13" laptop with a metal chassis and a 1080p screen; 4GB ram, 64GB eMMC storage, and slots for an SSD and SD-cards; USB A and C ports, a web camera, a headphone jack all the rest you expect from a decent modern laptop. The USB-C port can charge the machine and run an external display.

It uses an ARM processor, it's built to run Linux — and it costs all of $200.

Pine64 produces and sells single-board ARM computers, embedded systems and things like that for end users and hobbyists. But they also do fun projects such as the Pinebook Pro, the Pinephone and Pinetime (a DIY programmable smartwatch — I really need one of these!)

The outside case is metal, and feels like a much more premium device. The screen is decently clear and bright, with no corner fall-off or glare. The keyboard is clackety but feels fine and is absolutely good enough for extended use. It's not at the level of that HP laptop or a Mac, but it feels much higher quality than the $200 price tag would imply.

The CPU is a Rockchip RK3399 ARM SOC. ARM CPUs don't have to be slow — look at the Fujitsu A64FX — but this is a mobile CPU meant to sit in a smartphone. It's a "BIG-little" design, with two faster power-hungry cores, and four slow but very efficient cores. Background tasks can run on the small, slow cores, using very little power, while the big cores will run your foreground work fast.

It comes with 64GB eMMC (flash) storage built in. 64GB isn't a lot and MMC isn't very fast but you're not going to do anything really data-intensive with this laptop. A full Linux desktop installation takes about 4-6GB so almost all of the space is available for your data.

The SD-Card slot lets you boot from an SD card as well as add external storage. You can add a real SSD though an optional M.2 adapter, though it needs to be thin and low-power, and it will drain the battery noticeably faster.

The low power draw and the USB-C port has an unexpected benefit: I can charge it with my USB-C phone charger. When I write this or surf the web the phone charger can just about manage to trickle-charge the device. If I play games or compile software it can't quite keep up. Still, it means I can bring just a single, small charger for both laptop and phone.

Open Source

This is built for Linux and BSD - neither Windows nor OSX will run. As of this spring, the default distribution is Manjaro with the KDE desktop. Manjaro has been a very positive experience for me (and worth a post of its own, I think). KDE is a very polished, full-featured desktop. I haven't used it in years and I'm not comfortable with it for various reasons, but it's easy to replace it with a lighter, less intrusive desktop such as XFCE or even i3 if you like.

There are a number of other distributions available for the Pinebook already. You can easily test any of them by copying one of them to an SD card and boot it on the laptop. I've tried 3-4 different ones already; so far Manjaro — with XFCE or KDE — has been the most polished experience.

The openness extends to the hardware. The Wiki page has instructions on disassemble it and extensive documentation on the internals, up to and including the exact measurements of the case parts in case you want to mod or replace anything.


In Use

With 4GB memory, a mobile ARM processor and MMC storage, this is not a fast laptop. There are things you can't do or won't do with it. But it can do a lot — and at $200 I can literally get ten of these for that HP laptop I managed to ruin. I could break one of these every six months and still come out ahead.


The Pinebook Pro on the beach. I'd hate to take an expensive machine to a place like this, but with the Pinebook I don't worry at all.

I wanted to do a performance test, so as a quick, dumb comparison I picked building and running POV-Ray, a fun, scriptable raytracing program that's open-source.

I downloaded the latest release (3.7.0.7), then ran two different tests: compile the POV-Ray source, and run its built-in benchmark test. All were built with GCC 9.3, using the default configuration for POV-Ray ("-O3 -ffast-math -march=native"). I didn't touch the power settings on any system, or tune things in any way.

The compilation is a decent real-world test of a common computing task, and is mostly memory and I/O-bound. The POV-Ray benchmark itself, where it raytraces an image off-screen, is fairly simple numerical data processing. I did briefly consider running some BLAS benchmarks as well, but I don't really see the point. If you need BLAS you need a bigger computer.

I ran these two tests on the Pinebook Pro using the two big cores. For comparison I did the same with my desktop sporting a six year old i7-5820K CPU; and with the four year old Lenovo X260 laptop I use at work.

The Pinebook and the 5820K both have 6 cores, but only two of the Pinebook cores are fast. The X260 has two cores in total (multithreading doesn't count), so I ran all the benchmarks using only two cores.



Compilation (left) and benchmark (right) of the POV-Ray ray-tracer on my six year old i75820K CPU, the four year old Lenovo X260 laptop and the Pinebook Pro. All run using two processor cores.

The Pinebook is about 4× slower than the others for compilation. It's about 2.6× slower than the laptop and 3× slower than the desktop for the POV-Ray benchmark.

This is really not too shabby at all. It's quite good, in fact. The Pinebook is 4 times slower compiling the POW-Ray source, but that's mostly due to the relatively slow MMC storage. An SSD would probably speed this up quite a bit.

For the POV-Ray benchmark — lots of simple math and branches — it's 2.6× slower than the X260 laptop and 3× slower than the desktop. For a slim, fan-less low-power machine like this I'm quite pleased, especially at the $200 price. Just the i7-5820K CPU itself still sells for more than the entire Pinebook Pro today.

As an aside, I'm also surprised how good the X260 laptop is. I expected it to fare worse than it did against the desktop. Now, the desktop has another four cores that will speed up the second test almost three times, but per-core there isn't much difference between them. Welcome to the end of Dennard Scaling. (1)

What You Can't Do

Steam and many games won't work. Closed source software in general is usually built for X86 processors and won't run on ARM computers. The current virus-laden elephant in this particular room is Zoom. I, and many with myself, use Zoom on a daily basis while working from home, but there is no Zoom client available for Linux on ARM.

Some open source games and applications will also be difficult or impossible to run — they may need more memory, a faster CPU or a more powerful GPU than this laptop can deliver. Gimp will run fine but you'll struggle to edit larger images. I wouldn't try to run Blender, Pytorch or Eclipse on it.

Today (May 2020) there are still a few rough edges. The power management is a little flaky, so it doesn't reliably go to sleep, and it uses a semi-low power state when sleeping that will drain your battery in a couple of days. But the laptop boots fast enough that I'm OK with shutting it down when I'm not using it.

The keyboard firmware needs some tweaking — the meta ("Windows") key doesn't work with all key combinations — and the trackpad firmware really needs another round of fine tuning to make it a little more responsive.There is a user-created keyboard firmware available but I'm not bothered enough by the issues that I want to take the risk of updating it.

What can you do, then?

Really, almost anything.

Manjaro is built on top of Arch (again, worth a post of its own) which makes a huge amount of open source software available for the Pinebook Pro. If you are able to build it on the laptop at all, you can probably get it through the repositories. Just about any normal desktop or workstation application — compilers, editors, browsers, office apps, computing tools and so on — are at your fingertips. It would be easy to create this entire post, from editing images and creating the graph, to writing and posting it online (and I partly did).



The Pinebook Pro in its natural setting: a hip seaside cafe with shabby-chic furniture and a good selection of third-wave coffee beans. 

Steam is not available, but a lot of open source games are, and even some closed-source games based on Java or Mono — Minecraft and Stardew Valley included — can apparently be made to run with a bit of judicious tweaking.

For computing, my particular niche in this world, Python and most of its enormous pile of packages work just fine. If you need something Matlab-like, you can get Octave (a Matlab clone), or move to Python or Julia for a more modern, up to date experience. I don't recommend using a tiny ARM laptop for numerical computing, but the fact is that you can.

And really, this may be slow by today's standards, but this would have been a decently fast CPU just ten to twelve years ago, and people did manage to perform serious numerical computing long before that.


A lot of modern productivity tools run in the browser today. Microsoft Teams, Gmail and so on will all work fine on the machine (Teams will take a fair bit of the limited memory, mind you). Youtube videos play OK. I'm sure you can use Facebook, Twitter, Instagram Slack and the rest.

Still missing for me is a way to run Zoom. It's our default video conferencing tool at work, I use it a lot to talk with our users, and there is no Zoom client available for download. It's possible I could get it to work though the Chromium browser but I haven't tried that yet. Of course, I can use Zoom on my phone so the problem is not insurmountable.

I would love a Pinebook version of the Steam remote client. That would let me play any game I own on it. It wouldn't be impossible - Valve has released a version for the Raspberry Pi after all.

Could I use the Pinebook Pro as my only computer? Yes, sort of, if I could also use my phone. But it works great as a secondary machine. I'd be happy to bring it for travel — once we can travel again — without fear of losing or breaking it.

And it exudes a sense of fun that I haven't felt with computers in a long time. Never mind being useful, I just enjoy using this.

1) I ran this test on a node on our HPC cluster as well. It may surprise you to know that a state-of-the art HPC node is no faster than my old desktop per-core. In fact, the cluster nodes have a lower clock frequency so they're slightly slower. 

But clusters aren't built to have very fast cores; they're built to have lots of them. I can use up to six cores on my desktop to speed things up, but on our cluster you can use up to 128 cores in a single node, and tens of thousands if you can scale across nodes. That's where the speed comes from.