Problem with redirecting output to boot terminal
Andrey Borzenkov
arvidjaar at gmail.com
Fri Dec 17 09:02:34 PST 2010
On Tue, Dec 14, 2010 at 11:07 PM, Ray Strode <halfline at gmail.com> wrote:
> Hi,
>
> (sorry for the slow reply)
>
> On Sun, Nov 28, 2010 at 2:22 PM, Andrey Borzenkov <arvidjaar at gmail.com> wrote:
>> It took me some time to understand why output from rc.sysinit was not visible.
>>
>> In initrd we start plymouthd and call "plymouth --show-splash". Now I
>> do not have any splash to show (i.e. no "splash" on command line) but
>> plymouthd still switches active console to boot terminal which in our
>> case in tty7.
> Even when "splash" is taken off the kernel command line, we still show
> a splash called "details"
>
> This splash basically just echos all data coming in and spews it back out.
>
Where does this data come from? At this point we have at least three sources:
- plymouth message
- programs that keep old console (most likely tty1) open and continue
to output there
- programs that are started anew after plymouthd has switched active
tty and are printing to current console (tty7 in this case)
Which output is collected and echoed?
> It does do a little more if you have encrypted disks.
>
Yes, I always wondered how it should interact with plymouth
ask-for-password. I should set up encrypted VM at some point (not sure
whether this is actually supported by my distro at installation)
>> Later rc.sysinit starts, checks whether splash is active and
>> terminates plymouthd by calling "plymouth quit".
> why do you quit plymouth that early?
>
This was done long before and I assume maintainer had reasons; he is
no more available though. Judging by comments, it is done to disable
splash; like
# killing splash when using single-user mode
> One thing to keep in mind is, plymouth performs two primary functions:
>
> 1) boot splash
> 2) boot message logger
>
Is there any documentation for it? How is it enabled?
> So even if you take "splash" off the kernel command line, it still
> logs your boot.
> Normally, you would run plymouth all the way until the end of boot up,
> so that all boot messages get logged to /var/log/boot.log
>
Mandriva does not have any /var/log/bootlog (it has boot.log which is
used for something else).
>> Only after next script starts anything appears on tty1.
>>
>> The question is - why would we switch to tty7 (or whatever is defined
>> in configuration) when we know that no splash is going to be shown
>> anyway? This splits boot output between several terminals and is
>> really confusing.
So it actually *does* show splash. So - what is the correct way to
*not* show splash?
> Honestly, I think it's a better choice to run plymouth on tty1 and run
> X on tty1. It makes the most sense looking at things from a "fresh"
> perspective. It's only tty7 by historical accident, basically. I
> recognize not everyone shares my view, though.
>
It is not something that can be changed overnight in a distribution. I
could paper this over by calling "exec > /dev/console" after killing
plymouth though ... although I really think that "no splash" should
mean "no splash" not "some splash I think should be shown anyway" :)
And if someone wants to default to detail screen, (s)he could use
splash=detail for this.
More information about the plymouth
mailing list