console_init patch for kbdless systems

Matt Porter (mmporter@home.com)
Mon, 17 May 1999 10:26:42 -0700 (MST)


To me it's a bug but to others it will look like a non-feature. When both
VT console and serial console support are built in to a kernel image, the
kernel blindly attempts to initialize the keyboard before finding there is
no normal VGA console and defaults to serial console support. This hangs
the system on boards where there is no keyboard controller present.

I've attached a patch to tty_io.c that checks a vt console present flag
before attempting to initialize a keyboard. That solves the problem as
neatly as possible (AFAIKT). If anybody sees any problems with this patch
please let me know...I'm hoping it can be included in 2.2.x.

--
Matt Porter
mmporter@home.com

--- linux/drivers/char/tty_io.c.orig Fri May 14 14:01:39 1999 +++ linux/drivers/char/tty_io.c Mon May 17 08:48:16 1999 @@ -114,6 +114,7 @@ * is redirected to if asked by TIOCCONS. */ struct tty_struct * redirect = NULL; +static short vt_console_present = 1; static void initialize_tty_struct(struct tty_struct *tty); @@ -2023,6 +2024,8 @@ */ long __init console_init(long kmem_start, long kmem_end) { + long kmem_start_old; + /* Setup the default TTY line discipline. */ memset(ldiscs, 0, sizeof(ldiscs)); (void) tty_register_ldisc(N_TTY, &tty_ldisc_N_TTY); @@ -2044,7 +2047,13 @@ * inform about problems etc.. */ #ifdef CONFIG_VT + kmem_start_old = kmem_start; kmem_start = con_init(kmem_start); + if (kmem_start_old == kmem_start) + { + vt_console_present = 0; + printk("No VT console present...Configuring serial console.\n"); + } #endif #ifdef CONFIG_SERIAL_CONSOLE #ifdef CONFIG_8xx @@ -2128,7 +2137,8 @@ if (tty_register_driver(&dev_console_driver)) panic("Couldn't register /dev/tty0 driver\n"); - kbd_init(); + if (vt_console_present) + kbd_init(); #endif #ifdef CONFIG_ESPSERIAL /* init ESP before rs, so rs doesn't see the port */ espserial_init();

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/