On Thu, Mar 6, 2025 at 6:22 AM Adam Simonelli <adamsimonelli@xxxxxxxxx> wrote: > > On Wednesday, March 5, 2025 1:52:00 PM EST Andy Shevchenko wrote: > > On Wed, Mar 5, 2025 at 4:06 AM Adam Simonelli <adamsimonelli@xxxxxxxxx> wrote: > > > On Tuesday, March 4, 2025 1:51:52 AM EST Andy Shevchenko wrote: > > > > On Tue, Mar 4, 2025 at 5:55 AM <adamsimonelli@xxxxxxxxx> wrote: ... > > > > > obj-y += vt/ > > > > > > > > + blank line. > > > > > > > > > +# If ttynull is configured to be a console by default, ensure that it is linked > > > > > +# earlier before a real one is selected. > > > > > +obj-$(CONFIG_NULL_TTY_DEFAULT_CONSOLE) \ > > > > > + += ttynull.o > > > > > > > > Here is the question: are you sure that all console drivers that exist > > > > in the kernel happen to be here? Have you grepped the source tree for > > > > checking this? > > > > > > > Grepping for console_initcall, the only other places I see outside of > > > drivers/tty/ is > > > > > > arch/mips/fw/arc/arc_con.c > > > arch/mips/sibyte/common/cfe_console.c > > > arch/powerpc/kernel/legacy_serial.c > > > arch/powerpc/kernel/udbg.c > > > arch/powerpc/platforms/powermac/setup.c > > > arch/um/drivers/stderr_console.c > > > arch/xtensa/platforms/iss/console.c > > > drivers/s390/char/con3215.c > > > drivers/s390/char/con3270.c > > > drivers/s390/char/sclp_con.c > > > drivers/s390/char/sclp_vt220.c > > > > Which means you need to test your stuff on those cases, to see how the > > linker order is done there. It might be that your change wouldn't work > > there as expected (quick workaround is to mark the new option as > > depends on !S390 && !PPC and so on. > It will be difficult to test other arches, I mean I guess it is possible with > QEMU, and cross-building, though I did do an experimental test on x86: > > Making it temporarily adding an architecture specific console like > powerpc/some mips/s390/arches with Xen enabled. Thanks. Make sure the summary of this gets into the commit message. Also consider updating the relevant documentation under Documentation/, if any. > ------------------------------------------------------------------------------- > diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c > index 05c5aa951da7..bcd248c44fc8 100644 > --- a/arch/x86/kernel/setup.c > +++ b/arch/x86/kernel/setup.c > @@ -1159,6 +1159,8 @@ void __init setup_arch(char **cmdline_p) > > e820__setup_pci_gap(); > > + add_preferred_console("ttyS", 0, NULL); > + > #ifdef CONFIG_VT > #if defined(CONFIG_VGA_CONSOLE) > if (!efi_enabled(EFI_BOOT) || (efi_mem_type(0xa0000) != EFI_CONVENTIONAL_MEMORY)) > ------------------------------------------------------------------------------- > > to see what /proc/consoles will look like, to pretend that x86 is an arch that > sets a console somewhere, and I get: > > ttynull0 --- (EC ) 242:0 > ttyS0 -W- (E p a) 4:64 > > and I got console messages to ttyS0 with no issue. > > which in my mind is acceptable I would think. ttynull is first in the list, > which is desired effect of CONFIG_NULL_TTY_DEFAULT_CONSOLE, it doesn't have to > be _exclusive_ AFAIK, especially if there are long-time default consoles that. > users or the hardware expects. > > > The only arch that seems to _unconditionally_ add a console without some other > circumstance, like boot loader env var, and command line option, or firmware > flag, or suboption (like CONFIG_SERIAL_PMACZILOG_CONSOLE) is Jazz. > > Like platforms/powernv adds it if CONFIG_HVC_OPAL is disabled, or the firmware > is missing "FW_FEATURE_OPAL". I would assume that a user of this situation > turning on CONFIG_NULL_TTY_DEFAULT_CONSOLE in addition, will just get ttynull > and hvc in /proc/consoles instead of just hvc. Could that cause something to > break? > Correct me if I am wrong, I could very very very well be wrong. I leave this to Petr to comment as I'm not that expert in the area. -- With Best Regards, Andy Shevchenko