The other day, Elementary announced elementaryOS 6 preview builds for the Pinebook Pro. I went ahead and flashed an SD card with a build image to try it out. Instead of booting to elmentaryOS on the SD card as the system should have, it booted to Manjaro. While a quick restart from Manjaro caused the system to boot from the SD card, I figured it must be time to upgrade the bootloader, U-Boot. As it turns out, it was time because this solved my boot issue.
This tutorial provides instructions for updating the Pinebook Pro’s bootloader from Manjaro Linux.
First, ensure the system is up-to-date.
$ sudo pacman -Syuu :: Synchronizing package databases... core is up to date extra is up to date community is up to date :: Starting full system upgrade... there is nothing to do
Next, determine which device is the onboard eMMC module.
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 85.5M 1 loop /var/lib/snapd/snap/core/9806 loop1 7:1 0 85.8M 1 loop /var/lib/snapd/snap/core/9670 loop2 7:2 0 174.6M 1 loop /var/lib/snapd/snap/multipass/2446 loop3 7:3 0 62.2M 1 loop /var/lib/snapd/snap/snapcraft/5312 loop4 7:4 0 48.4M 1 loop /var/lib/snapd/snap/core18/1883 loop5 7:5 0 36.9M 1 loop /var/lib/snapd/snap/review-tools/1723 loop6 7:6 0 62.2M 1 loop /var/lib/snapd/snap/snapcraft/5282 loop7 7:7 0 48.8M 1 loop /var/lib/snapd/snap/core18/1888 loop8 7:8 0 173.6M 1 loop /var/lib/snapd/snap/multipass/2379 mmcblk2 179:0 0 58.2G 0 disk (1) ├─mmcblk2p1 179:1 0 213.6M 0 part /boot └─mmcblk2p2 179:2 0 58G 0 part / mmcblk2boot0 179:32 0 4M 1 disk mmcblk2boot1 179:64 0 4M 1 disk mmcblk1 179:96 0 238.5G 0 disk (2) zram0 252:0 0 5.6G 0 disk [SWAP]
1 In this case,
mmcblk2is the internal 64 GB eMMC module.
mmcblk1happens to be a connected 250 GB SD card.
Flashing to the wrong device could destroy your data. If you have an SD card connected, you might want to unplug it to be safe.
idbloader.imgto the eMMC.
$ sudo dd if=/boot/idbloader.img of=/dev/mmcblk2 seek=64 conv=notrunc,fsync 322+1 records in 322+1 records out 164958 bytes (165 kB, 161 KiB) copied, 0.00663394 s, 24.9 MB/s
u-boot.itbto the eMMC.
$ sudo dd if=/boot/u-boot.itb of=/dev/mmcblk2 seek=16384 conv=notrunc,fsync 1801+1 records in 1801+1 records out 922192 bytes (922 kb, 901 KiB) copied, 0.0833926 s, 11.1 MB/s
That’s all. You should now have the latest U-Boot booting your system!