Ubuntu 10.4 (Lucid) boot experience changing from using usplash to plymouth

Sponsored Link
This specification details the foundation team plans for the technology for the Lucid Lynx boot experience, changing from using usplash to plymouth to provide the graphical splash screen while waiting for the boot to complete. The "look" and "theme" components are not covered here.

Release Note

Ubuntu 10.04 has switched from using usplash to Plymouth for the boot splash screen, providing a flicker-free experience on Intel, NVIDIA and ATI hardware.

Rationale

The current boot experience is still jarring, with obvious flickers and transitions between the separate phases. These flickers are caused by three types of change:

* Mode switches where the actual resolution and/or colour-depth of the panel or monitor is changed
* Changing the console from text to graphics mode (or vice-versa), which inherently incurs a mode switch
* Switching the active Virtual Terminal (VT), which inherently incurs a console mode change

There are techniques which permit these to be eliminated as much as possible, building on the kernel mode setting GPU drivers added to the kernel in Ubuntu 9.04. While usplash can render to the framebuffer provided by those drivers, plymouth is far more developed and capable and gives us the wanted experience out of the box.

Assumptions

The release note assumes that we will have KMS drivers for the Intel, NVIDIA and ATI hardware ranges, however karmic only released with support for Intel. Fedora 12 released with additional support for NVIDIA and ATI, so it seams reasonable that we will have that for the next release. This is a kernel team decision, however.

The fallback case for non-KMS described below assumes that the Design team remain happy with the "reduced look and feel" for those systems.

Implementation

X server

When using a Kernel Mode Setting driver, the X server has no current need to perform a mode switch if the kernel driver is already loaded; however it does clear the screen to black because it is called with the "-br" (black root) option.

A patch exists that adds a new "-nr" (no root) option to the X server. If supported by the driver, this places the contents of the framebuffer in the X root window, giving a seamless transition until some other X client clears or paints to the root window.

Patches are also required to each driver to support that option.

Display Manager

The X server needs to be called with the new option, and this is called by the display manager. We already have a patch for gdm to identify the first server (the one forced onto vt7), and have written a patch to adjust the options of that server to use "-nr" instead of "-br".

Plymouth packaging

Plymouth packages (as used by our OEM team) will be updated to the current version, and uploaded replacing the usplash package.

We will use an Upstart job to manage Plymouth, and it will be started once the kernel DRM or framebuffer driver is added to the system and stopped when the display manager is started, or the boot sequence otherwise completes. Splash retention is handled by passing the --retain-splash option in case of that event.

Plymouth will render to VT7, the same VT that X will use; it will perform this VT switch itself on startup, meaning that X need not. If Plymouth is not started, boot messages would appear on VT1 as they used to before X is started and invokes the VT switch.

Full Story

Sponsored Link

You may also like...

9 Responses

  1. TheBootroo says:

    so what was the interest of new XSplash in Karmic ?

  2. jordanwb says:

    TheBooTroo: Good question.

    Is Plymouth what openSuse uses?

  3. brad says:

    under Assumptions:

    so it seams reasonable seems

  4. Christoph says:

    When someone suggested plymouth back in July 2008, one of the commenters replied:
    “I support the idea but I do think that it should only be considered after Fedora has done all the dirty work of getting it to work at all :)”

    This was meant to be fun, but Ubuntu devs have proven him right. Instead of participating in X development so that KMS becomes available in all drivers, the let others do the job and when it’s finished they pick the low hanging fruits. Sorry, but this is extremely miserable.

  5. Oxmosys says:

    Well anyway ubuntu waited for drivers to be available while Fedora started to use their bootsplash before good drivers existed. AFAIK, it is false that Fedora worked on the drivers, but it is true that ubuntu uses plymouth probably without participating in its development, and so does other distributions with ubuntu own creations (upstart, now notify-OSD and soon simplescan, and probably some others).

    I don’t see why this should be seens as miserable as in the end, all distributions finally contribute to each other.

  6. Christoph says:

    Plymouth and KernelModesetting were official features of Fedora 10. How could we introduce plymouth without working on KMS? Most of the drivers were ported by people like Adam Jackson who happen to be the X maintainers of Fedora and Red Hat.

    notify-osd as an example of a Ubuntu developent and the way how they contribute: It is incompatible with the previous desktop notification spec from the Galago project and required changes to nearly all the involved components. The Ubuntu maintainers didn’t bother to upstream their patches but preferred to silently break things. I’m not aware of any other distributions that ship notify-osd because of this breakage.

    When everything was done Ubuntu’s notify-osd maintainer showed up on the XDG mailing list and said we need a new notification specification and here it is. While I agree he was right in principle, the order was wrong: Work with all affected parties on the new spec is the first step instead of happily breaking things and then expect others to take over your changes.

    Frankly speaking I think Ubuntu is the distribution that takes the most from others (mainly Debian) and returns only very little. The numbers of Greg Kroah-Hartman may be inaccurate, but they show the problem space very well.

  7. ssuuddoo says:

    I know it may be better, but as 4 me, I have a small network of 7 computers and when comparing booting of karmic and lucid, the logo in lucid mostlny not seen because of all the flipping/switching resolution and so. the really working logo I have seen only on booting from my USB key.
    (and some computers just sometimes log-in only into the terminal without running the x-server)

    I know I dunno a lot about all informations below and behind this switch, but as 4 me I would make plymouth just a beta.

  8. Bill says:

    This is driving me crazy. No matter what I do I get NO boot splash just black screens then suddenly the login screen.

    I can’t figure it out to save my butt. There are no error codes. I turn on my Aspire One 532h-xxx and I get the BIOS splash then a black screen with a blinking cursor, then it flickers to another just black screen, flickers once more then I find myself at the login screen.

    Ubuntu seems to be degrading as time goes on all to appease the Windows users…

Leave a Reply

Your email address will not be published. Required fields are marked *