GNOME OS on Pinebook Pro

Recently, I have been working on running GNOME OS on the Pinebook Pro.

GNOME OS is a bootable image used to test vanilla GNOME without dependencies on distributions. It is upgradable through OSTree and has Flatpak to allow installation of applications. GNOME OS is built using BuildStream. Basic dependencies are provided by Freedesktop SDK.

The Pinebook Pro is a $200 arm 64 laptop from PINE64.

The merge request I am working on is available at:

GNOME Initial Setup running Pinebook Pro

U-Boot and the Linux kernel are not yet mainline. The source of the linux kernel we use for the moment is the branch for Manjaro’s build maintained by tsys. U-Boot is built from a branch maintained by ENOSPC.

Apart from that we mostly use all the components of a standard GNOME OS image, including Wayland and EFI boot through systemd-boot.

How to test it

First, note that this is a work in progress, so do not open issues before the branch is merged. Instead, you may comment on the merge request. But do not expect everything to work. (Edit: You can also join #gnome-os on GIMPNet)

To download the image, find the latest pipeline for the merge request, where the last bullet is green. On that bullet, select pinebook-pro-image. Then download the job artifact.

In that job artifact, there will be a file named disk.qcow2. You can flash it to an sd card or an eMMC module using qemu-img dd if=disk.qcow2 of=/dev/device-to-which-to-write.

If you do not get anything to boot, I recommend you use the serial port of the computer to debug the issue.

Updating the keyboard and touchpad firmware

Some first batches of the Pinebook Pro require a firmware update. Unfortunately, there is no automatic way to do it at the moment.

If your keyboard is an ISO keyboard, do the following.

$ sudo pinebook-pro-keyboard-updater step-1 iso

Then reboot. After reboot:

$ sudo pinebook-pro-keyboard-updater step-2 iso

Then reboot one more time. The firmware is updated.

If you have an ANSI keyboard, replace iso by ansi in the command line.


This work has been sponsored by Codethink Ltd.