Index: linux-2.6.16-pre/drivers/input/keyboard/Kconfig =================================================================== --- linux-2.6.16-pre.orig/drivers/input/keyboard/Kconfig 2006-01-23 12:43:55.000000000 +0100 +++ linux-2.6.16-pre/drivers/input/keyboard/Kconfig 2006-01-23 12:44:58.000000000 +0100 @@ -10,7 +10,7 @@ menuconfig INPUT_KEYBOARD If unsure, say Y. -if INPUT_KEYBOARD +if INPUT_KEYBOARD && !UML config KEYBOARD_ATKBD tristate "AT keyboard" if !X86_PC Index: linux-2.6.16-pre/drivers/input/mouse/Kconfig =================================================================== --- linux-2.6.16-pre.orig/drivers/input/mouse/Kconfig 2006-01-23 12:43:55.000000000 +0100 +++ linux-2.6.16-pre/drivers/input/mouse/Kconfig 2006-01-23 12:44:58.000000000 +0100 @@ -10,7 +10,7 @@ menuconfig INPUT_MOUSE If unsure, say Y. -if INPUT_MOUSE +if INPUT_MOUSE && !UML config MOUSE_PS2 tristate "PS/2 mouse" Index: linux-2.6.16-pre/drivers/input/serio/Kconfig =================================================================== --- linux-2.6.16-pre.orig/drivers/input/serio/Kconfig 2006-01-03 04:21:10.000000000 +0100 +++ linux-2.6.16-pre/drivers/input/serio/Kconfig 2006-01-23 12:44:58.000000000 +0100 @@ -21,7 +21,7 @@ if SERIO config SERIO_I8042 tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 default y - depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && !M68K + depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && !M68K && !UML ---help--- i8042 is the chip over which the standard AT keyboard and PS/2 mouse are connected to the computer. If you use these devices, Index: linux-2.6.16-pre/drivers/char/Kconfig =================================================================== --- linux-2.6.16-pre.orig/drivers/char/Kconfig 2006-01-23 12:43:54.000000000 +0100 +++ linux-2.6.16-pre/drivers/char/Kconfig 2006-01-23 12:44:58.000000000 +0100 @@ -59,11 +59,12 @@ config VT_CONSOLE config HW_CONSOLE bool - depends on VT && !S390 && !UML + depends on VT && !S390 default y config SERIAL_NONSTANDARD bool "Non-standard serial port support" + depends on !UML ---help--- Say Y here if you have any non-standard serial boards -- boards which aren't supported using the standard "dumb" serial driver. @@ -695,7 +696,7 @@ config NVRAM config RTC tristate "Enhanced Real Time Clock Support" - depends on !PPC32 && !PARISC && !IA64 && !M68K && (!SPARC || PCI) && !FRV + depends on !PPC32 && !PARISC && !IA64 && !M68K && (!SPARC || PCI) && !FRV && !UML ---help--- If you say Y here and create a character special file /dev/rtc with major number 10 and minor number 135 using mknod ("man mknod"), you @@ -743,7 +744,7 @@ config SGI_IP27_RTC config GEN_RTC tristate "Generic /dev/rtc emulation" - depends on RTC!=y && !IA64 && !ARM && !M32R && !SPARC && !FRV + depends on RTC!=y && !IA64 && !ARM && !M32R && !SPARC && !FRV && !UML ---help--- If you say Y here and create a character special file /dev/rtc with major number 10 and minor number 135 using mknod ("man mknod"), you @@ -800,6 +801,7 @@ config COBALT_LCD config DTLK tristate "Double Talk PC internal speech card support" + depends on ISA help This driver is for the DoubleTalk PC, a speech synthesizer manufactured by RC Systems (). It is also Index: linux-2.6.16-pre/drivers/char/ipmi/Kconfig =================================================================== --- linux-2.6.16-pre.orig/drivers/char/ipmi/Kconfig 2006-01-03 04:21:10.000000000 +0100 +++ linux-2.6.16-pre/drivers/char/ipmi/Kconfig 2006-01-23 12:44:59.000000000 +0100 @@ -5,6 +5,7 @@ menu "IPMI" config IPMI_HANDLER tristate 'IPMI top-level message handler' + depends on !UML help This enables the central IPMI message handler, required for IPMI to work. Index: linux-2.6.16-pre/drivers/char/tpm/Kconfig =================================================================== --- linux-2.6.16-pre.orig/drivers/char/tpm/Kconfig 2006-01-03 04:21:10.000000000 +0100 +++ linux-2.6.16-pre/drivers/char/tpm/Kconfig 2006-01-23 12:44:59.000000000 +0100 @@ -6,7 +6,7 @@ menu "TPM devices" config TCG_TPM tristate "TPM Hardware Support" - depends on EXPERIMENTAL + depends on EXPERIMENTAL && !UML ---help--- If you have a TPM security chip in your system, which implements the Trusted Computing Group's specification, Index: linux-2.6.16-pre/drivers/input/touchscreen/Kconfig =================================================================== --- linux-2.6.16-pre.orig/drivers/input/touchscreen/Kconfig 2006-01-23 12:43:55.000000000 +0100 +++ linux-2.6.16-pre/drivers/input/touchscreen/Kconfig 2006-01-23 12:44:59.000000000 +0100 @@ -9,7 +9,7 @@ menuconfig INPUT_TOUCHSCREEN If unsure, say Y. -if INPUT_TOUCHSCREEN +if INPUT_TOUCHSCREEN && !UML config TOUCHSCREEN_ADS7846 tristate "ADS 7846 based touchscreens" Index: linux-2.6.16-pre/drivers/serial/Kconfig =================================================================== --- linux-2.6.16-pre.orig/drivers/serial/Kconfig 2006-01-23 12:44:53.000000000 +0100 +++ linux-2.6.16-pre/drivers/serial/Kconfig 2006-01-23 12:44:59.000000000 +0100 @@ -11,6 +11,7 @@ menu "Serial drivers" config SERIAL_8250 tristate "8250/16550 and compatible serial support" depends on (BROKEN || !SPARC) + depends on !UML select SERIAL_CORE ---help--- This selects whether you want to include the driver for the standard Index: linux-2.6.16-pre/drivers/video/Kconfig =================================================================== --- linux-2.6.16-pre.orig/drivers/video/Kconfig 2006-01-23 12:44:06.000000000 +0100 +++ linux-2.6.16-pre/drivers/video/Kconfig 2006-01-23 12:44:59.000000000 +0100 @@ -602,7 +602,7 @@ config FB_EPSON1355 config FB_S1D13XXX tristate "Epson S1D13XXX framebuffer support" - depends on FB + depends on FB && !UML select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT Index: linux-2.6.16-pre/arch/um/Kconfig =================================================================== --- linux-2.6.16-pre.orig/arch/um/Kconfig 2006-01-23 12:44:52.000000000 +0100 +++ linux-2.6.16-pre/arch/um/Kconfig 2006-01-23 12:44:59.000000000 +0100 @@ -288,6 +288,12 @@ source "drivers/net/Kconfig" source "drivers/connector/Kconfig" +source "drivers/input/Kconfig" + +source "drivers/char/Kconfig" + +source "drivers/video/Kconfig" + source "fs/Kconfig" source "security/Kconfig" Index: linux-2.6.16-pre/arch/um/kernel/um_arch.c =================================================================== --- linux-2.6.16-pre.orig/arch/um/kernel/um_arch.c 2006-01-23 12:43:53.000000000 +0100 +++ linux-2.6.16-pre/arch/um/kernel/um_arch.c 2006-01-23 12:44:59.000000000 +0100 @@ -18,6 +18,7 @@ #include "linux/seq_file.h" #include "linux/delay.h" #include "linux/module.h" +#include "linux/console.h" #include "asm/page.h" #include "asm/pgtable.h" #include "asm/ptrace.h" @@ -464,6 +465,9 @@ void __init setup_arch(char **cmdline_p) strlcpy(saved_command_line, command_line, COMMAND_LINE_SIZE); *cmdline_p = command_line; setup_hostinfo(); +#if defined(CONFIG_DUMMY_CONSOLE) + console_use_vt = 0; +#endif } void __init check_bugs(void) Index: linux-2.6.16-pre/drivers/char/tty_io.c =================================================================== --- linux-2.6.16-pre.orig/drivers/char/tty_io.c 2006-01-23 12:43:55.000000000 +0100 +++ linux-2.6.16-pre/drivers/char/tty_io.c 2006-01-23 12:44:59.000000000 +0100 @@ -132,6 +132,8 @@ LIST_HEAD(tty_drivers); /* linked list vt.c for deeply disgusting hack reasons */ DECLARE_MUTEX(tty_sem); +int console_use_vt = 1; + #ifdef CONFIG_UNIX98_PTYS extern struct tty_driver *ptm_driver; /* Unix98 pty masters; for /dev/ptmx */ extern int pty_limit; /* Config limit on Unix98 ptys */ @@ -2033,7 +2035,7 @@ retry_open: goto got_driver; } #ifdef CONFIG_VT - if (device == MKDEV(TTY_MAJOR,0)) { + if (console_use_vt && device == MKDEV(TTY_MAJOR,0)) { extern struct tty_driver *console_driver; driver = console_driver; index = fg_console; @@ -3201,6 +3203,8 @@ static int __init tty_init(void) #endif #ifdef CONFIG_VT + if (!console_use_vt) + goto out_vt; cdev_init(&vc0_cdev, &console_fops); if (cdev_add(&vc0_cdev, MKDEV(TTY_MAJOR, 0), 1) || register_chrdev_region(MKDEV(TTY_MAJOR, 0), 1, "/dev/vc/0") < 0) @@ -3209,6 +3213,7 @@ static int __init tty_init(void) class_device_create(tty_class, NULL, MKDEV(TTY_MAJOR, 0), NULL, "tty0"); vty_init(); + out_vt: #endif return 0; } Index: linux-2.6.16-pre/include/linux/console.h =================================================================== --- linux-2.6.16-pre.orig/include/linux/console.h 2006-01-03 04:21:10.000000000 +0100 +++ linux-2.6.16-pre/include/linux/console.h 2006-01-23 12:44:59.000000000 +0100 @@ -62,6 +62,7 @@ extern const struct consw dummy_con; /* extern const struct consw vga_con; /* VGA text console */ extern const struct consw newport_con; /* SGI Newport console */ extern const struct consw prom_con; /* SPARC PROM console */ +extern int console_use_vt; int take_over_console(const struct consw *sw, int first, int last, int deflt); void give_up_console(const struct consw *sw); Index: linux-2.6.16-pre/drivers/video/console/Kconfig =================================================================== --- linux-2.6.16-pre.orig/drivers/video/console/Kconfig 2006-01-23 12:44:06.000000000 +0100 +++ linux-2.6.16-pre/drivers/video/console/Kconfig 2006-01-23 12:44:59.000000000 +0100 @@ -6,7 +6,7 @@ menu "Console display driver support" config VGA_CONSOLE bool "VGA text console" if EMBEDDED || !X86 - depends on !ARCH_ACORN && !ARCH_EBSA110 && !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !ARCH_VERSATILE + depends on !ARCH_ACORN && !ARCH_EBSA110 && !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !ARCH_VERSATILE && !UML default y help Saying Y here will allow you to use Linux in text mode through a