Seamless Boot Experience for OpenSUSE Factory.
With KMS (kernel mode setting) and a KMS aware X driver we can greatly
improve the boot experience on OpenSUSE and offer the user a seamless
transition from the moment the kernel takes over graphics to the login
screen of the display manage.
Currently there are a few pieces missing on Factory to do this, I've
created a project on home:eeich:BootProj which adds those pieces to the
to try this out.
For the implementation I've looked at the Plymouth project to see if this
is already feasable to use. The feature of Plymouth are:
* It provides a fully user space implemantation of a boot splash for a
system running in KMS.
* It supports various splash plugins.
* It provides a way to enter passwords duing the boot process.
I found some deficiencies:
* It falls back to text mode (no splash image) in VESA-fb mode (ie, when
KMS isn't active).
* It doesn't allow control over the progress bar.
* I the password entry facility was working unreliably for me.
* It requires considerable modifications to initrd and the bootup
All in all Plymouth doesn't appear to be in a stage where I feel comfortable
to deploy it on the OpenSUSE, yet.
Instead I decided to check what needed to be done to support "flicker free"
boot using the kernel based OpenSUSE bootsplash. Here is what I had to do:
1. Extend the OpenSUSE bootsplash /proc/splash syntax to
a. support copying a bootsplash image from one vt to another:
echo "copy 0 6" > /proc/splash
copies the splash image from vt1 to vt7.
b. turn off the progress bar entirely
echo "@6 show -1" > /proc/splash
turns off the progress bar on vt7.
c. finally bump the version number on the bootsplash code so that the
presence of those extensions can be checked,
The required patch is contained in the various kernel packages in the
BootProj project in my OBS home.
2. Add support for 'rootless' X: with these patches the Xserver will start
without an initial root background ie. it will use whatever data is
presently in the framebuffer. This feature can be enabled with the
'-nr' command line option.
Patches for the core server and the Intel driver already existed in the
Moblin project. I ported them over to the latest version of X and fixed
The required changes are part of the X11:XOrg package and thus in Factory
3. Extend the displaymanager startup script to
a. test for the presence of the 'copy' command, and if present
copy the bootsplash image to vt7 if the displaymanager is either
kdm4 or gdm.
This patch is part of the xorg-x11 package and already checked into
X11:XOrg (and thus Factory).
4. For kdm4 I modified the name of the background image in the SUSE theme to
SUSEBackground.jpg and created a soft link from Background.jpg to that file
in the same directory. [Package kdebase4-openSUSE_11.2]
The kdm sysconfig script now checks for the presence of the bootsplash
image, if one exists, it creates a link from Background.jpg to this image
(size 800x600). Otherwise it will restore the link to SUSEBackground.jpg.
It also checks for the presence of KMS (cat /proc/fb | grep -q drm) and
adds the '-nr' command line option if KMS is enabled.
So far these steps have only been done for kdm4. gdm requires more enxtensive
changes as it doesn't allow to configure additional command line options for
the Xserver. Also I've not yet found out how to modify the gdm background image.
Please feel free to beat me on that ;)
Egbert Eich (Res. & Dev.) SUSE LINUX Products GmbH
X Window System Development
Tel: +49 911-740 53 0 http://www.opensuse.org
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG N�rnberg)
To unsubscribe, e-mail: opensuse-factory+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-factory+help(a)opensuse.org