Re: keyboard scancodes

Martin Mares (mj@suse.cz)
Sun, 12 Dec 1999 11:16:39 +0100


Hello,

> The consoel does need more work than that. Since the console system was
> designed for one head than the code was naturally SMP safe. When you have
> SMP and a multiheaded system you have the change of two heads running at
> the same time.

If the old locking scheme were correct, it would be enough to add a simple
spinlock to all the places where we lock against console_bh. Unfortunately,
the current locking scheme is incorrect as it completely ignores the fact
anybody can use printk() from an interrupt. We finally need to handle it
somehow.

> This can run into severe problems. Also what do you do for
> systems that have two framebuffers and one keyboard. Or two keyboards and
> one framebuffer.

My early attempts on this can be found in Vojtech's patches. They work
this way:

o Each keyboard has its own `struct keyboard' containing a bitmap
of consoles it can be switched to.
o Each logical console is mapped to one physical display (VGA
screen, a framebuffer etc.) represented by `struct display'
(screen blanking etc. works on displays).
o At each moment, each keyboard send its output to a single
console chosen from its `allowed consoles' bitmap. Pressing
Alt+Fn switches the keyboard to the console chosen and brings
the console to the front at the display it's connected to.

Another possibility is to forget the assignment bitmaps and define heads
instead. Each head has a bunch of keyboards, mice (and other input devices)
and consoles assigned and only one of the consoles is active and it's written
to by all the keyboards. It can be easier to think of and to use, but the
possibilities of the first model are much wider -- you can for example define
`global keyboard' which has access to all the consoles and so on.

> Their is need to support 16 bit characters so you can display asian
> languages.

Do we really want the kernel console to do this? I think such things belong
to user-space programs like xterm. Having full UniCode fonts in the kernel
is a bit too much.

Have a nice fortnight

-- 
Martin `MJ' Mares <mj@ucw.cz> <mj@suse.cz> http://atrey.karlin.mff.cuni.cz/~mj/
"ADA -- A Dumb Acronym"

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