2003-06-07 06:21:10

by Andi Kleen

[permalink] [raw]
Subject: [PATCH] Making keyboard/mouse drivers dependent on CONFIG_EMBEDDED


I finally got sick of seeing bug reports from people who did not enable
CONFIG_VT or forgot to enable the obscure options for the keyboard
driver. This is especially a big problem for people who do make oldconfig
with a 2.4 configuration, but seems to happen in general often.
I also included the PS/2 mouse driver. It is small enough and a useful
fallback on any PC.

This patch wraps all this for i386/amd64 in CONFIG_EMBEDDED. If
CONFIG_EMBEDDED is not defined they are not visible and always enabled.

I only tried to give good defaults for PC type of hardware. So far
the assumption is that people running other architectures know how
to configure a kernel.

I also included VGA_CONSOLE with this. Arguably a lot of people use
fbcon now, but having vga console compiled in too as a fallback doesn't hurt.

Hopefully this will fix one of the major FAQs on linux-kernel.

-Andi

diff -u linux-2.5.70/drivers/char/Kconfig-KCONFIG linux-2.5.70/drivers/char/Kconfig
--- linux-2.5.70/drivers/char/Kconfig-KCONFIG 2003-05-08 04:52:43.000000000 +0200
+++ linux-2.5.70/drivers/char/Kconfig 2003-06-06 23:46:52.000000000 +0200
@@ -5,8 +5,9 @@
menu "Character devices"

config VT
- bool "Virtual terminal"
+ bool "Virtual terminal" if EMBEDDED
requires INPUT=y
+ default y
---help---
If you say Y here, you will get support for terminal devices with
display and keyboard devices. These are called "virtual" because you
@@ -35,8 +36,9 @@
shiny Linux system :-)

config VT_CONSOLE
- bool "Support for console on virtual terminal"
+ bool "Support for console on virtual terminal" if EMBEDDED
depends on VT
+ default y
---help---
The system console is the device which receives all kernel messages
and warnings and which allows logins in single user mode. If you
diff -u linux-2.5.70/drivers/input/keyboard/Kconfig-KCONFIG linux-2.5.70/drivers/input/keyboard/Kconfig
--- linux-2.5.70/drivers/input/keyboard/Kconfig-KCONFIG 2003-03-28 18:32:22.000000000 +0100
+++ linux-2.5.70/drivers/input/keyboard/Kconfig 2003-06-06 23:46:51.000000000 +0200
@@ -2,7 +2,7 @@
# Input core configuration
#
config INPUT_KEYBOARD
- bool "Keyboards"
+ bool "Keyboards" if (X86 && EMBEDDED) || (!X86)
default y
depends on INPUT
help
@@ -12,7 +12,7 @@
If unsure, say Y.

config KEYBOARD_ATKBD
- tristate "AT keyboard support"
+ tristate "AT keyboard support" if (X86 && EMBEDDED) || (!X86)
default y
depends on INPUT && INPUT_KEYBOARD && SERIO
help
diff -u linux-2.5.70/drivers/input/serio/Kconfig-KCONFIG linux-2.5.70/drivers/input/serio/Kconfig
--- linux-2.5.70/drivers/input/serio/Kconfig-KCONFIG 2003-03-28 18:32:22.000000000 +0100
+++ linux-2.5.70/drivers/input/serio/Kconfig 2003-06-06 23:56:20.000000000 +0200
@@ -19,7 +19,7 @@
as a module, say M here and read <file:Documentation/modules.txt>.

config SERIO_I8042
- tristate "i8042 PC Keyboard controller"
+ tristate "i8042 PC Keyboard controller" if (X86 && EMBEDDED) || (!X86)
default y
depends on SERIO
---help---
diff -u linux-2.5.70/drivers/input/Kconfig-KCONFIG linux-2.5.70/drivers/input/Kconfig
--- linux-2.5.70/drivers/input/Kconfig-KCONFIG 2003-02-10 19:37:58.000000000 +0100
+++ linux-2.5.70/drivers/input/Kconfig 2003-06-06 23:44:32.000000000 +0200
@@ -5,7 +5,7 @@
menu "Input device support"

