SEARCH

Enter your search query in the box above ^, or use the forum search tool.

You are not logged in.

#1 2013-03-18 18:49:56

cpoakes
#! CrunchBanger
From: Tucson, Arizona
Registered: 2012-05-19
Posts: 202

Plymouth Plus Slim

As noted elsewhere, the Slim display manager does not play well with Plymouth boot splash.  The init scripts are designed to start the display manager before launching the script signaling plymouth to quit.  Problems arise in the transition from splash to login.

When the delay between these tasks is (very) short, plymouth surrenders the video device before slim starts X and the system functions normally.  More typically, slim starts or attempts to start X while the plymouth script hangs signaling the plymouth daemon to quit.  On one test system, slim starts but all the virtual terminals are inaccessible and the system hangs rebooting.  On another, slim will not start X at all.

In comparison, the lightdm display manager does not have this conflict (in testing on wheezy).  It appears to coordinate with the plymouth daemon before starting X and may even kill off the daemon if the init script has not done so.  Based on this information, the slim init script can be modified to terminate plymouth when slim is started and eliminate the problematic delay.

Assuming the packages for plymouth and slim are installed and plymouth configured correctly (per http://wiki.debian.org/plymouth), insert the following in /etc/init.d/slim:

/bin/plymouth --quit || true

just before:

start-stop-daemon --start --quiet $SSD_START_ARGS || echo -n " already running"

While this a simple solution, it is not elegant.  Not all plymouth theme plugins "quit" within the same time frame.  Some are slow, and may require a delay ("sleep") before starting slim.  Some are quick allowing init messages to "leak" onto the terminal before X starts, and plymouth is best terminated after starting slim and may also require a delay.

Technical note: the "|| true" logic keeps the init script from failing with an error if the plymouth command fails or is missing.  The similar command in /etc/init.d/plymouth should be modified for the same reason (it will fail if already signalled to quit from slim):

/bin/plymouth --quit

should become:

/bin/plymouth --quit || true

With this tweak, my system starts plymouth, runs slim, provides access to the virtual terminals, and reboots without a problem.

See also:
Plymouth - Ugly Closing Splash
Plymouth Plus MDM - A Better Display Manager

Last edited by cpoakes (2013-03-18 19:12:43)


programming and administering unix since 1976 (BSD, System III, Xenix, System V, Linux)

Offline

Board footer

Powered by FluxBB

Copyright © 2012 CrunchBang Linux.
Proudly powered by Debian. Hosted by Linode.
Debian is a registered trademark of Software in the Public Interest, Inc.
Server: acrobat

Debian Logo