Skip to contentSkip to conversation

Reintroduction i386 CONFIG_DUMMY_KEYB option

PATCH In review Nick Warne 3 participants 3 messages Oct 13, 2005 – Oct 14, 2005

Subsystems (3)
lore
Share & tools
lore

Nick Warne

author
#0 lore raw

PATCH 1/1 Reintroduction i386 CONFIG_DUMMY_KEYB option

Hi all,

A small patch here to reintroduce the dummy keyboard, which seems to have been lost sometime - refer to my LKML thread:

http://marc.theaimsgroup.com/?l=linux-kernel&m=112885471602308&w=2

I reason that a lot of people have headless boxes (I have 7), and the dummy keyboard option appears to be unknown, but a good addition...

I found out that CONFIG_DUMMY_KEYB is slightly broken in that although the header text in 'dummy_keyb.c' states that this should be used with CONFIG_VT, using this option breaks the kernel build 'as is'. This patch fixes that, and also allows the use of dummy keyboard with or with out CONFIG_VT which stops all the timeout warnings etc at boot on a keyboardless box. The option
to use the dummy keyboard is only available if CONFIG_INPUT_KEYBDEV is 'n'.

I apologise sending to list only, but I couldn't find a maintainer of this area...

Nick

Signed off by Nick Warne <[email protected]>

 Documentation/Configure.help |   18 ++++++++++++++++++
 arch/i386/kernel/dmi_scan.c  |    2 ++
 drivers/char/dummy_keyb.c    |    1 +
 drivers/input/Config.in      |    5 +++++
 kernel/panic.c               |    2 +-
 5 files changed, 27 insertions(+), 1 deletion(-)

diff -Naur linux-2.4.31.orig/Documentation/Configure.help linux-2.4.31n/Documentation/Configure.help

Documentation/Configure.help +18 -0
@@ -15242,6 +15242,24 @@
   The module will be called joydev.o. If you want to compile it as a
   module, say M here and read <file:Documentation/modules.txt>.
 
+Dummy keyboard driver
+CONFIG_DUMMY_KEYB
+  What is this for?
+
+  Not all systems have keyboards.  Some don't even have a keyboard
+  port.  However, some of those systems have video support and can
+  use the virtual terminal support for display.  However, the virtual
+  terminal code expects a keyboard of some kind.  This driver keeps
+  the virtual terminal code happy by providing it a "keyboard", albeit
+  a very quiet one.
+
+  If you want to use the virtual terminal support but your system
+  does not support a keyboard, define CONFIG_DUMMY_KEYB along with
+  CONFIG_VT.
+
+  This can also be selected lonesome without any VT support (i.e. no
+  monitor or keyboard attached) - just define CONFIG_DUMMY_KEYB.
+
 Event interface support
 CONFIG_INPUT_EVDEV
   Say Y here if you want your USB or ADB HID device events be

diff -Naur linux-2.4.31.orig/arch/i386/kernel/dmi_scan.c linux-2.4.31n/arch/i386/kernel/dmi_scan.c

arch/i386/kernel/dmi_scan.c +1 -0
@@ -412,11 +412,13 @@
 static __init int broken_ps2_resume(struct dmi_blacklist *d)
 {
 #ifdef CONFIG_VT
+#ifndef CONFIG_DUMMY_KEYB
 	if (pm_kbd_request_override == NULL)
 	{
 		pm_kbd_request_override = pckbd_pm_resume;
 		printk(KERN_INFO "%s machine detected. Mousepad Resume Bug workaround 

enabled.\n", d->ident);
}
+#endif
#endif
return 0;
}
diff -Naur linux-2.4.31.orig/drivers/char/dummy_keyb.c linux-2.4.31n/drivers/char/dummy_keyb.c

drivers/char/dummy_keyb.c +1 -0
@@ -29,6 +29,7 @@
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/input.h>
+#include <asm/keyboard.h>
 
 void kbd_leds(unsigned char leds)
 {

diff -Naur linux-2.4.31.orig/drivers/input/Config.in linux-2.4.31n/drivers/input/Config.in

drivers/input/Config.in +5 -0
@@ -7,6 +7,11 @@
 
 tristate 'Input core support' CONFIG_INPUT
 dep_tristate '  Keyboard support' CONFIG_INPUT_KEYBDEV $CONFIG_INPUT
+
+if [ "$CONFIG_INPUT_KEYBDEV" == "n" ]; then
+	bool '  Use dummy keyboard driver' CONFIG_DUMMY_KEYB $CONFIG_INPUT
+fi
+
 dep_tristate '  Mouse support' CONFIG_INPUT_MOUSEDEV $CONFIG_INPUT
 if [ "$CONFIG_INPUT_MOUSEDEV" != "n" ]; then
    int '   Horizontal screen resolution' CONFIG_INPUT_MOUSEDEV_SCREEN_X 1024
kernel/panic.c +1 -1
diff -Naur linux-2.4.31.orig/kernel/panic.c linux-2.4.31n/kernel/panic.c
@@ -104,7 +104,7 @@
 #endif
 	sti();
 	for(;;) {
-#if defined(CONFIG_X86) && defined(CONFIG_VT) 
+#if defined(CONFIG_X86) && defined(CONFIG_VT) && !defined(CONFIG_DUMMY_KEYB) 
 		extern void panic_blink(void);
 		panic_blink(); 
 #endif
Signature · 4 lines
http://sourceforge.net/projects/quake2plus

"When you're chewing on life's gristle,
Don't grumble, Give a whistle..."
#1 lore raw
Quoted 10 lines · Nick Warne

Hi all,

A small patch here to reintroduce the dummy keyboard, which seems to have been lost sometime - refer to my LKML thread:

http://marc.theaimsgroup.com/?l=linux-kernel&m=112885471602308&w=2

A serial based keyboard driver for general purpose debuggers and test harnesses would be a whole lot more useful. Ever consider it? Snatch the one out of kdb and submit it as a patch. The AIMS test. I remember that from my Memorex Telex days on OS/2.

Jeff

#2 lore raw
In reply to Nick Warne

Hi Nick,

On Thu, Oct 13, 2005 at 06:38:44PM +0100, Nick Warne wrote:
(...)

arch/i386/kernel/dmi_scan.c line 415

Quoted 9 lines

diff -Naur linux-2.4.31.orig/arch/i386/kernel/dmi_scan.c linux-2.4.31n/arch/i386/kernel/dmi_scan.c

arch/i386/kernel/dmi_scan.c +1 -0
@@ -412,11 +412,13 @@
 static __init int broken_ps2_resume(struct dmi_blacklist *d)
 {
 #ifdef CONFIG_VT
+#ifndef CONFIG_DUMMY_KEYB

Please could you change this to #if defined(CONFIG_VT) && !defined(CONFIG_DUMMY_KEYB) ?

Marcelo, I'd like this one to be merged, as it is useful to many of us, and is already fixed in 2.6 (where you're not forced to have a keyboard). It's not intrusive and at most a build fix. Would you please accept Nick's patch after the little clean-up above ?

Thanks in advance,
Willy