Find a file
Dr. Tilmann Bubeck ecd2721f1e two-step: quit properly when boot finishes while waiting for password
When the computer is progressing through its boot up process, plymouth
calls into the splash plugin's on_boot_progress function at regular
intervals with increasing values for "percent_done".  At some point, it
gets to 90% done, and that's when two-step begins its finishing
animation sequence.  As soon as this sequence finishes, two-step pulls
its stop trigger, which

1) sets its "is_idle" flag to true and
2) pulls the core plymouthd code's idle trigger, to notify that
   code that it's at a good animation frame to quit (if the core
   plymouthd code has an idle trigger set up)

During the boot process, the user may need to enter a password
(the "plymouth ask-for-password" command).  When that happens,
the splash waits for the user to enter a password, but boot progresses
in the background.

If the user then enters a password, the boot animation restarts again
(from the display_normal function).  This restarting of the boot
animation will cause the "is_idle" flag of the splash to get set back
to false.

Later when plymouthd wants to quit, it calls the become_idle function
of the splash plugin. That function notices "is_idle" is false, and
the stop_trigger is not NULL.  The function isn't suited to work
with this combination, and so at this point the splash never
tells the code daemon code it's idle.

This commit changes on_boot_progress to return before looking at
percent_done, if the user is getting asked a question.  This way
the stop_trigger won't get created prematurely, and is_idle won't
get out of sync.

https://bugs.freedesktop.org/show_bug.cgi?id=49355
2012-05-07 21:34:03 -04:00
docs [docs] Fix up encoding Kristian Høgsberg 2010-05-14 13:55:13 -04:00
images ship bizcom unconditionally 2008-06-22 00:49:24 -04:00
scripts populate-initrd: add new location for dracut source functions 2012-04-04 15:02:53 -04:00
src two-step: quit properly when boot finishes while waiting for password 2012-05-07 21:34:03 -04:00
themes splash: add new spinner theme 2011-03-23 12:06:39 -04:00
.gitignore upstart-bridge: add new helper program 2011-03-12 17:54:53 -05:00
acinclude.m4 [configure] Add AS_AC_EXPAND for configured dirs 2009-08-07 16:32:32 -04:00
AUTHORS Add Peter to AUTHORS 2008-06-10 21:59:10 -04:00
autogen.sh autogen.sh: rework to be more buildsystem friendly 2011-10-10 09:16:10 -04:00
ChangeLog Put in ChangeLog request to not use ChangeLog 2008-05-20 15:15:03 -04:00
configure.ac drm: rename ENABLE_GDM_TRANSITION to ENABLE_GDM_DEPRECATED_TRANSITION 2012-05-03 16:52:52 -04:00
COPYING initial import 2007-05-08 17:48:00 -04:00
INSTALL Add stub INSTALL file 2009-05-02 01:10:19 -04:00
Makefile.am [docs] Rename man/ to docs/ 2009-12-16 13:13:41 -05:00
NEWS initial import 2007-05-08 17:48:00 -04:00
README README: resync from wiki 2011-10-10 10:54:00 -04:00
TODO Add hack to make maintenance mode probably work when 2008-06-30 17:55:15 -04:00

plymouth - graphical boot animation and logger

Plymouth is an application that runs very early in the boot process
(even before the root filesystem is mounted!) that provides a graphical
boot animation while the boot process happens in the background.

It is designed to work on systems with DRM modesetting drivers. The idea
is that early on in the boot process the native mode for the computer is
set, plymouth uses that mode, and that mode stays throughout the entire
boot process up to and after X starts. Ideally, the goal is to get rid
of all flicker during startup.

For systems that don't have DRM mode settings drivers, plymouth falls
back to text mode (it can also use a legacy /dev/fb interface).

In either text or graphics mode, the boot messages are completely
occluded.  After the root file system is mounted read-write, the
messages are dumped to /var/log/boot.log. Also, the user can see the
messages at any time during boot up by hitting the escape key.

Plymouth isn't really designed to be built from source by end users. For
it to work correctly, it needs integration with the distribution.
Because it starts so early, it needs to be packed into the
distribution's initial ram disk, and the distribution needs to poke
plymouth to tell it how boot is progressing.

plymouth ships with two binaries: /sbin/plymouthd and /bin/plymouth

The first one, plymouthd, does all the heavy lifting. It logs the
session and shows the splash screen. The second one, /bin/plymouth, is
the control interface to plymouthd.

It supports things like plymouth show-splash, or plymouth
ask-for-password, which trigger the associated action in plymouthd.

Plymouth supports various "splash" themes which are analogous to
screensavers, but happen at boot time. There are several sample themes
shipped with plymouth, but most distributions that use plymouth ship
something customized for their distribution.

Plymouth isn't done yet. It's still under active development, but is
used in several popular distros already, including Fedora, Mandriva,
Ubuntu and others.  See the distributions page for more information.