Feature #228

Add boot splash

Added by Hammel about 7 years ago. Updated about 7 years ago.

Status:ClosedStart date:10 Oct 2013
Priority:UrgentDue date:
Assignee:Hammel% Done:

100%

Category:04 - Root File System
Target version:0.7.0
Severity:02 - High

Description

See discussions on boot splash on the wiki.

Associated revisions

Revision 5b3f8a76
Added by Hammel about 7 years ago

RM #228: Added default MIOT logo and modified patch for black background.
The original patch left justified the logo. The modified patch keeps the logo centered.

Revision 5b3f8a76
Added by Hammel about 7 years ago

RM #228: Added default MIOT logo and modified patch for black background.
The original patch left justified the logo. The modified patch keeps the logo centered.

Revision 15af23d6
Added by Hammel about 7 years ago

RM #228: Added utility functions that can be used by init scripts when psplash package is installed.

Revision db5635b4
Added by Hammel about 7 years ago

RM #228: Added init scripts to start and then disable the splash logo.

Revision db5635b4
Added by Hammel about 7 years ago

RM #228: Added init scripts to start and then disable the splash logo.

Revision c50ab658
Added by Hammel about 7 years ago

RM #228: Added init scripts to packaging.

Revision c50ab658
Added by Hammel about 7 years ago

RM #228: Added init scripts to packaging.

Revision dd7ab582
Added by Hammel about 7 years ago

RM #228: Updated start script to set perc and bump files.
Change stop script to kill psplash even if it isn't running (it won't generate an error).

Revision dd7ab582
Added by Hammel about 7 years ago

RM #228: Updated start script to set perc and bump files.
Change stop script to kill psplash even if it isn't running (it won't generate an error).

Revision 340dd01a
Added by Hammel about 7 years ago

RM #228: added numScripts and bumpSplash functions.

Revision 11bafba8
Added by Hammel about 7 years ago

RM #228: Add some debug output to help on failures.

Revision 11bafba8
Added by Hammel about 7 years ago

RM #228: Add some debug output to help on failures.

Revision 1b4db122
Added by Hammel about 7 years ago

RM #228: Change -f to -e when testing for device file for frame buffers.

Revision 058cac3e
Added by Hammel about 7 years ago

RM #228: Move init script to 01 so it runs after initial remapping of /var to /tmp.

Revision 058cac3e
Added by Hammel about 7 years ago

RM #228: Move init script to 01 so it runs after initial remapping of /var to /tmp.

Revision 5d881e01
Added by Hammel about 7 years ago

RM #228: Updated rcS and functions to support psplash usage, if installed.

Revision 6b27ffbc
Added by Hammel about 7 years ago

RM #245, #228: Add functions script for psplash (moving it out of core platform). This fixes the problems with the
core spewing psplash images if psplash isn't installed.

Revision 6b27ffbc
Added by Hammel about 7 years ago

RM #245, #228: Add functions script for psplash (moving it out of core platform). This fixes the problems with the
core spewing psplash images if psplash isn't installed.

Revision c0db7908
Added by Hammel about 7 years ago

RM #228, RM #245: Remove psplash-isms (moved to psplash package) and reduce psplash tests to env variable.

History

#1 Updated by Hammel about 7 years ago

  • Priority changed from High to Urgent
  • Severity changed from 03 - Medium to 02 - High

#2 Updated by Hammel about 7 years ago

  • Target version changed from 1.0 - Atreides to 0.7.0

#3 Updated by Hammel about 7 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 10

psplash will work. There are some things that need to be done to support this.

  1. Add psplash package to buildroot.
    1. This is useful enough to be part of PiBox Development Platform with a default MIOT boot logo.
  2. Patch source to support white background (that patch supports a black background and may not apply cleanly to the buildroot package reference). Ideally, a patch that allowed setting the background to any color would be preferred.
  3. Generate logo image to replace the POKY image header.
    1. mk-image-header.sh <src> POKY
    2. mv <new-header> psplash-poky-img.h
    3. This should be done once and applied as a patch in the buildroot package.
    4. Should provide README instructions on how to modify the image.
