Re: Keyboard Jammed error patch 2.4.35-pre4

From: David W Studeman
Date: Sun Sep 21 2008 - 23:30:55 EST


Willy Tarreau wrote:
Hello David,

first, please always take care of keeping persons in CC when replying to
LKML, otherwise you risk your mail being missed.

On Sun, Sep 21, 2008 at 06:00:50AM -0700, David W Studeman wrote:
Ok, I finally applied the patch manually to 2.4.36.7 and then made my own
diff from that. Your patch would likely have applied if I increased the
fuzz factor as it was merely off by a number of lines. When trying to
compile with no keyboard or VT support, I still get this error:

arch/i386/kernel/kernel.o(.text.init+0x33e6): In function
`disable_console_keyboard':
: undefined reference to `keyboard_controller_present'
make: *** [vmlinux] Error 1

I know what causes this. The fix is merged into 2.4.37-rc1. I've been
using it for a long time without even noticing that it was still not
merged. The fix is trivial as it simply removes the disable_console_keyboard
function when CONFIG_VT is not set. This is needed because the variable
keyboard_controller_present is only defined when CONFIG_VT is set.

Here's the patch if it can help you.

Also, next time you encounter problems, please post your config. It's
very hard to troubleshoot build bugs without a config. I would have
immediately spotted this missing patch on the first time had I got
that config.

Regards,
Willy

----
From 90e228888a59d630c8094d5d1b273b00a2c76cc0 Mon Sep 17 00:00:00 2001
From: Willy Tarreau <w@xxxxxx>
Date: Sun, 7 Sep 2008 12:37:51 +0200
Subject: x86 would not build without CONFIG_VT

I've been using this patch for a while without noticing it never
went into mainline. It is required to build i386 without CONFIG_VT.

Signed-off-by: Willy Tarreau <w@xxxxxx>
---
arch/i386/kernel/dmi_scan.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/i386/kernel/dmi_scan.c b/arch/i386/kernel/dmi_scan.c
index 07c6d94..9c27ca2 100644
--- a/arch/i386/kernel/dmi_scan.c
+++ b/arch/i386/kernel/dmi_scan.c
@@ -524,6 +524,7 @@ static __init int disable_acpi_pci(struct dmi_blacklist *d)
*/
+#ifdef CONFIG_VT
/* IBM bladeservers have a USB console switch. The keyboard type is USB
* and the hardware does not have a console keyboard. We disable the
* console keyboard so the kernel does not try to initialize one and
@@ -538,6 +539,7 @@ static __init int disable_console_keyboard(struct dmi_blacklist *d)
keyboard_controller_present = 0;
return 0;
}
+#endif
/*
* This will be expanded over time to force things like the APM @@ -825,7 +827,8 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={
MATCH(DMI_SYS_VENDOR, "IBM"),
NO_MATCH, NO_MATCH, NO_MATCH
} },
- /*
+#ifdef CONFIG_VT
+ /*
* IBM Bladeservers
*/
@@ -834,6 +837,7 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={
MATCH(DMI_BOARD_NAME, "Server Blade"),
NO_MATCH, NO_MATCH
} },
+#endif
#ifdef CONFIG_ACPI_BOOT
/*


Ok, Thanks Willy! The changes to the dmi_scan.c as you gave above from 2.4.37rc1 fixed the remaining problem. I have a 2.4.36.7 Cobalt patched kernel running in a Raq550 as I type this and it compiled with no keyboard or VT support cleanly with your dmi_scan and pc_keybd patch so I no longer am using the old regression patch I made previously.

Thanks for your effort in solving this.


Dave Studeman

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