Earlier in the week a Pinebook pro found its way to my doorstep. I pre-ordered it in mid-December, when they announced a version with the ANSI keyboard layout. I picked it up for several reasons. First, I like what they’re doing to produce affordable, hackable hardware and want to vote with my dollars for that when I get a chance. And since I was considering picking up a Chromebook for some little stuff where I wanted to be able to hand a decent but not important machine to a young child for a project or two, this was a chance. It’s less expensive than any of the Chromebooks I was considering, and feels like a better fit to purpose.

“Out of Box Experience”

The machine came in a DHL envelope with a small box containing the laptop and a plastic bag with a charger. The charger is a wall wart with a barrel plug, though the machine does apparently also charge over USB-C. I’ve not tested that yet.

When charged up and powered on, it boots to a Debian 9 installation running the MATE desktop environment, and is about what you’d expect. The default installation includes a default username and password of “rock”. Performance was perfectly reasonable, and the ergonomics of the machine were far nicer than I expected. The keyboard is very comfortable to use, and the trackpad is better than the last one I got from Lenovo (a 2018 ThinkPad) but not quite as good as the last one I got from Apple (a 2015 model). I felt no immediate compulsion to grab an external mouse. The 1080p 14" screen is bright and easy to read.

First Real Day

Last night, I set out to fire it up so that I could update the keyboard and trackpad firmware, as they included a note that pointed out how that update had not made it into the batch I received. That kicked off enough new learning to make me want to post this so that I stand some chance of remembering it.

The laptop powered on and the blinking of the LEDs looked as if it was booting, but nothing appeared on the screen. I took a look at the information-dense Pine64 wiki page for the Pinebook Pro, didn’t see anything that looked like an immediate fix, contemplated building a UART cable for it to see if anything came out the serial console, and decided to sleep on it.

This morning, I looked around quite a bit more, saw some promisingly similar issues when the eMMC is not seated well, and decided to open it up. There were no surprises inside. The eMMC was seated, the switch was in the right position, etc. So I hit the reset switch and closed it back up. Since the need to put the bottom case on in order to safely open/close the clamshell would make serial debugging something of a pain anyway, I went back to the forum and wiki to see what else people had run into. There were some very helpful people in the #pinebook room on irc.pine64.xyz (Thanks especially to doomba!) who had a few ideas. First was to burn an OS immage to an SD card. I had a couple of those in the parts box, so that’s exactly what I did.

Since I haven’t used Debian regularly for about a decade, so there would be a lot of learning/groping around there anyway, I decided to go for Manjaro instead. I know I’m eventually going to want to package a couple of things for this, and those tools are much fresher in my mind than the ones for Debian after having used them both on an old intel laptop and mingw64 in the past year or so.

Lesson 1: This Boot Process is not Like UEFI.

U-Boot appears to cover concerns that are split between UEFI and a boot loader on PCs. Of particular note, the display is never initialized until the OS kernel does so, and it’s up to a particular U-Boot configuration/build as to whether anything would be written to the serial console were I to build the cable. I chose not to go that direction today. I would like to take some time to understand more about configuring U-Boot. This thread and the repositories linked there are what I need to go back and read/process.

Lesson 2: SDHC is Slower Than I Think

As it turned out, I actually had two SD cards that were appropriate for this. One 32GB SDHC card and one 128GB SDXC card. Since an installation image only requires about 8GB, I went with the smaller of the two. It took 10 minutes to write an image and over 20 to boot to its post-install curses dialogs. The only reason I gave it that long is that I was off searching for next troubleshooting steps.

Lession 2a: The Default Manjaro Image Installs and Runs from SD

So I wound up with a bootable but very slow SDHC card that did convince me there was nothing wrong with the display but did not leave me with an especially usable system. After reading some more, I found my way to the full list of Manjaro images and downloaded one that copies the OS to the eMMC, which is significantly faster. But because of the slowness I enjoyed before, I let it sit far longer than necessary at the bootsplash logo. As it turns out (which I discovered in some forum post while reading about the boot process) one of the outstanding issues with that installer is that bootsplash doesn’t disappear and take you to the text prompts. Switching VTs with control-alt-f2 got me where I needed to be. Or at least I think that’s what did it; I tried that combination out of reflex. It’s entirely possible that touching the keyboard is what did it.

Lesson 3: pacman Wants to Upgrade All or Nothing

I believe I learned this about pacman before but forgot. When I first ran an update, I saw a U-Boot version number that gave me pause and canceled it. I wanted to do some reading before accepting that. So I moved on to updating the keyboard and trackpad firmware. I didn’t see a way to get 0.0.2 of the keyboard firmware update tool without updating the rest, so I decided to risk the U-Boot upgrade even if that might mean more “fun” than I really wanted to have by that point. It didn’t, and after a second pacman -Syu run, there was a U-Boot package with a sane looking version number.

Lesson 4: No Wifi Until You’re Logged In (by default) on Manjaro’s Plasma Install

The keyboard firmware upgrade goes in two phases, with a reboot between them. After the first phase, neither keyboard nor trackpad is functional. I thought I took care of that by performing the upgrade over ssh, but completely overlooked the need to log into the display manager in order to establish a WPA-PSK wifi session (by default). So I still had to fish out a spare keyboard/mouse to finish the second phase of the upgrade

Real First Impression

Despite the bumps, this looks like it’s going to shake out to be a nice, usable little system. Manjaro Plasma is surprisingly frugal with memory, and the desktop feels plenty snappy. I’m glad I went with this instead of a chromebook. It’ll be both nicer and more interesting.