U-boot broken after Manjaro update in PineBook Pro

After over a month, I’ve updated Manjaro (with yay) on my PineBook Pro. In the log, I saw a message concerning updating u-boot. I followed the instructions (I did that a few times in the past without problems). Reboot. The result is that u-boot detects Manjaro, but then the screen stays blank. Now, I cannot even boot from SD or USB (as I was able to do in the past).

It might be similar to Pinebook Pro won't boot after manjaro-arm-installer install on emmc. U-Boot problem?, but I simply updated the system and followed the instructions to update u-boot.

Any clue, please?

Thanks in advance

Some good advice regarding boot firmware, like UEFI, U-boot and CoreBoot:

If they work on your system, there’s usually no reason to update/reflash them.

The u-boot packages for the Pinebook Pro we have in the repository, has been tested to work. So not sure what is going wrong on your end.

EDIT: I just noticed that stable branch was still on a “broken” one. So just forwarded our fixed one.

By looking at the other thread I linked, looks like uboot might be the culprit. I was able to boot from SD and USB before, but I can’t do that anymore.

If that’s a so dangerous operation to update uboot, maybe you should warn about that in the log, otherwise, one is tempted to do that: as you print in the log it looks like an innocent operation.

I guess there’s no easy way to fix that now, is there?

It’s boot firmware. There’s a reason why we don’t flash it for you.

As I just pushed an update that has been tested to work, you need to reflash the new one when your mirrors syncs in the new one for your updates. If that’s not possible for you to access, you need to disable the eMMC by the eMMC switch on the main board, then you can boot from the SD card and reflash a working u-boot to eMMC.

I haven’t found documentation about that switch, do you happen to have a link, please?

https://wiki.pine64.org/wiki/Pinebook_Pro#Mainboard_Switches_and_Buttons

Number 24 in that list.

Beware, newer Pinebooks might have it placed somewhere else.

Hi guys,

I foolishly followed the instructions that came with the u-boot update, and now S3 suspend is b0rked (it just shuts down when I close the lid or issue a systemctl suspend).
(I had to reinstall, too, as I had no video on boot, but that’s not a biggie).

I found this thread which mentions using the uboot-pinebookpro-bsp package to restore the functionality, but I can’t find that anywhere in the repos or in AUR. I found it on github, but the build instructions were as long as my arm (pun not intended).

Does anyone have a copy of this I can flash to restore the bootloader to a fully-functioning state?

@chewie did you find a solution to your issue? I seem to have the same after I’ve followed the dd notice from uboot-pinebookpro.install · master · manjaro-arm / packages / core / uboot-pinebookpro · GitLab - how can I rollback to the initial boot sequence?

I’d say - clone the repo and follow instructions

I flashed my pbp with Tow-Boot - works ok - I got a weird distortion in the transition from boot screen to system load - that doesn’t appear to affect the system.

As for the power save functionality - I have no idea - I always power system off.

Thanks, as a burned child though: what is the difference between uboot-pinebookpro and uboot-pinebookpro-bsp? I’m wary why the bsp-version isn’t packaged for Manjaro. And also uboot-pinebookpro-bsp.install · master · manjaro-arm / packages / core / uboot-pinebookpro-bsp · GitLab uses the disk LABEL which I understand is the old approach, instead of using UUID.

The approach which should be avoided is using device paths.

UUID is fine and using LABEL is too - two different devices can have same label but that shouldn’t be an issue with a pbp.

Fair enough but what is the difference between bsp and non-bsp.

You know more than me - and I don’t know :slight_smile:

OK, then let’s see if someone else, especially @chewie, reacts before I bork even more my PBP by not knowing what I’m doing…

The U-boot boot order is USB → SD → eMMC

The Tow-Boot displays a boot menu - allowing you to select or let it find what is available on eMMC then select which image to load.

Yeah, it’s not the lack of options which makes me afraid, it is rather the numerous options, without clear understanding of the pros and cons of each approach, and how they relate to each other, and also to the age of my hardware resp. my OS (Manjaro), i.e. which ones are living corpses.

Currently I boot kali on my pbp - but triggered by this I decided to build the u-boot package as I clearly remember there was no flickering of screen when I received my pbp back in early september last year, it only came after flashing tow-boot.

Techically you should be able to flash the images from the repo. I don’t think the pbp changes with respect to hardware - it is what it is - also because a lot of developers is intended to work with the same hardware.

So I am creating a sd-card using manjaro-arm-installer - to be loaded - I can alwys reflash to tow-boot

Well, u-boot (non BSP, as packaged in Manjaro), also flickers, kills the suspend mode, and keyboard doesn’t work if I interrupt the boot process. So clearly not a recommendation from my side.

There is also the uboot-pinebookpro which is newer than pinebookpro-bsp.

From one of the commit messages it appears that the bsp sets the boot order specifically.

This could be the difference between the two - I mean - it makes sense to create a loader which doesn’t require you to disassemble to be able to disable eMMC if you have borked the loader.

That is why I like Tow-Boot better than U-boot - for the option to hit ESC then choose where to load from - and when you say you have the same flicker when switching from loader to system - then I have absolute no desire to verify :).

And for the S3 thingy - I believe I read something about S3 being deprecated - that may have been in another context though - I cannot remember but fairly recent I believe.

I actually installed my uboot from the uboot-pinebookpro package, but, as said, it is rather worse than the default bootloader coming originally with the PBP. And it didn’t improve the sleep battery time.

OK, I came back to an acceptable state similar or equal to factory delivery, and documented all necessary steps at https://gitlab.com/EricPublic/miscericlaneous/-/blob/master/cheatsheets/pinebookpro.adoc?ref_type=heads#user-content-power-consumption

In a nutshell:

  1. download Tow-Boot pine64-pinebookPro-2022.07-006.tar.xz, unpack it and play spi.installer.img to SD-card according to PINE64 Pinebook Pro | Tow-Boot
  2. get rid of u-boot according to Manjaro Forum
  3. install Tow-Boot using the SD-Card
  4. download Release Release 23.02 · manjaro-arm/pbpro-images · GitHub[Manjaro-ARM-minimal-pbpro-23.02.img and play it to SD-card
  5. use Tow-Boot (ESC!) to boot from the SD-Card.
  6. try the sleep mode (it continues to fail…​), shutdown, reboot
  7. download Manjaro-ARM-kde-plasma-pbpro-bsp-23.01.img.gz (pre-release!), unpack it with unxz and play it to the eMMC with dd if=Manjaro-ARM-kde-plasma-pbpro-bsp-23.01.img of=/dev/mmcblk2 oflag=direct,sync status=progress.
  8. reboot and set-up Manjaro, then reboot.
  9. the first few reboots led to errors and a reboot-loop. This issue disappeared after a good night of sleep!?
  10. re-boot from the Tow-Boot SD card to wipe the SPI.
  11. situation is back to normal and sleep works again (but no improvements either).

And I got the information in the Pine64 forum that the consumption is normal and hardly to be improved. So, for me and for now, the Odyssey is over.