New boot animation for 12.1.0
dsd at laptop.org
Mon Mar 19 16:21:22 EDT 2012
I've just pushed everything needed for a new boot animation for
12.1.0, it will arrive in the next build.
The old olpc-bootanim system was barely working in F17, mostly due to
the move to systemd. As the init sequence is no longer linear (it
includes a lot of parallelization) it would be hard to say how to fix
olpc-bootanim - the key issue is that calculating progress through
boot is now far from trivial.
The new animation is based on plymouth, which is the tool used by
Fedora. This means that we'll no longer have to put up with
olpc-bootanim breaking each cycle, we now use what upstream uses.
plymouth does have a solution to the progress problem, but it is
overcomplicated. It works something like this: it takes the amount of
time needed for the last few system startups, averages it, and
computes progress-of-the-moment based on the timing and the events
that systemd sends during boot. It also applies functions to these
calculations so that the progress movement is smooth, rather than
The new theme I've (quickly) implemented doesn't bother showing
progress - it just shows a flashing dot, and then three dots when the
bootup process is finishing.
We do have the option of adding a progress display later, but I
personally prefer the simplistic approach. Plymouth's progress
calculation is pretty good but is not always reliable, and it the
amount of calculation and smoothing needed seems wasteful - it is
important that our boot animation is lightweight so that we don't
drain system resources. However, maybe my simple blinking-dot design
could be prettified a little, without losing simplicity. Please give
it a spin and share your opinion here. I will now focus on some other
tasks but can revisit this at a later date.
Here's the code:
The last time I seriously looked at plymouth for the XO was in 2009,
and I don't think anyone has done so since then. In 2009 we noted that
it produced a significant boot delay on XO-1, so thats why rejected
it. Since then, it has improved enormously in that it doesn't redraw
the whole screen on every frame change (which was dragging us down a
lot), and also, our theme is considerably less complex (less screen
updates) than plymouth's normal ones. I have also studied the codebase
and code structure and I have a good understanding of it, enough to
say that the design is OK and that it should not increase boot time
unacceptably like before (or if it does, the bug is embedded in the
design). We can examine the performance impact in the coming weeks.
More information about the Devel