[Pinebook Pro] Boot process

Hi, I’m the new happy owner of a Pinebook Pro and I’m really impressed with how well and smooth Manjaro KDE runs on it (event though I have fully encrypted my root FS using LUKS).

So thanks to all the Manjaro ARM team for this tremendous work !

However I’m a bit puzzled with the unusual way this ARM machine boots so I have a couple questions.

When I got the machine it initially “booted in the dark” before the Manjaro Plymouth logo appears. I was quite happy with this discretion.

Since, I have installed the uboot-pinebookpro package and dd it to the first sectors of the eMMC.

Unexpected to me, my Pinebook Pro now boots in a more “Traditional PC” way, with the bootloader showing some BIOS-like output, followed by a messed up display for a half-second, and I’d rather disable all this. Is it something that can be easily confiigured ?

Unfortunately I didn’t think of making a backup of the original Pinebook Pro eMMC bootloader space, so I can’t restore it to the original (it there a copy of the original bootloader somewhere ?).

Also, I’m under the impression that the boot process is noticeably longer with the new bootloader compared to the original one. I see that the bootloader is turning on USB and probing the USB ports, which takes some time ; I’d like to disable this as I don’t plan booting my machine from USB.

Again is this feasible, is there some relevant documentation I could read ?

Also, while booting I notice :

Loading Environment from SPIFlash... (blah blah)
***Warning - bad CRC, using default environment

I’m still not sure of the exact role of the SPI flash, I know it may hold a bootloader but I’m not sure if there is even anything on it on an off-the-shelf Pinebook Pro.

Am I supposed to initialize the SPI in some way so u-boot can read-write its environment from/to it ?

Well basically I just would like to feel at ease with the PBPro boot process and u-boot, like I used to be on PCs with BIOS, UEFI, grub or rEFInd…

It looks like u-boot loads an extlinux/extlinux.conf file that resembles much a syslinux configuration file, but well that’s not syslinux, so ? It woud be nice to be able to define a boot menu there with several options, but still is this feasible ?

So any pointers on docs would be much appreciated, everything I coud read was either very specific to one given problem, or necessitated u-boot patches and recompilation, I assumed that there might be a simpler way of doing things…

Thanks in advance for any help.

I recommend looking into tow-boot
That’s what I’m using on my pbp. The newest batch of pbp’s had some hardware changes, I think. I am not sure if it is fully supported by tow-boot and upstream uboot.

Tow-boot has a boot menu, maybe that is what you’re looking for. You can also use uboot or tow-boot in UEFI mode and then use grub/rEFInd/systemd-boot.

Re: slow boot because of usb probing
You can go into the uboot shell and then unset the ‘preboot’ variable. By default, preboot is 'usb start'
Something like

set preboot=
saveenv

Jeez I broke something…

The actual command was :

setenv preboot
saveenv

It worked and wrote it to ths SPI flash (preserving me of future “BAD CRC” messages.
And now the USB controller doesn’t get initialized.

But…

Now I get “Press any key to interrupt 3… 2… 1…” and fsck me, that’s an USB keyboard !

So I’ve lost ability to interrupt the boot process and type u-boot commands.

(Actually there seems to be little interest removing the USB init from “preboot” as then, it doesn’t get initialized before the keyboard is supposed to be used (bummer !), but it anyway gets initialized immediately afterwards…

Is it safe to try to erase the SPI environment from within the OS ? Am I supposed to completely erase the SPI, or will it brick my PBP ?

Well that’s a part I know little about…

TIA for your help.

Replying to myself :wink:

I could reset the SPI and get the keyboard back during boot with a simple :

flash_erase /dev/mtd0 0 0

That cleared the SPI that aparenty doesn’t contain anything necessary.

Afterwards, from within-boot :

saveenv

…wrote the default environment back to the SPI flash and allowed me to get rid of the annoying “***Warning - bad CRC” messages at boot.

(I hate seing error messages when there is no true error :wink: )

I succeeded installing tow-boot on my Pinebook Pro SPI and it works just fine.
Thanks for the hint !

For the record, I had first to erase u-boot from the eMMC to allow the tow-boot SPI installer to boot and work properly, so I had to :

dd if=/dev/zero of=/dev/mmcblk2 seek=64 count=334 conv=notrunc,fsync
dd if=/dev/zero of=/dev/mmcblk2 seek=16384 count=1956 conv=notrunc,fsync

Afterwards I turned OFF the Pinebook Pro, then powered it on the Tow-boot SPI installer SD-card, it booted as expected, chose to write tow-boot to SPI that went fine and quick, rebooted et voilà !

The machine boots just fine, Tow-boot works just fine and my Manjaro is happy, nothing was lost.

2 Likes