The pinebook pro is a beautiful 64-bit ARM based laptop, that reminds me of the form factor of a modern macbook air, shipping with a premium magnesium alloy shell, 128GB eMMC and a 10,000 mAH battery. All this for $200.
As a NIX machine, I decided to stick with Arch Linux, but have plans to one day install OpenBSD on it.
A big thanks to the team (Nadia Holmquist Pedersen) who has put together a pre-built flashable Arch Linux image, tailored for ARM and specially some of the hardware in the Pinebook Pro. Without this, it would have been a matter of manually grafting bits and pieces of the supported Manjaro build into an ARM based Arch install.
- Boot up the Pinebook Pro, which has manjaro and KDE pre-installed. Login with rock/rock. Pop the SD card into the reader on RHS of the pinebook. The SD card is
/dev/mmcblk1, while the eMMC is
- Download the pre-built flashable Arch linux image, tailored for ARM and specially the Pinebook Pro.
- Flash the micro SD card with Nadia’s image
sudo dd if=archlinux-2020.07.02-pbp.img of=/dev/mmcblk0
- Reboot into Arch running off the SD card.
- Partition the internal eMMC card
fdisk /dev/mmcblk2, leaving the first 16MB free for the u-boot boot loader. Enter
gto create a new GPT partition table. Then
nto create a new partition, with
65536as the first sector. Then
wto write the changes.
- Format the newly partitioned eMMC with
- Mount it with
mount /dev/mmcblk2p1 /mnt
pacstrapthe fleshly minted volume as per a normal Arch installation, such as
pacstrap /mnt base base-devel. After pacstrap, chroot to
/mnt. Setup everything as per normal, such as networking, accounts, and so on. Checkout the offical arch install wiki or my arch guide.
- Install a customised kernel, that includes support for the pinebook pro, by running
pacman -Sy linux-pbp.
- Create u-boot configuration file
/boot/extlinux/extlinux.conf, with the configuration template below, replacing
<UUID>with the id of the eMMC partition which can be identified with the
- Add firmware for bluetooth, wifi and keyboard brightness
pacman -Sy ap256-firmware pbp-keyboard-hwdb.
- Install u-boot bootloader with
pacman -Sy uboot-pbp, this will vomit out the
/boot. The first must be written at sector 64, the second at sector 16384.
Write u-boot bootloader
dd if=/boot/idbloader.img of=/dev/mmcblk2 seek=64 dd if=/boot/u-boot.itb of=/dev/mmcblk2 seek=16384
LABEL Arch Linux ARM KERNEL ../Image FDT ../dtbs/rockchip/rk3399-pinebook-pro.dtb APPEND initrd=../initramfs-linux.img console=tty1 rootwait root=UUID=<UUID> rw