Splash skips text when asking for LUKS password

Bug #1187318 reported by Ballock
34
This bug affects 6 people
Affects Status Importance Assigned to Milestone
plymouth (Ubuntu)
Fix Released
High
Steve Langasek
Raring
Fix Released
High
Unassigned

Bug Description

[Impact]
Text labels are not displayed at all by plymouth on i386 when using the script plugin (used by all of the default *buntu graphical themes). As a result, prompting for passphrases for full-disk encryption confusingly gives no text explanation, and there is no information about fsck progress - or instructions about what to do in the case of an fsck failure.

[Test case]
1. On an i386 system, install plymouth-theme-ubuntu-logo if not already installed
2. stop any X sessions
3. from a console, run: plymouthd --tty=/dev/tty7 --kernel-command-line='splash' && plymouth show-splash && plymouth ask-for-password --prompt='Do you see this text?' && plymouth quit
4. verify that a plymouth splash screen is shown with a blank text field, but no prompt.
5. install the plymouth package from raring-proposed.
6. rerun the test from step 3.
7. verify that a plymouth splash screen is shown with a blank text field, but the prompt is now shown.

[Regression potential]
The fix for this is to add a header include to fix a missing prototype, so the risk of regression is minimal; if there are any side effects from this change, they will be completely unpredictable.

When you use full-disk encryption with LVM as per the alternate installer or the netboot installer, during bootup you are presented with a text box to enter the HDD encryption password.

On Precise this box was presented with a message to enter the password for the specified disk by uuid. In raring, this is no longer the case. There's just the box.

If this is hardware-specific, this was tested on a Dell e6410 laptop.

See the attachment.
---
ApportVersion: 2.9.2-0ubuntu8
Architecture: i386
DefaultPlymouth: /lib/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth
DistroRelease: Ubuntu 13.04
MachineType: Dell Inc. Latitude E6410
MarkForUpload: True
Package: plymouth 0.8.8-0ubuntu6.1
PackageArchitecture: i386
ProcCmdLine: BOOT_IMAGE=/vmlinuz-3.8.0-19-generic root=/dev/mapper/system-root ro splash quiet plymouth.debug
ProcEnviron:
 TERM=xterm
 PATH=(custom, no user)
 LANG=en_IE.UTF-8
 SHELL=/bin/bash
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.8.0-19-generic root=/dev/mapper/system-root ro splash quiet plymouth.debug
ProcVersionSignature: Ubuntu 3.8.0-19.30-generic 3.8.8
Tags: raring
TextPlymouth: /lib/plymouth/themes/ubuntu-text/ubuntu-text.plymouth
Uname: Linux 3.8.0-19-generic i686
UpgradeStatus: Upgraded to raring on 2013-05-14 (33 days ago)
UserGroups: adm cdrom dialout lpadmin plugdev sambashare sudo vboxusers
dmi.bios.date: 08/23/2011
dmi.bios.vendor: Dell Inc.
dmi.bios.version: A10
dmi.board.name: 0667CC
dmi.board.vendor: Dell Inc.
dmi.board.version: A01
dmi.chassis.type: 9
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.:bvrA10:bd08/23/2011:svnDellInc.:pnLatitudeE6410:pvr0001:rvnDellInc.:rn0667CC:rvrA01:cvnDellInc.:ct9:cvr:
dmi.product.name: Latitude E6410
dmi.product.version: 0001
dmi.sys.vendor: Dell Inc.

Revision history for this message
Ballock (ballock) wrote :
Revision history for this message
Steve Langasek (vorlon) wrote :

This should not be hardware specific. It is, however, completely unreproducible for me here: this works just fine for me in all releases, including raring.

What language is your system configured in?

Please attach the output of the following command: zcat /boot/initrd.img-$(uname -r) | cpio -t

Changed in plymouth (Ubuntu):
status: New → Incomplete
Revision history for this message
Ballock (ballock) wrote :

The locale for that is en_IE.UTF-8.

The system is an upgrade from Quantal. I am sending the output you requested in the attachment.

Changed in plymouth (Ubuntu):
status: Incomplete → New
Revision history for this message
Steve Langasek (vorlon) wrote :