config INPUT
- tristate "Input devices (needed for keyboard, mouse, ...)"
+ tristate "Input devices (needed for keyboard, mouse, ...)" if EMBEDDED
default y
---help---
Say Y here if you have any input device (mouse, keyboard, tablet,
@@ -27,7 +27,7 @@
comment "Userland interfaces"

config INPUT_MOUSEDEV
- tristate "Mouse interface"
+ tristate "Mouse interface" if EMBEDDED
default y
depends on INPUT
---help---
@@ -45,7 +45,7 @@
a module, say M here and read <file:Documentation/modules.txt>.

config INPUT_MOUSEDEV_PSAUX
- bool "Provide legacy /dev/psaux device"
+ bool "Provide legacy /dev/psaux device" if EMBEDDED
default y
depends on INPUT_MOUSEDEV

diff -u linux-2.5.70/drivers/video/console/Kconfig-KCONFIG linux-2.5.70/drivers/video/console/Kconfig
--- linux-2.5.70/drivers/video/console/Kconfig-KCONFIG 2003-03-28 18:32:25.000000000 +0100
+++ linux-2.5.70/drivers/video/console/Kconfig 2003-06-07 08:23:50.000000000 +0200
@@ -5,8 +5,9 @@
menu "Console display driver support"

config VGA_CONSOLE
- bool "VGA text console"
+ bool "VGA text console" if (EMBEDDED && X86) || (!X86)
depends on !ARCH_ACORN && !ARCH_EBSA110 || !4xx && !8xx
+ default y
help
Saying Y here will allow you to use Linux in text mode through a
display that complies with the generic VGA standard. Virtually


2003-06-07 06:32:52

by Aaron Lehmann

[permalink] [raw]
Subject: Re: [PATCH] Making keyboard/mouse drivers dependent on CONFIG_EMBEDDED

On Sat, Jun 07, 2003 at 08:34:24AM +0200, Andi Kleen wrote:
> I finally got sick of seeing bug reports from people who did not enable
> CONFIG_VT or forgot to enable the obscure options for the keyboard
> driver. This is especially a big problem for people who do make oldconfig
> with a 2.4 configuration, but seems to happen in general often.
> I also included the PS/2 mouse driver. It is small enough and a useful
> fallback on any PC.

Can't these just be made the default and have oldconfig default to the
defaults (does it?). Seems silly to force people to jump through hoops
if they don't want to compile in something (i.e. they use a USB
mouse).

Subject: Re: [PATCH] Making keyboard/mouse drivers dependent on CONFIG_EMBEDDED

In article <20030607063424.GA12616@averell> (at Sat, 7 Jun 2003 08:34:24 +0200), Andi Kleen <[email protected]> says:

> I finally got sick of seeing bug reports from people who did not enable
> CONFIG_VT or forgot to enable the obscure options for the keyboard
> driver. This is especially a big problem for people who do make oldconfig
> with a 2.4 configuration, but seems to happen in general often.
> I also included the PS/2 mouse driver. It is small enough and a useful
> fallback on any PC.

Why isn't it enough to change default to "y"?
Not showing the config is not good.
I want to disable it while using standard (not embeded) PC.

--
Hideaki YOSHIFUJI @ USAGI Project <[email protected]>
GPG FP: 9022 65EB 1ECF 3AD1 0BDF 80D8 4807 F894 E062 0EEA

2003-06-07 07:13:23

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] Making keyboard/mouse drivers dependent on CONFIG_EMBEDDED

On Sat, Jun 07, 2003 at 08:34:24AM +0200, Andi Kleen wrote:
>
> I finally got sick of seeing bug reports from people who did not enable
> CONFIG_VT or forgot to enable the obscure options for the keyboard
> driver. This is especially a big problem for people who do make oldconfig
> with a 2.4 configuration, but seems to happen in general often.
> I also included the PS/2 mouse driver. It is small enough and a useful
> fallback on any PC.
>
> This patch wraps all this for i386/amd64 in CONFIG_EMBEDDED. If
> CONFIG_EMBEDDED is not defined they are not visible and always enabled.

This sounds like a bad idea. many modern PCs only have usb keyboard/mouse
these days. Having them in defconfig is fine but we shouldn't obsfucate
the kernel config due to user stupidity.

2003-06-07 09:45:45

by Vojtech Pavlik

[permalink] [raw]
Subject: Re: [PATCH] Making keyboard/mouse drivers dependent on CONFIG_EMBEDDED

