plymouth isn't working in lxc containers

Bug #1086612 reported by Stéphane Graber
4
This bug affects 1 person
Affects Status Importance Assigned to Milestone
plymouth (Ubuntu)
New
Medium
Unassigned

Bug Description

root@upstart-test:~# tty
/dev/lxc/console
root@upstart-test:~# start plymouth
plymouth start/running, process 436
root@upstart-test:~# start plymouth-splash
<4>init: console-font main process (439) terminated with status 1
<4>init: setvtrgb main process (442) terminated with status 1
plymouth-splash start/running, process 441
root@upstart-test:~# plymouth ask-for-password --prompt 'open sesame: '
root@upstart-test:~# ps faux | grep plymouth
root 445 0.0 0.0 6532 632 lxc/console S+ 00:01 0:00 \_ grep --color=auto plymouth
root 436 0.0 0.0 34792 1236 ? S 00:00 0:00 @sbin/plymouthd --mode=boot --attach-to-session
root@upstart-test:~# stop plymouth
plymouth stop/waiting

Revision history for this message
Stéphane Graber (stgraber) wrote :

The log above is from a simple raring 64bit lxc container (lxc-create -n p1 -t ubuntu -- --release raring --arch amd64) started with lxc-start (lxc-start -n p1) with the current tty attached to the /dev/console equivalent in lxc.

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

Looks like this is caused by the lack of any plymouth themes in the default lxc environment. Installing the plymouth-theme-ubuntu-text package, the following works:

# service tty2 stop
tty2 stop/waiting
# plymouthd --mode=boot --attach-to-session --tty=/dev/tty2
# plymouth show-splash
#

connecting to tty2 with 'lxc-console -n p1 -t 2' shows me the expected text splash screen.

# plymouth ask-for-password --prompt 'open sesame: '
#

the prompt is shown.

So either lxc should mask the 'splash' argument in /proc/cmdline by default, or plymouth-theme-ubuntu-text should be included.

The other problem is that by default, plymouth in Ubuntu looks to /dev/tty7, which isn't mapped anywhere usable under lxc. This could also be forced by forcing an alternate kernel commandline, such as 'console=/dev/lxc/console'.

If /proc/cmdline itself isn't virtualized, I'd be ok with a patch to /etc/init/plymouth.conf to pass an appropriate --kernel-command-line argument when in a container, provided it can be done in the same way as /etc/init/container-detect.conf using env vars. (AIUI, there may be a LIBVIRT_LXC_CMDLINE variable for this?)

Changed in plymouth (Ubuntu):
importance: Undecided → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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