Ok, nothing looks wrong here so far. Could you please also run 'apport-collect 1187318' from this machine, to gather plymouth configuration information onto the bug?

Could you also try booting with the 'plymouth.debug' kernel commandline option added, then attach the /var/log/plymouth-debug.log that results after boot?

Revision history for this message
Ballock (ballock) wrote : BootDmesg.txt

apport information

tags: added: apport-collected raring
description: updated
Revision history for this message
Ballock (ballock) wrote : BootLog.txt

apport information

Revision history for this message
Ballock (ballock) wrote : CurrentDmesg.txt

apport information

Revision history for this message
Ballock (ballock) wrote : Dependencies.txt

apport information

Revision history for this message
Ballock (ballock) wrote : EtcDefaultGrub.txt

apport information

Revision history for this message
Ballock (ballock) wrote : Lspci.txt

apport information

Revision history for this message
Ballock (ballock) wrote : Lsusb.txt

apport information

Revision history for this message
Ballock (ballock) wrote : PlymouthDebug.txt

apport information

Revision history for this message
Ballock (ballock) wrote : ProcCpuinfo.txt

apport information

Revision history for this message
Ballock (ballock) wrote : ProcInterrupts.txt

apport information

Revision history for this message
Ballock (ballock) wrote : ProcModules.txt

apport information

Revision history for this message
Ballock (ballock) wrote : UdevDb.txt

apport information

Revision history for this message
Ballock (ballock) wrote : UdevLog.txt

apport information

Revision history for this message
Ballock (ballock) wrote :

Seems apport likes a multitude of attachments. I am attaching the plymouth debug log too.

Revision history for this message
Steve Langasek (vorlon) wrote :

ok, unfortunately there's nothing suspicious in any of these logs either.

Could you just attach the /boot/initrd.img-3.8.0-19-generic file to this bug report, and I'll try to boot it in a VM and debug it here?

Revision history for this message
Ballock (ballock) wrote :

The system is already booting with 3.8.0-25, with the same issue.

I'll try to boot this too on a VM, perhaps it is hardware specific...

Revision history for this message
Ballock (ballock) wrote :

Ok, I am able to reproduce it with Virtualbox.

