[RFC PATCH 0/3] Prefer working VT console over SPCR and device-tree chosen stdout-path

From: Alper Nebi Yasak
Date: Mon Mar 23 2020 - 06:47:44 EST


I recently experienced some trouble with setting up an encrypted-root
system, my Chromebook Plus (rk3399-gru-kevin, ARM64) would appear to
hang where it should have asked for an encryption passphrase; and I
eventually figured out that the kernel preferred the serial port
(inaccessible to me) over the built-in working display/keyboard and was
probably asking there.

Running plymouth in the initramfs solves that specific problem, but
both the documentation and tty-related kconfig descriptions imply that
/dev/console should be tty0 if graphics are working, CONFIG_VT_CONSOLE
is enabled and no explicit console argument is given in the kernel
commandline.

This patchset tries to ensure that VT is preferred in those conditions
even in the presence of firmware-mandated serial consoles. These should
be applicable onto next-20200323 without conflicts (also onto v5.6-rc7
with --3way minus the references to a "has_preferred_console" var).

More discussion due to or about the console confusion on ARM64:
- My Debian bug report about the initramfs prompts [0]
- Fedora test issue arising from ARM64 QEMU machines having SPCR [1]
- Debian-installer discussion on what to do with multiple consoles [2]

[0] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=952452
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1661288
[2] https://lists.debian.org/debian-boot/2019/01/msg00184.html

Alper Nebi Yasak (3):
printk: Add function to set console to preferred console's driver
vt: Set as preferred console when a non-dummy backend is bound
printk: Preset tty0 as a pseudo-preferred console

drivers/tty/vt/vt.c | 7 +++++
include/linux/console.h | 1 +
kernel/printk/printk.c | 68 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 76 insertions(+)

--
2.26.0.rc2