multiplexing /dev/console to all console= entries

From: Dusty Mabe
Date: Sun Nov 04 2018 - 20:52:56 EST



Hi Greg, Jiri,

I'd like to bring up a question about multiplexing /dev/console to
all specified console= devices on the kernel command line rather than just
the last entry. In my personal experience using linux systems and also in
my experience dealing with users of various server images (Fedora Cloud,
Fedora Atomic Host, Fedora Server, CentOS, RHEL, etc..) it is often hard
to debug properly when something goes wrong because of a number of reasons:

- the user doesn't know the difference between a serial console and
a VGA console
- the user doesn't know what the settings were on the image they booted
- the user doesn't know how to access the various console devices using
the cloud environments they are on (i.e. they know of one but not the other)
- in an attempt to share configs for disk image creation the creators add
extra console= entries to cover various console devices and various
architectures (see [1] where we are covering VGA/serial, hvc0, AMA0. etc)

I believe it would simplify debugging/troubleshooting with users if we
were able to multiplex /dev/console to all console= entries. This
conversation actually started as a PR to dracut [2] to get all of the
systemd messages to be printed to all console= devices, but it was
pointed out there [3] that rather than change the the settings in dracut
it would be better to attempt to change the kernel behavior.

If a patch were submitted to enable this type of behavior would such a
patch be acceptable? Maybe it could be a compile time option and also
have a kernel arg option to enable/disable it.


Note: I apologize if this functionality already exists and I missed it
somehow.

Note: I grabbed info from [4] about who to contact for tty subsystem
questions. I apologize in advance if you are the wrong people to
contact.

Thanks!
Dusty

[1] https://pagure.io/fedora-kickstarts/blob/ee84a1650b8188cbd00d54a688838207c34906f4/f/fedora-atomic.ks#_36
[2] https://github.com/dracutdevs/dracut/pull/445
[3] https://github.com/dracutdevs/dracut/pull/445#issuecomment-424755057
[4] https://github.com/torvalds/linux/blob/82aa4671516a3203261c835e98c3eecab10c994d/MAINTAINERS#L15149-L15151