On Sat, Jun 07, 2003 at 08:34:24AM +0200, Andi Kleen wrote:
>
> I finally got sick of seeing bug reports from people who did not enable
> CONFIG_VT or forgot to enable the obscure options for the keyboard
> driver. This is especially a big problem for people who do make oldconfig
> with a 2.4 configuration, but seems to happen in general often.
> I also included the PS/2 mouse driver. It is small enough and a useful
> fallback on any PC.
>
> This patch wraps all this for i386/amd64 in CONFIG_EMBEDDED. If
> CONFIG_EMBEDDED is not defined they are not visible and always enabled.
>
> I only tried to give good defaults for PC type of hardware. So far
> the assumption is that people running other architectures know how
> to configure a kernel.
>
> I also included VGA_CONSOLE with this. Arguably a lot of people use
> fbcon now, but having vga console compiled in too as a fallback doesn't hurt.
>
> Hopefully this will fix one of the major FAQs on linux-kernel.

I'm quite OK with this, but I'd like it to give a pointer where to
disable EMBEDDED, and also give a possibility to do it other than
editing .config manually.

> diff -u linux-2.5.70/drivers/char/Kconfig-KCONFIG linux-2.5.70/drivers/char/Kconfig
> --- linux-2.5.70/drivers/char/Kconfig-KCONFIG 2003-05-08 04:52:43.000000000 +0200
> +++ linux-2.5.70/drivers/char/Kconfig 2003-06-06 23:46:52.000000000 +0200
> @@ -5,8 +5,9 @@
> menu "Character devices"
>
> config VT
> - bool "Virtual terminal"
> + bool "Virtual terminal" if EMBEDDED
> requires INPUT=y
> + default y
> ---help---
> If you say Y here, you will get support for terminal devices with
> display and keyboard devices. These are called "virtual" because you
> @@ -35,8 +36,9 @@
> shiny Linux system :-)
>
> config VT_CONSOLE
> - bool "Support for console on virtual terminal"
> + bool "Support for console on virtual terminal" if EMBEDDED
> depends on VT
> + default y
> ---help---
> The system console is the device which receives all kernel messages
> and warnings and which allows logins in single user mode. If you
> diff -u linux-2.5.70/drivers/input/keyboard/Kconfig-KCONFIG linux-2.5.70/drivers/input/keyboard/Kconfig
> --- linux-2.5.70/drivers/input/keyboard/Kconfig-KCONFIG 2003-03-28 18:32:22.000000000 +0100
> +++ linux-2.5.70/drivers/input/keyboard/Kconfig 2003-06-06 23:46:51.000000000 +0200
> @@ -2,7 +2,7 @@
> # Input core configuration
> #
> config INPUT_KEYBOARD
> - bool "Keyboards"
> + bool "Keyboards" if (X86 && EMBEDDED) || (!X86)
> default y
> depends on INPUT
> help
> @@ -12,7 +12,7 @@
> If unsure, say Y.
>
> config KEYBOARD_ATKBD
> - tristate "AT keyboard support"
> + tristate "AT keyboard support" if (X86 && EMBEDDED) || (!X86)
> default y
> depends on INPUT && INPUT_KEYBOARD && SERIO
> help
> diff -u linux-2.5.70/drivers/input/serio/Kconfig-KCONFIG linux-2.5.70/drivers/input/serio/Kconfig
> --- linux-2.5.70/drivers/input/serio/Kconfig-KCONFIG 2003-03-28 18:32:22.000000000 +0100
> +++ linux-2.5.70/drivers/input/serio/Kconfig 2003-06-06 23:56:20.000000000 +0200
> @@ -19,7 +19,7 @@
> as a module, say M here and read <file:Documentation/modules.txt>.
>
> config SERIO_I8042
> - tristate "i8042 PC Keyboard controller"
> + tristate "i8042 PC Keyboard controller" if (X86 && EMBEDDED) || (!X86)
> default y
> depends on SERIO
> ---help---
> diff -u linux-2.5.70/drivers/input/Kconfig-KCONFIG linux-2.5.70/drivers/input/Kconfig
> --- linux-2.5.70/drivers/input/Kconfig-KCONFIG 2003-02-10 19:37:58.000000000 +0100
> +++ linux-2.5.70/drivers/input/Kconfig 2003-06-06 23:44:32.000000000 +0200
> @@ -5,7 +5,7 @@
> menu "Input device support"
>
> config INPUT
> - tristate "Input devices (needed for keyboard, mouse, ...)"
> + tristate "Input devices (needed for keyboard, mouse, ...)" if EMBEDDED
> default y
> ---help---
> Say Y here if you have any input device (mouse, keyboard, tablet,
> @@ -27,7 +27,7 @@
> comment "Userland interfaces"
>
> config INPUT_MOUSEDEV
> - tristate "Mouse interface"
> + tristate "Mouse interface" if EMBEDDED
> default y
> depends on INPUT
> ---help---
> @@ -45,7 +45,7 @@
> a module, say M here and read <file:Documentation/modules.txt>.
>
> config INPUT_MOUSEDEV_PSAUX
> - bool "Provide legacy /dev/psaux device"
> + bool "Provide legacy /dev/psaux device" if EMBEDDED
> default y
> depends on INPUT_MOUSEDEV
>
> diff -u linux-2.5.70/drivers/video/console/Kconfig-KCONFIG linux-2.5.70/drivers/video/console/Kconfig
> --- linux-2.5.70/drivers/video/console/Kconfig-KCONFIG 2003-03-28 18:32:25.000000000 +0100
> +++ linux-2.5.70/drivers/video/console/Kconfig 2003-06-07 08:23:50.000000000 +0200
> @@ -5,8 +5,9 @@
> menu "Console display driver support"
>
> config VGA_CONSOLE
> - bool "VGA text console"
> + bool "VGA text console" if (EMBEDDED && X86) || (!X86)
> depends on !ARCH_ACORN && !ARCH_EBSA110 || !4xx && !8xx
> + default y
> help
> Saying Y here will allow you to use Linux in text mode through a
> display that complies with the generic VGA standard. Virtually

--
Vojtech Pavlik
SuSE Labs, SuSE CR

2003-06-07 16:49:30

by Roman Zippel

[permalink] [raw]
Subject: Re: [PATCH] Making keyboard/mouse drivers dependent on CONFIG_EMBEDDED

Hi,

On Fri, 6 Jun 2003, Aaron Lehmann wrote:

> On Sat, Jun 07, 2003 at 08:34:24AM +0200, Andi Kleen wrote:
> > I finally got sick of seeing bug reports from people who did not enable
> > CONFIG_VT or forgot to enable the obscure options for the keyboard
> > driver. This is especially a big problem for people who do make oldconfig
> > with a 2.4 configuration, but seems to happen in general often.
> > I also included the PS/2 mouse driver. It is small enough and a useful
> > fallback on any PC.
>
> Can't these just be made the default and have oldconfig default to the
> defaults (does it?). Seems silly to force people to jump through hoops
> if they don't want to compile in something (i.e. they use a USB
> mouse).

