Changing default splash screen

Hi,

We’re trying to replace the default splash screen.
To do that, we first download the image for the device, and then execute the command:

balena preload ./device.img --app APP_NAME --commit current --splash-image ./logo.png

We still see the default image when the device boots.
Are there any special requirements for the logo?
Anything else we’ve missed?

Thanks,
Vitaliy

That’s strange - can you check what image is there in the boot partition of the device, in the splash folder. Is there a resin-logo.png there? And is the the resin logo?

Sure!

At resin-boot/splash there is only resin-logo.png which is balena’s logo.

Thanks!
Vitaliy

Hi @Vitaliy can you tell me what OS version and device type you are running the preload command, I would like to try and reproduce it on my side, it sounds like for some reason the CLI is not copying the .png into the right place.

Sure.

OS Version: v2.51.1+rev1
Device: RPi3

Thanks,
Vitaliy

Thanks, just one more thing, what version of the CLI are you using?

Hi @Vitaliy I reproduced it here. What is happening is that in the later OS versions, the resin-logo.png file that defines the boot splash was renamed to be balena-logo.png and unfortunately the CLI didn’t know about that name change, so it is still creating a resin-logo.png file when you preload but the new OS doesn’t know what to do for that file name, so just uses the balena-logo.png . So this is a CLI bug and i will raise a ticket for this.

In the short term you can change the splash logo manually by mounting the boot partition (in MacOS I just need to double click on the .img to mount this). You basically just need to rename your logo.png file to balena-logo.png and then add it to /splash folder overwriting the old balena one already there. Let me know how you get along with that.

Hi Shaun,

It looks like the bug is a bit different -

  1. The file should be called resin-logo.png for it to become in effect
  2. balena preload cli command simply ignores it the --splash-image and always copies the default balena logo.

In our setup we do the whole steps with automation, so we cannot double click the image :slight_smile:
We actually need to fdisk it, it to see the partition table, mount the right one - given that the structure of the partition table will not change - can you guarantee this btw?, and then copy the splash file. If you see a simpler way - please let me know.

Thanks,
Vitaliy

Hi @Vitaliy,
before you have mentioned using BalenaOS v2.51.1+rev1, the rename to balena-logo.png happend in 2.53.0 so for v2.51.1+rev1 resin-logo.png is the correct name.
balena preload ignoring the --splash-image seems like a bug, could you please specify the balena CLI version you are using?
When you say “We actually need to fdisk it, to see the partition table”, you can use partprobe for that. As for now we do not plan to change the partition layout but we can not guarantee that a good reason for that won’t show up in the future.

The splash image name issue (by which the CLI would always save the splash as /splash/resin-logo.png whereas balenaOS v2.53.0 and later expects /splash/balena-logo.png) was fixed in balena CLI version 12.14.13.

But reading the first message in this thread and this command:

balena preload ./device.img --app APP_NAME --commit current --splash-image ./logo.png

I wonder if there is another issue. I have found that if the balena preload command is executed multiple times on same image file for the same commit, it prints the message "Nothing new to preload" (which is correct) but also it does not update the splash image. In my testing, this only happens when that message is printed:

$ balena preload balena-cloud-test-rpi-raspberrypi3-2.53.9+rev1-v11.9.9.img -a test-rpi --commit current -s new_logo.png 
Building Docker preloader image. [========================] 100%
...
Nothing new to preload. (BalenaError)

The workaround (especially in an automated scenario) would be to always preload a “fresh” (never before preloaded) OS image file. Then there will always be something to preload, and the splash image will be updated.

I have created a CLI issue requesting that the splash image be updated even if there is “Nothing new to preload”: `preload` does not update splash image if "Nothing new to preload" · Issue #2008 · balena-io/balena-cli · GitHub

Thanks @pdcastro!
I confirm that upgrading balena cli to latest version resolves the issue.

We execute preload just once, so we did not encounter the other issue you mentioned.