Re: [PATCH] Docs: printk: add 'console=null|""' to admin/kernel-parameters

From: Randy Dunlap
Date: Wed Feb 16 2022 - 15:35:56 EST


Hi Petr,

On 2/15/22 09:26, Petr Mladek wrote:
> On Mon 2022-02-14 16:56:15, Randy Dunlap wrote:
>> Tell about 'console=null|""' and how to use it.
>>
>> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>> Cc: Petr Mladek <pmladek@xxxxxxxx>
>> Cc: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx>
>> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
>> Cc: John Ogness <john.ogness@xxxxxxxxxxxxx>
>> Cc: Jonathan Corbet <corbet@xxxxxxx>
>> Cc: linux-doc@xxxxxxxxxxxxxxx
>> ---
>> Documentation/admin-guide/kernel-parameters.txt | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> --- linux-next-20220214.orig/Documentation/admin-guide/kernel-parameters.txt
>> +++ linux-next-20220214/Documentation/admin-guide/kernel-parameters.txt
>> @@ -724,6 +724,12 @@
>> hvc<n> Use the hypervisor console device <n>. This is for
>> both Xen and PowerPC hypervisors.
>>
>> + { null | "" }
>> + Use to disable console output, i.e., to have kernel
>> + console messages discarded.
>> + This must be the first (or only) console= string
>> + used on the kernel command line.
>
> It must be the only console= parameter on the command line. Otherwise,
> the other consoles get enabled as well.
>
> It might make sense to detect this situation and print a warning or
> so. Nobody has sent a patch for this so far.
>
> But there is even bigger problem. The default console is also used
> as stdin/stdout/stderr for the init process. It might fail when there
> is no console driver associated with it.
>
> The problem with stdin/stdout/stderr does not happen when
> CONFIG_NULL_TTY is enabled and ttynull driver is available.
> Unfortunately, it can't be enabled by default because it can
> be used by mistake, see the commit a91bd6223ecd46addc71e
> ("Revert "init/console: Use ttynull as a fallback when there
> is no console").
>
> And there is still a mystery that has not been explained yet,
> see https://lore.kernel.org/r/a46e9a26-5b9f-f14c-26be-0b4d41fa7429@xxxxxxxxxxxx
>
> On the positive note. console=null mostly works. All the problems are
> hard to reproduce.
>
>
> Now, what to do with this patch. I would suggest two changes:
>
> 1. Replace "must be the first (or only)" with "must be the only"
>
> 2. Mention that it is suggested to enable CONFIG_NULL_TTY that
> will avoid problems with stdin/stdout/stderr of the init process.
> But it might cause the ttynull might be used even when a real
> console is configured. And that more details can be found
> in the commit a91bd6223ecd46addc71e ("Revert "init/console:
> Use ttynull as a fallback when there is no console").
>
> It might be enough to mention this in the commit message.

Thanks for the history summary and suggestions.
I'll send a v2...

--
~Randy