Ray Strode [Thu, 25 Sep 2008 04:45:38 +0000 (00:45 -0400)]
Move boot time accounting up a layer
This way all plugins can access it as a standard feature.
We'll need to move it a layer higher still, though, to
make sure progress bars don't get reset when the user
presses escape twice, etc (it's per-boot state, not
per-splash state).
Will Woods [Wed, 24 Sep 2008 15:13:19 +0000 (11:13 -0400)]
Add progress bar to spinfinity
The progress bar uses an estimate of boot time - defaulting to
45 seconds if unknown - and runs from 0% to 100% over that
interval.
The patch measures how long it takes to boot and writes that
value to /var/lib/boottime at plugin shutdown. (This is kind of
a nice side-effect - we get actual *measured* boot speed data,
rather than just "feels snappier!")
There's an associated script, update-boottime, that crams
/var/lib/boottime into your initrd, so this splash plugin can
use *that* to more closely approximate the time required to
boot.
This is similar to the OS X "WaitingForLoginWindow" process -
see
http://daringfireball.net/misc/2005/04/tiger_details#waitingforloginwindow
for details on that.
It's an effective placebo - startup *seems* faster with the
progress bar, even though it's exactly the same.
You can enable it by adding 'timebar:1' to the boot commandline.
This will make it run in linear-time mode - the progress bar
moves linearly from 0% to 100%.
Using 'timebar:2' modifies the percentage calculation to use an
exponential function - this makes the bar run faster at first,
then slow as it approaches 100%. This makes startup seem even
faster.
Ray Strode [Wed, 24 Sep 2008 14:58:19 +0000 (10:58 -0400)]
Fix build, remove some superfluous code
I was a little quick to the trigger in the
previous commit. This commit fixes the build
by passing in the right arguments to the function
and also clears out a duplicated chunk of code.
Ray Strode [Wed, 24 Sep 2008 14:38:27 +0000 (10:38 -0400)]
Hide text splash on shutdown
We always want to hide the text splash when plymouth
quits. Even if --retain-splash was called. Cross
fading from text to graphics doesn't make too much
sense.
Ray Strode [Mon, 22 Sep 2008 03:12:12 +0000 (23:12 -0400)]
Add new interface to make splash plugin go to idle
There are times when we want to make the splash
screen stop any pending animations and got to an
idle state. For instance, right before resuming,
or right before loading up GDM. It may take a
few frames for the splash screen to get there though.
This interface tells the splash screen it needs to
idle and provides a trigger for it to fire when it's
actually made it to an idle state.
Ray Strode [Mon, 22 Sep 2008 02:44:19 +0000 (22:44 -0400)]
Add new trigger object
This just calls a closure at a later point in time.
It will get used for having the splash plugin perform
tasks that will make the daemon defer responding to
the client.
Ray Strode [Sat, 13 Sep 2008 15:05:26 +0000 (11:05 -0400)]
Unload plugin instead of hiding it on free()
We basically don't want to ever implicitly hide on
the shutdown path, only when asked to explictly,
or when the splash plugin itself deems it
necessary.
Ray Strode [Wed, 10 Sep 2008 17:31:47 +0000 (13:31 -0400)]
Force shadow frame buffer to have cairo compatible row stride
Previously it would keep the rowstride of the scanout buffer,
which isn't right. The entire point of the shadow buffer is
that it has a known at compile time constant memory layout.
(This change fixes password prompts on some hardware)
Ray Strode [Wed, 27 Aug 2008 03:51:59 +0000 (23:51 -0400)]
Add start of font rendering support
We now have a plugin that we load after / is mounted.
It links against pango for text support. In
libplybootsplash we have a new label control
that will call into the plugin if it's loaded or
render invisible otherwise.
Ray Strode [Thu, 21 Aug 2008 18:11:24 +0000 (14:11 -0400)]
Add --prompt option to ask-for-password client command
We want to be able to ask the user a question instead
of assuming they know what question to answer. This
will be important if /opt and /home get encrypted with
different passwords.
Ray Strode [Wed, 20 Aug 2008 19:47:39 +0000 (15:47 -0400)]
Before asking for passwords try old passwords first
Frequently, the user will choose the same password
for multiple encrypted block devices. Rather than
asking them for the same information multiple times,
we try to use old passwords first.
Ray Strode [Wed, 20 Aug 2008 15:45:49 +0000 (11:45 -0400)]
add new "multiple answer" reply type to protocol
When returning cached answers we'll need to return
an entire list. This provides a way for the client
to know if it needs to read in more than one answer
or not.
Ray Strode [Tue, 19 Aug 2008 20:42:27 +0000 (16:42 -0400)]
add new protocol type for cached passwords
It will be used for the client to communicate to the
daemon that it would prefer the daemon return any
previous password responses instead of asking the user.
Ray Strode [Tue, 19 Aug 2008 18:23:54 +0000 (14:23 -0400)]
Add new api to say "I don't know the answer to your question"
This will be important when the client asks the daemon a question
it can't ask the user. In particular, "What's the password?" when
there isn't any splash that accepts input.
Ray Strode [Tue, 12 Aug 2008 21:16:43 +0000 (17:16 -0400)]
if an error happens during boot up spool it for the viewer
We store a link to the boot log in /var/spool/plymouth so that
the viewer can detect if boot up failed. It will do this by
checking if /var/log/boot.log and /var/spool/plymouth/boot.log
are the same file
Ray Strode [Tue, 29 Jul 2008 18:01:09 +0000 (14:01 -0400)]
Add initial boot log viewer from Matthias
Since plymouth conceals boot messages from the user during boot
up, it should provide a way for users to get at the boot
messages after login. In particular, if there was a problem
during boot up, the user should get notified at the login
screen.
This commit adds the first cut at a log viewer without
any of the login screen integration bits.
Ray Strode [Thu, 7 Aug 2008 20:33:28 +0000 (16:33 -0400)]
Don't call popen since it doesn't work in the initrd
popen relies on /bin/sh which may not be available in
the initrd. This commit changes ask-for-password to
call fork() directly. The code could use some clean ups
and a better command spliting function than split_string.