Defaults cannot override the user values from .config and in most 2.4
.configs CONFIG_INPUT is disabled, so that you cannot change CONFIG_VT
with 'make oldconfig', as it depends now on CONFIG_INPUT.
To override the old CONFIG_INPUT value you either have to disable the
input prompt somehow or you have to rename the symbol and change
CONFIG_INPUT into a derived symbol, e.g.:

config INPUT2
tristate "Input devices (needed for keyboard, mouse, ...)"
default y

config INPUT
def_tristate INPUT2

bye, Roman

2003-06-07 18:26:54

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH] Making keyboard/mouse drivers dependent on CONFIG_EMBEDDED

On Sat, Jun 07, 2003 at 03:49:58PM +0900, YOSHIFUJI Hideaki / ?$B5HF#1QL@ wrote:
> Why isn't it enough to change default to "y"?

Because that won't override make oldconfig

> Not showing the config is not good.
> I want to disable it while using standard (not embeded) PC.

You can still. That is what CONFIG_EMBEDDED is for.

-Andi

2003-06-07 18:30:58

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH] Making keyboard/mouse drivers dependent on CONFIG_EMBEDDED

On Sat, Jun 07, 2003 at 11:59:08AM +0200, Vojtech Pavlik wrote:
> I'm quite OK with this, but I'd like it to give a pointer where to
> disable EMBEDDED, and also give a possibility to do it other than
> editing .config manually.

Hmm? You don't need to edit .config manually to disable EMBEDDED. It is
a standard visible top level option in "General options"

-Andi

2003-06-07 19:59:45

by Ryan Anderson

[permalink] [raw]
Subject: Re: [PATCH] Making keyboard/mouse drivers dependent on CONFIG_EMBEDDED