The steps are as follows:
1. Create a VM with 28GB of dynamic storage (you won't use it all up, but the partitioning scheme requires that).
2. Use a mini.iso from http://archive.ubuntu.com/ubuntu/dists/raring/main/installer-i386/20101020ubuntu231/images/netboot/
3. Boot the ISO with url to the preseed file (attached).
4. As part of the installation, a prompt for HDD password will appear.
5. Upon reboot you will get a box without an explanation what it's for.

The seed file is nothing fancy, just the regular LVM on LUKS.

Revision history for this message
Steve Langasek (vorlon) wrote :

I don't know if this is related, but disassembling your initramfs shows that it's using an ancient version of the cryptsetup scripts: they contain usplash support that was dropped before the precise release. I can't see any obvious reason that would matter here, but you should maybe update to a current version of cryptsetup and re-test since there are a variety of other updates to that initramfs script.

Revision history for this message
Ballock (ballock) wrote :

Cryptroot not related. I am able to reproduce it with the original installer.

I managed to see the prompt, when I did not select any additional software during install (I guess it's text-based plymouth then). However, when I install with the ubuntu-desktop task selected, I get a more graphical plymouth screen without the prompt.

I am attaching a screenshot of a precise, raring and saucy VMs just freshly installed with the seed file.

The Precise machine has actually given an "error: no video mode selected" on this run, so I guess this is the reason it's not in graphics mode. I will try to make it run plymouth with graphics. On the bottom you can see saucy and raring prompting to input something (the password).

Revision history for this message
Ballock (ballock) wrote :

So to make it clear what the problem is: it's about not seeing any text what the input box is about.

I am attaching a screen of the same laptop booting with Ubuntu Precise.

Revision history for this message
Steve Langasek (vorlon) wrote :

Ok. I am also able to reproduce this in a VM using a completely from-scratch raring i386 initramfs. So I'll dig into it from here to see what's going on, since I've definitely not seen this problem at all on amd64.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in plymouth (Ubuntu):
status: New → Confirmed
Revision history for this message
Steve Langasek (vorlon) wrote :

Aha, I knew I had seen a report like this before (bug #1173320). That one is presumably also i386-specific, though no one thought to ask that at the time it was reported.

Still doesn't tell me what's going wrong, though. I guess it's time to start bisecting font-related packages from quantal to raring.

Revision history for this message
Steve Langasek (vorlon) wrote :

I've bisected this down to a single upstream commit. At the moment I'm at a complete loss how this commit has any effect on the display of text.

commit 3f8bd998dcc6d592ffd5d3aefad06f0bbf28a725
Author: Ray Strode <email address hidden>
Date: Fri Jun 8 16:52:29 2012 -0400

    script: seed random number generator

    Most splash plugins that use random numbers
    seed the random number generator with the
    current time, but script fails, too.

    This commit fixes that.

    https://bugs.freedesktop.org/show_bug.cgi?id=42632

diff --git a/src/plugins/splash/script/script-lib-math.c b/src/plugins/splash/script/script-lib-math.c
index 383fe46..a1afc04 100644
--- a/src/plugins/splash/script/script-lib-math.c
+++ b/src/plugins/splash/script/script-lib-math.c
@@ -65,6 +65,8 @@ script_lib_math_data_t *script_lib_math_setup (script_state_t *state)
 {
   script_lib_math_data_t *data = malloc (sizeof (script_lib_math_data_t));

+ srand ((int) ply_get_timestamp ());
+
   script_obj_t *math_hash = script_obj_hash_get_element (state->global, "Math");
   script_add_native_function (math_hash,
                               "Cos",

Revision history for this message
Steve Langasek (vorlon) wrote :

Turns out this is caused by a missing prototype for ply_get_timestamp(). Thanks to upstream for pinning this down.

Changed in plymouth (Ubuntu):
status: Confirmed → Triaged
importance: Undecided → High
Steve Langasek (vorlon)
Changed in plymouth (Ubuntu Raring):
status: New → Triaged
importance: Undecided → High
Steve Langasek (vorlon)
description: updated
Steve Langasek (vorlon)
Changed in plymouth (Ubuntu Raring):
status: Triaged → Fix Committed
Changed in plymouth (Ubuntu):
assignee: nobody → Steve Langasek (vorlon)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package plymouth - 0.8.8-0ubuntu8

---------------
plymouth (0.8.8-0ubuntu8) saucy; urgency=low

  * Tweak the description of the plymouth-ready upstart job.
  * debian/patches/Fix-missing-prototype-of-ply_get_timestamp.patch:
    Fix missing prototype of ply_get_timestamp(). LP: #1187318.
  * Build with -Werror, to prevent bugs like this from sneaking in in the
    future.
  * Drop -Wl,--as-needed from build flags, now used by default in the
    toolchain.
  * Fix the ubuntu-text plugin to build cleanly (no -Werror=format-security
    or -Werror=unused-but-set-variable problems).
  * debian/patches/Miscellaneous-fixes-for-compiler-warnings.patch:
    Miscellaneous fixes for compiler warnings.
  * debian/patches/nouveau-framebuffer.patch: we're no longer building with
    the nouveau backend at all; make the code build without warnings for this
    case, but leave the patch in place for right now.
  * src/client/ply-boot-client.c: fix possible uninitialized variable
    problems.
 -- Steve Langasek <email address hidden> Thu, 01 Aug 2013 08:51:45 +0000

Changed in plymouth (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello Ballock, or anyone else affected,

Accepted plymouth into raring-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/plymouth/0.8.8-0ubuntu6.2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

tags: added: verification-needed
Revision history for this message
Sami Jaktholm (sjakthol) wrote :

The version in raring-proposed shows a visible label when prompting for LUKS password.

tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package plymouth - 0.8.8-0ubuntu6.2

---------------
plymouth (0.8.8-0ubuntu6.2) raring; urgency=low

  * debian/patches/Fix-missing-prototype-of-ply_get_timestamp.patch:
    Fix missing prototype of ply_get_timestamp(). LP: #1187318.
 -- Steve Langasek <email address hidden> Thu, 01 Aug 2013 09:13:34 +0100

Changed in plymouth (Ubuntu Raring):
status: Fix Committed → Fix Released
Revision history for this message
Brian Murray (brian-murray) wrote : Update Released

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.