Better Startup Experience (Graphical Boot Sequence)

Summary

Owner

Name: RayStrode, JonMcCann, PeterJones, DavidAirlie et al

Current status

Targeted release: Fedora 10

Last updated: 2008-06-02

Percentage of completion: 25%

F9 has kernel modesetting for Intel hardware.
Ray has been working on a prototype rhgb replacement called Plymouth. It was put on hold while kernel modesetting was maturing, and has been revived after F9. The current plymouth sources can be found here: http://gitweb.freedesktop.org/?p=plymouth;a=summary . There are plymouth packages in rawhide already, but they are not useful for trying it out until the necessary mkinitrd changes land.

Usage cases/rationale

Scope

Requires changes to grub, mkinitrd, initscripts, gdm, X, possibly other packages. rhgb will be replaced by Plymouth. The extent of this project is getting a graphical boot sequence that is polished and professional looking.

Boot up could be made faster, too, but that issue is orthogonal and should be tracked separately .

Test Plan

Verify that boot without rhgb in the kernel cmdline gives a traditional text mode boot sequence

Verify that failure to set a mode in initrd falls back to a traditional text mode boot sequence

Verify that the graphical boot sequence contains only a single mode switch from blank text mode

to graphical mode, and that there is a smooth transition from the startup animation to the login
screen

Verify that entering encryption passwords works both in the graphical case and in the fallback case

Verify that specifying a mode in the kernel commandline works

Verify that failure messages from service startup can inspected after boot

Verify that dropping to a shell on critical errors works

Dependencies

This feature depends on plymouth getting into F10. It also depends on a ton of other things...

Details

For a smooth and shiny experience, we want

the mode should be changed early from text mode to the most optimal graphics mode available

the mode should not be changed more than once

there should be no other uncontrolled transitions

there should be no text messages, unless the user presses Escape to see them

there should be good, smooth transitions

The fallback if mode-setting is present in the initrd but fails, is a standard 1024x786 mode.
The fallback if mode-setting is not in the initrd is text mode.

Timeline of the current bootup

bios

text

grub

graphical

grub info

4>text

kernel boot

initrd drivers

init

rhgb

graphical

text login

text

gdm

3>graphical

gnome startup

user session

Plan for improving this

do away with mode switch for grub menu by default (ie, don't show the image unless "needed")

make kernel, nash and init obey the quiet option

switch to graphical mode in the initrd, draw an animation and keep it running until gdm starts up

rhgb goes away

make the X server started by gdm take over the existing vt, mode and framebuffer content

improve the transitions animation -> gdm -> session

firstboot runs on the gdm X server

This lets us start with a blank screen in text mode, then a single switch to graphics mode,
then an animation, then the login screen fades in.

bios

3>text

grub

kernel boot

initrd drivers

5>graphical

init

gdm

gnome startup

user session

One complication is support for encrypted disks. This may require us to ask for a password in the initrd, before
we have X or toolkits. The proposal for acceptable input-handling (at least as far as keyboard layouts are concerned)
is to write an xkb-to-console-converter.

Tasks

Make grub not display a splash image unless the user enters the menu. It has been pointed out that a timeout of 0 is not ideal for this, the current timeout value of 3 may be just fine.

Make grub not report which choice was selected if the user didn't pick a choice #239760

Release Notes

Comments

MartinJürgens: The shutdown experience should also be nice and shiny. Would be nice if this spec would include that.

"Ray Strode: potentially, although I'd like shutdown to just be 'kill all processes that have open files' and cut power"

MikePetullo: There is an effort to bring encrypted root filesystems to Fedora. One of the weaknesses of our work so far is that we can't provide an internationalized encryption key prompt very early in the boot process (i.e., in the initrd). Could this better startup feature allow us to do this?

"Ray Strode: Given that encrypted block devices are slated for F9, i think we have to bring this into account. I talked to Jeremy Katz about this last week some. The answer to the i18n problem, may be to use icons instead of text. We could potentially have text, but it means bringing in my libraries, potentially translations, etc"