Re: AT keyboard optional on i386?

James Simmons (jsimmons@transvirtual.com)
Mon, 28 May 2001 21:11:40 -0700 (PDT)


> I'm trying to run Linux on a broken motherboard that is constantly
> producing random noice on the AT keyboard port. I'm going to use a USB
> keyboard, but I cannot get Linux to ignore the AT keyboard port.

Not that I know. The current way it works is:

1) Current 2.4 way for AT keyboards:

pc_keyb.c -(raw)-> keyboard.c -(raw)-> pc_keyb.c -->
>--(cooked)-> keyboard.c -(chars)-> tty

2) Current 2.4 way for USB keyboards (uses keybdev):

usb.c -(usb)-> hid.c -(events)-> input.c -(events)-> keybdev.c -->
>--(raw)-> keyboard.c -(raw)-> pc_keyb.c -(cooked)-> keyboard.c -->
>--(chars)-> tty

So as you can see even USB keyboards depend on pc_keyb.c. So their is no
way around this.

> Is there any way to disable the AT keyboard? I think the best solution
> would be to make it optional, just like almost everything in the kernel,
> e.g. PS/2 mouse. Some embedded i386 systems could save a few kilobytes of
> RAM by disabling the AT keyboard.

This is a 2.5.X issue since changing the current pc_keyb.c keyboard
driver would break many drivers which like the USB keybaords fake they are
PS/2 keyboards.
BTW I already have a kernel tree that does allow the AT keyboard to be
optional. The AT keyboard has been ported to the linux input api and it
has been working very well for along time. In this kernel tree you have:

3) Ruby (my tree's name) way for AT keyboards:

i8042.c -(raw)-> atkbd.c -(events)-> input.c -->
>--(events)-> keyboard.c -(chars)-> tty

4) Ruby way for USB keyboards:

usb.c -(usb)-> hid.c -(events)-> input.c -->
>--(events)-> keyboard.c -(chars)-> tty

You can a few nice tricks with it like plug in two PS/2 keyboards. I have
this for my home setup. The only thing is make sure you don't have both
keyboards plugged in when you turn your PC on. I found BIOS get confussed
by two PS/2 keyboards. As you can it is very easy to multiplex many
keyboards with the above design. I have had 4 different keyboards hooked
up to my system and functioning at the same time. We even got a Sun
keyboard to work on a intel box :-) Another nice feature is event numbers
from the input api can be used in the keymap. This has a nice effect that
keymaps will be architecture independent, too. The only mess is raw mode
which /dev/event makes obsolute.

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