I have been thinking about one change that could be used for X
terminal. That is to separate the keyboard I/O, which is basically a
specialized serial port, and the keyboard line discipline which
handles the protocol between the computer and keyboard. It might be
fun and even useful at times to be able to attach many keyboards to a
machine.
X server does not need the discipline, and thus the keyboard mapping
tables and code in kernel, so it could work with less kernel code.
Similar thing could be done for display; have the terminal emulation
in a line discipline.
This should end up in several virtual terminal devices which could
share a keyboard and a video device.
However, I have no idea how to make it work cleanly. I see two problems
1) make the multiple virtual terminals work for keyboard
and display combinations in a sane way, enabling several consoles
that do not disturb each other.
2) combine the serial input and display output tty devices and
disciplines such that, for example one could change the terminal
emulation of one virtual terminal on a display device.
This is not important to me, just one fun thing to think about, but
something like this is needed for the different ports of Linux.
Currently the different ports of Linux seem to copy the keyboard
discipline and console code, instead of just adding some
specialization.
------------------------ the original posting
I wrote a patch to make the virtual terminal tty devices be a
configuration option. This is of use to those wanting to run Linux on
machines that have no video or keyboard hardware.
The patch against 2.1.20 is at http://www.hut.fi/~mkohtala/newtty.diff.20
Please, check this patch out. I wish to have it tried by
- maintainers of various architectures, I only use i386
- those porting Linux to MVME
If Linus does not pick the patch up from this message, I'll be mailing
it to him in couple of weeks.
The patch defines three new CONFIG_ macros
CONFIG_VT for inclusion of console, vt, vc_screen,
consolemap, selection, keyboard and defkeymap
CONFIG_VT_CONSOLE for directing printk to the VT device
CONFIG_VT_SERIAL for directing printk to the standard serial device
Both CONFIG_VT_CONSOLE and CONFIG_VT_SERIAL can be used together in
which case the output goes to both. To support this, there is a new
console device list with entries for this output. The list also has
entries for waiting a key press and for determining what device really
to open for /dev/console, but these are used only from the device at
the head of the list.
The rest of the change is to move some code from tty_io.c to other
files where it seems to fit better. This avoids some #ifdef CONFIG_VT
/ #endif.
----- Marko Kohtala - Marko.Kohtala@ntc.nokia.com, Marko.Kohtala@hut.fi