All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bagas Sanjaya <bagasdotme@gmail.com>
To: nerdopolis <bluescreen_avenger@verizon.net>,
	pmladek@suse.com, rostedt@goodmis.org, john.ogness@linutronix.de,
	senozhatsky@chromium.org, gregkh@linuxfoundation.org,
	tglx@linutronix.de, tony@atomide.com,
	linux-kernel@vger.kernel.org
Subject: Re: VT-less kernels, and /dev/console on x86
Date: Sun, 18 Aug 2024 08:07:21 +0700	[thread overview]
Message-ID: <ZsFJSYI3EVjC8p5W@archie.me> (raw)
In-Reply-To: <2669238.7s5MMGUR32@nerdopolis2>

[-- Attachment #1: Type: text/plain, Size: 2774 bytes --]

On Sat, Aug 17, 2024 at 08:09:20PM -0400, nerdopolis wrote:
> Hi
> 
> I originally brought this up on linux-serial, but I think it makes more sense
> that it's part of how printk console device selection works. Without VTs, while
> most software is able to handle the situation, some userspace programs expect
> /dev/console to still be responsive. Namely systemd. It calls isatty() against
> /dev/console, and since /dev/console on VT-less systems currently defaults to
> /dev/ttyS0, and when /dev/ttyS0 is disconnected, the ioctl's fail, and it
> refuses to write log messages to it.
> 
> There doesn't seem to be a mailing list for printk, so I had to use
> get_maintainer.pl. Hopefully this is correct
> 
> 
> After some grepping and guessing and testing, and playing around Something like
> diff --git a/drivers/tty/Kconfig b/drivers/tty/Kconfig
> index a45d423ad10f..f94a4632aab0 100644
> --- a/drivers/tty/Kconfig
> +++ b/drivers/tty/Kconfig
> @@ -384,9 +384,12 @@ config NULL_TTY
>  
>           In order to use this driver, you should redirect the console to this
>           TTY, or boot the kernel with console=ttynull.
> -
>           If unsure, say N.
>  
> +config NULL_TTY_CONSOLE
> +        bool "Supports /dev/ttynull as a console automatically"
> +        depends on NULL_TTY && !VT_CONSOLE
> +
>  config VCC
>         tristate "Sun Virtual Console Concentrator"
>         depends on SUN_LDOMS
> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> index dddb15f48d59..c1554a789de8 100644
> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -3712,6 +3712,11 @@ void __init console_init(void)
>         initcall_t call;
>         initcall_entry_t *ce;
>  
> +#ifdef CONFIG_NULL_TTY_CONSOLE
> +       if (!strstr(boot_command_line, "console="))
> +               add_preferred_console("ttynull", 0, NULL);
> +#endif
> +
>         /* Setup the default TTY line discipline. */
>         n_tty_init();
>  
> 
> 
> 
> seems to work, it conflicts with CONFIG_VT_CONSOLE since it is effectively
> redundant, it is optional, so that it doesn't cause any changes to
> configurations, that historically had CONFIG_VT_CONSOLE turned off in the past,
> and for bootloader configs, it won't change any behavior if the kernel command
> line has a console device specified
> 
> With ttynull as the console device, isatty() no longer fails on /dev/console,
> systemd writes the log messages fine to /dev/console, and when Plymouth calls
> TIOCCONS on its PTY, it is able to get the log messages.

Then what does /dev/ttynull do other than just to satisfy systemd? I expect
it to be like /dev/null, though.

Confused...

-- 
An old man doll... just what I always wanted! - Clara

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2024-08-18  1:07 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2669238.7s5MMGUR32.ref@nerdopolis2>
2024-08-18  0:09 ` VT-less kernels, and /dev/console on x86 nerdopolis
2024-08-18  1:07   ` Bagas Sanjaya [this message]
2024-08-18  2:31     ` nerdopolis
2024-08-18  5:12       ` Greg KH
2024-08-18 14:33         ` nerdopolis
2024-08-18  5:12   ` Greg KH
2024-08-18 12:33     ` nerdopolis
2024-08-18 14:30       ` nerdopolis
2024-08-19 15:09         ` Steven Rostedt
2024-08-19 15:50           ` nerdopolis
2024-08-20 13:29             ` Petr Mladek
2024-08-21 17:12               ` nerdopolis
2024-08-22 10:05                 ` Petr Mladek
2024-08-22 12:49                   ` nerdopolis
2024-08-27 12:53                     ` nerdopolis
2024-08-27 13:46                       ` Willy Tarreau
2024-09-12 16:48                         ` nerdopolis
2024-09-12 17:25                           ` Willy Tarreau
2024-09-12 18:46                             ` nerdopolis
2024-09-13  2:22                               ` nerdopolis
2024-09-17 12:54                               ` nerdopolis
2024-10-15 13:26                             ` nerdopolis
2024-09-12 12:29               ` nerdopolis
2024-09-12 13:27                 ` Petr Mladek
2024-10-09  9:24   ` Bernd Petrovitsch
2024-10-09 17:49     ` nerdopolis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZsFJSYI3EVjC8p5W@archie.me \
    --to=bagasdotme@gmail.com \
    --cc=bluescreen_avenger@verizon.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=john.ogness@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pmladek@suse.com \
    --cc=rostedt@goodmis.org \
    --cc=senozhatsky@chromium.org \
    --cc=tglx@linutronix.de \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.