On Sat, Jun 07, 2003 at 08:40:18PM +0200, Andi Kleen wrote:
> On Sat, Jun 07, 2003 at 03:49:58PM +0900, YOSHIFUJI Hideaki / ?$B5HF#1QL@ wrote:
> > Why isn't it enough to change default to "y"?
>
> Because that won't override make oldconfig
>
> > Not showing the config is not good.
> > I want to disable it while using standard (not embeded) PC.
>
> You can still. That is what CONFIG_EMBEDDED is for.

Thinking about this, would a CONFIG_DWIM type setting make sense?
Something to drive "least surprise" settings from, without tying it to
any other functionality?

(For the acronym impaired, DWIM = Do What I Mean[t])

--

Ryan Anderson
sometimes Pug Majere

2003-06-07 20:14:30

by Vojtech Pavlik

[permalink] [raw]
Subject: Re: [PATCH] Making keyboard/mouse drivers dependent on CONFIG_EMBEDDED

On Sat, Jun 07, 2003 at 08:44:26PM +0200, Andi Kleen wrote:

> On Sat, Jun 07, 2003 at 11:59:08AM +0200, Vojtech Pavlik wrote:
> > I'm quite OK with this, but I'd like it to give a pointer where to
> > disable EMBEDDED, and also give a possibility to do it other than
> > editing .config manually.
>
> Hmm? You don't need to edit .config manually to disable EMBEDDED. It is
> a standard visible top level option in "General options"

Oops, sorry, I did not remember that one.

--
Vojtech Pavlik
SuSE Labs, SuSE CR

2003-06-07 20:31:05

by Pavel Machek

[permalink] [raw]
Subject: Re: [PATCH] Making keyboard/mouse drivers dependent on CONFIG_EMBEDDED

Hi!


> > I finally got sick of seeing bug reports from people who did not enable
> > CONFIG_VT or forgot to enable the obscure options for the keyboard
> > driver. This is especially a big problem for people who do make oldconfig
> > with a 2.4 configuration, but seems to happen in general often.
> > I also included the PS/2 mouse driver. It is small enough and a useful
> > fallback on any PC.
> >
> > This patch wraps all this for i386/amd64 in CONFIG_EMBEDDED. If
> > CONFIG_EMBEDDED is not defined they are not visible and always enabled.
>
> This sounds like a bad idea. many modern PCs only have usb keyboard/mouse
> these days. Having them in defconfig is fine but we shouldn't obsfucate
> the kernel config due to user stupidity.

Its more like "make oldconfig" limitation, IIRC. If you have some old
config, it ignores defconfig and suggests you N for new options. And
yes people were hitting that.
Pavel
--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]

2003-06-08 00:30:13

by grundig

[permalink] [raw]
Subject: Re: [PATCH] Making keyboard/mouse drivers dependent on CONFIG_EMBEDDED

On Sat, 7 Jun 2003 22:43:40 +0200
Pavel Machek <[email protected]> wrote:

> Its more like "make oldconfig" limitation, IIRC. If you have some old
> config, it ignores defconfig and suggests you N for new options. And
> yes people were hitting that.

Even if they're not using oldconfig, some people i know uses to put
it as module (they use to think in "put everything you can as module")


I suggest hidding this under "input device support":
<*> Input devices (needed for keyboard, mouse, ...)
<*> Serial i/o support (needed for keyboard and mouse)
<*> i8042 PC Keyboard controller
<*> Serial port line discipline
[*] Keyboards
<*> AT keyboard support
[*] Mice
<*> PS/2 mouse
<*> Serial mouse

and enable all of them by default

Then make a
[ ] Advanced Input Device Support

which will show those menues and it will let
people to disable those very common options.
I mean, IMHO users who want to disable
PS/2 and keyboard support are "advanced" users
which want to enable/disable "advanced" options.


Personally i think this scheme also sucks,
"input device support" should be changed; and bad names should be killed
(in the real world who knows what a "<*> i8042 PC Keyboard controller" means)
so people really knows that they won't be able to type anything if they disable it.
In fact, they're not warned anywhere that they won't get a console if they don't
enable it. And the fact that the help entries say nothing about it, and
that we're supposed to be disabling "input", not "output" support makes it harder
for people to understand when configuring their first 2.5 kernel.

I can't count how many people i've seen falling this on irc (personally it took
me 3 times to get the right options; unexperienced people could take forever).
If this isn't changed it will be the most reported ever (personally i'd consider
it a "must-fix" item ;) as it could have very negative effects when 2.6 is out =)


Just my thougs; Diego Calleja.