For this to be of value the splash may need to go up very early. That means...
  1. psplash init script probably runs right after S00dev
    1. psplash should be disabled if kernel arg disables it (psplash=0)
  2. kernel config (see RM #231) should be changed to make most things loadable modules so kernel output is limited before psplash runs
    1. S01modules should be added to load all the modules we need after psplash but before anything else happens.
    2. S01logging should be moved to S02logging

#4 Updated by Hammel about 7 years ago

  • % Done changed from 10 to 20

Thinking it over, this would be easier to implement as an opkg because of all the specialized patching a user would have to do for a custom logo image. But I'll still need to move the init scripts around to make sure there is a place for the psplash init script early in the boot process.

#5 Updated by Hammel about 7 years ago

  • % Done changed from 20 to 30

Created psplash metabuild based on Beagleboard implementation and pushed to repo under pibox project on gitorious. This version does not yet have the black background patch and the binaries it generates have not yet been tested on the target board.

#6 Updated by Hammel about 7 years ago

  • % Done changed from 30 to 40

Integrated a default MIOT logo along with a modified version of the black background patch. The original patch left justified the logo. The modified patch keeps the logo centered.

Now the package needs an init script and a way to integrate it with the other init scripts. The buildroot patch for psplash has the best info on how to use psplash. Essentially:
  1. S00apsplash starts it in the background
    1. framebuffer device is built into kernel - no need to wait for driver to load
  2. Sxx* writes progress with
    1. psplash-write "PROGRESS <amount>"
    2. progress amount should be written to a file and each script reads it and bumps it. rcS should count the number of init scripts and also set the bump amount. That means there should be a utility "psplash_bump" function that all init scripts can call that will handle this for them.
    3. psplash_bump should take a message argument to output with
      1. psplash_write "MSG <msg>"
  3. S89psplash (right before UI starts) kills it with
    1. psplash-write "QUIT"

#7 Updated by Hammel about 7 years ago

  • % Done changed from 40 to 50

Added "functions" to rootfs/etc/init.d (PiBox Development Platform) that can be used in conjunction with psplash package.

Added init scripts to start and then disable the psplash boot logo.

None of the scripts are tested on the hardware yet.

#8 Updated by Hammel about 7 years ago

  • % Done changed from 50 to 60

Updated scripts to allow other scripts to easily update the progess bar on the splash. Still needs full testing on target hardware.

#9 Updated by Hammel about 7 years ago

  • % Done changed from 60 to 70
Tested on target. It failed but I know why:
  • S00asplash needs to be S01asplash
Also:
  • rcS needs updates (see version on target)
  • functions has mods on target
This works, but it's klunky. The first few scripts go fast on the progress bar. Then things slow down. And then the UI starts before the full progress bar is done. Things to fix:
  • Put network startup in the background, along with anything that depends on it.
  • Compute number of scripts up to the UI starting - divide 100/that number to get bump factor instead of total number of scripts.

If we put slow things in the background but still count starting them then the progress will look better. This is very close to working sufficiently (if not actually improving the start up time).

#10 Updated by Hammel about 7 years ago

Checked in the updates to rcS and functions in the rootfs. Checked in filename change to psplash's init script.

Still need the following:

  1. Put network startup in the background, along with anything that depends on it.
  2. Compute number of scripts up to the UI starting - divide 100/that number to get bump factor instead of total number of scripts.

#11 Updated by Hammel about 7 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 70 to 100

Moved psplash-isms out of core platform and into psplash package, which is cleaner. Fixed percentage bump by dividing 100 by meaningful number of scripts.

Boot time cleanup to speed boot process is external issue. Closing this issue.

Also available in: Atom PDF