So after doing some more digging I've learned that plymouth is shut down by the init script although it's not clear to me why it's called after the KDM init script in runlevel 2:
l430:/etc/rc2.d$ ls -l|grep kdm lrwxrwxrwx 1 root root 13 Sep 3 13:30 S18kdm -> ../init.d/kdm l430:/etc/rc2.d$ ls -l|grep plym lrwxrwxrwx 1 root root 18 Sep 16 19:58 S20plymouth -> ../init.d/plymouth Perhaps plymouth should be S18 or lower, or just called directly from the display manager script? On my system I'm able to get it working by removing the "--retain-splash" switch from the command that tells plymouth to quit from the init script: --- plymouth 2013-09-16 20:24:57.333642119 -0400 +++ /root/plymouth-dist 2013-09-16 20:04:09.621027891 -0400 @@ -41,7 +41,7 @@ start) case "${SPLASH}" in true) - /bin/plymouth quit + /bin/plymouth quit --retain-splash ;; esac ;; This allows my system to boot and KDM to start but doesn't give the smooth transition that plymouth documentation talks about. There's a black screen for a while with the KDE cursor. It seems like there may be some steps missing from the Debian init scripts for plymouth. Reading "INSTALL" in the plymouth-0.8.8 sources it mentions: "Right after you mount the root file system (but before you switch to it), run plymouth --newroot=/wherevertherootismounted This tells plymouth it can load some files off the real filesystem (like fonts, and stuff we don't want to stick in the initrd). while boot you need to run plymouth --update=some-milestone-id periodically to update the progress bar. When / is mounted read-write you need to run plymouth --sysinit" But grep doesn't find "newroot" or "sysinit" in any of my init scripts in /etc/init.d. I can't find documentation saying why these steps are required but maybe they make "--retain-splash" work? As a quick test I added "plymouth --sysinit" to /etc/init.d/mountall.sh which didn't make a difference for me. Keith.