Work of samueldr to run NixOS on the Pine64 Pinebook Pro
Go to file
Samuel Dionne-Riel 97751d2481
Merge pull request #36 from miniBill/patch-1
Tow-Boot with the poweroff fix was released
2022-03-29 14:13:08 -04:00
firmware ap6256-firmware.nix: Update 2022-02-20 20:12:14 -05:00
keyboard-updater keyboard-updater: 2020-01-22 → 2021-07-28 2021-08-29 14:38:54 +02:00
sound Revert "Drop custom reset-sound, not needed anymore... probably..." 2022-02-20 20:40:38 -05:00
.gitignore initial commit 2019-11-14 17:40:51 -05:00 Tow-Boot with the poweroff fix was released 2022-03-29 18:58:50 +02:00
overlay.nix Drop customized lts kernel too 2022-02-20 20:06:48 -05:00
pinebook_pro.nix Mainline kernel 2022-02-21 19:56:50 +01:00

WIP stuff to get started on the pinebook pro.

Using in your configuration

Clone this repository somwhere, and in your configuration.nix

  imports = [

That entry point will try to stay unopinionated, while maximizing the hardware compatibility.

Current state

A whole lot of untested.

You can look at the previous state to see that the basic stuff works. But I find listing everything as working is hard.

What's untested and not working will be listed here at some point. Maybe.

Known issues

rockchipdrm and efifb

This can be worked around by booting with the efifb=off kernel command-line.

This is already handled for you by this configuration. If using the generic UEFI AArch64 iso, you will need to add the option yourself to the command-line using GRUB.

EFI and poweroff

When booted using EFI, the system will not power off. It will stay seemingly stuck with the LED and display turned off.

A workaround exists, and is built in recent Tow-Boot (make sure your release is 2021.10-004 or more recent).

Platform Firmware

NOTE: The previously available customized U-Boot from this repository are not available anymore.


I highly suggest installing Tow-Boot to the SPI Flash.

Having the firmware installed to SPI makes the device act basically like a normal computer. No need for weird incantations to setup the platform boot firmware.

Alternatively, starting from the Tow-Boot disk image on eMMC is easier to deal with and understand than having to deal with U-Boot manually.

Mainline U-Boot

Mainline U-Boot has full support for graphics since 2021.04. The current unstable relases of Nixpkgs are at 2021.04 at least.

 $ nix-build -A pkgs.ubootPinebookPro

Note that the default U-Boot build does not do anything with LED on startup.

Keyboard firmware

WARNING: Some hardware batches for the Pinebook Pro ship with the wrong chip for the keyboard controller. While it will work with the firmware it ships with, it may brick while flashing the updated firmware. See this comment on the firmware repository.

It is unclear how to identify said hardware from a running system.

To determine which keyboard controller you have, you will need to disassemble the Pinebook Pro as per the Pine64 wiki, and make sure that the IC next to the U23 marking on the main board is an SH68F83.

 $ nix-build -A pkgs.pinebookpro-keyboard-updater
 $ sudo ./result/bin/updater step-1 <iso|ansi>
 $ sudo poweroff
 # ...
 $ sudo ./result/bin/updater step-2 <iso|ansi>
 $ sudo poweroff
 # ...
 $ sudo ./result/bin/updater flash-kb-revised <iso|ansi>

Note: poweroff must be used, reboot does not turn the hardware "off" enough.