dcreager.net

Resurrecting my Pinebook Pro

2023-07-08

I've had a Pinebook Pro for several years now as a backup laptop. My primary laptop, a trusty, 7+ year old ThinkPad T460s, finally bit the bullet. While I'm waiting for my new replacement Thinkpad to arrive, it would be nice to use the Pinebook! Unfortunately I bricked it at some point in the past year or so.

Pinebook Pro

Not a hardware brick, luckily! I had installed Manjaro minimal onto the eMMC device, and it became unbootable. The Pinebook's boot order is hard-coded to SPI, eMMC, SD card. The Manjaro install on the eMMC was healthy enough to attempt to boot, which means that the firmware would never fall back on booting from the SD card. But it was unhealthy enough that those boot attempts would never succeed.

Firmware boot order

To fix this, I decided to install Tow-Boot onto the SPI. That ensures that moving forward, I will always at least be able to get a boot menu that lets me explicitly choose which device to boot from.

Tow-Boot

The only wrinkle in this process is the hard-coded boot order mentioned above! Before I could install Tow-Boot, I had to crack open the case and use the physical switch to disable the eMMC device. Then I could use the standard instructions to burn Tow-Boot to an SD card, boot from that, and flash Tow-Boot onto the SPI. Having done that, I could verify that booting always first takes me into Tow-Boot.

Flashing Tow-Boot to SPI

Next I had to reinstall a fresh working OS onto the eMMC. (I could in theory just boot off of an SD card, but I'd rather get the eMMC working again. I could also in theory use the NVMe adapter to install a proper, faster SSD. But indications are that you shouldn't boot directly from that, and should use the eMMC for your boot partition. In any event, I've misplaced my NVMe adapter, so for now I'm going with the simple eMMC solution.)

Reported bugginess booting directly from NVMe

My preferred distro is Arch, but the current Pinebook Pro installation instructions don't provide a bootable SD image, and instead assume that you're in an existing Linux environment from which you can download a root filesystem tarball and unpack that onto the eMMC. So to do that, I first had to download the latest Manjaro minimal image, which is bootable if you burn it to an SD card. Booting that card gave me a working Linux command line, from which I could then proceed with the Arch installation instructions.

PinebookPro Arch Linux installation instructions

In retrospect, I could also have followed the instructions to unpack the Arch Pinebook root filesystem onto an SD card from my existing Linux workstation!

Miscellaneous notes

Other things to keep in mind:

  • The keyboard will stop working in Tow-Boot if you touch the trackpad!

Pinebook Pro keyboard randomly (?) freezes [GitHub]

  • I'm seeing this black screen issue with the Arch Linux install. There doesn't seem to be a fix or workaround, which means I might be going back to Manjaro after all!

Black screen after installation [GitHub]