Re: New /dev/console and /dev/tty0

Geert Uytterhoeven (
Tue, 29 Apr 1997 14:12:46 +0200 (MET DST)

On 29 Apr 1997, Kohtala Marko wrote:
>Geert Uytterhoeven <> writes:
>> In summary, while we created an `automatic' /dev/console, we lost the ability
>> to access the current virtual console (formerly /dev/tty0), or am I missing
>> something??
>When I wrote the change, my thought was that /dev/console would
>continue to work as before (it already was automatic) when there are
>the virtual terminal devices. However, I failed to bring this thought
>into the code.

I think you've got a bit confused by devices.t{ex,xt}. This document
(incorrectly) states that c 4 0 should be /dev/console, while it was supposed
to be /dev/tty0. If you read the statement about the console at the end, this
becomes clear (and I did ask H. Peter Anvin).

>The concept of console is a bit vague here and in the source. In my
>view console is the device for managing the machine and where kernel
>messages go and from which you can get the single user shell
>prompt. Video and keyboard and the virtual terminal devices using them

100% agreed. This is what I understand by `console' too.

>are just one fancy device driver among the serial ports and other
>terminal devices. Their only association with console is that they
>could be used as a console, just like most other terminal
>devices. /dev/console should not be relied for giving any virtual
>terminal. It can be relied to find the console.

Yep, that's what /dev/tty0 served for.

>This is simple logic (albeit new with the introduction of alternate
>console devices): if it is true that
> virtual terminal is a console
>it does NOT follow that
> console is a virtual terminal

100% agreed.

>Now, when we have no /dev/tty[1-9]* devices, I thought that best is to
>have /dev/console go automatically to any existing console device. The
>c 4 0 is pairs nicely with c 5 0, which is the tty of the current
>process, so I thought I keep using that.
>The only problem that I see is that programs rely on the old notion of
>console to find foreground virtual terminals. This can be alleviated

They always were incorrect, since they had to use /dev/tty0 instead of

>by giving /dev/tty[1-9]* priority over serial consoles, so that they
>are /dev/console when both vt and serial consoles are used. Some
>people might not want that, but they are minority and still not worse
>off than before the serial console change.

Hmmm... That's not what I want. I want to have the console messages and the
single user shell (and the kernel monitor when I hit BREAK, or on panic :-) on
/dev/ttyS0, while I do use /dev/tty[1-9]* for normal business.

The only clean solution I see is to allocate a new major/minor pair for
/dev/console, and keep on using /dev/tty0 for the current VT (and for gpm, X,
loadkeys, clock (on m68k), etc...).



Geert Uytterhoeven           
Wavelets, Linux/m68k on Amiga
Department of Computer Science -- Katholieke Universiteit Leuven -- Belgium