Ich habe einen mini2440 ARM-Computer mit einem kleinen Bildschirm und starte derzeit Debian Squeeze. Ich kommuniziere damit über eine serielle Verbindung mit minicom
. Wenn das Ding bootet, gibt es mir eine Anmeldeaufforderung über die Seriennummer und auf dem kleinen Bildschirm. Wenn ich eine USB-Tastatur anschließe, kann ich mich anmelden und das Terminal mit kleinem Bildschirm verwenden.
Ich versuche, die Idee von Terminals oder Konsolen in Linux zu verstehen. Woher weiß das System, dass es mir eine Anmeldeaufforderung über die serielle Verbindung geben soll? Kann ich die Ausgabe eines Programms, das von der seriellen Sitzung aufgerufen wird, auf den Bildschirm umleiten? Kann ich den Bildschirm so einstellen, dass er das widerspiegelt, was ich über die serielle Schnittstelle sehe? Ich bin nur sehr verwirrt darüber, welche Prozesse damit umgehen und warum das Anmeldesystem so konzipiert wurde.
Ich würde mich sehr über einen Überblick oder nützliche Hinweise freuen. Danke
Akzeptierte Antwort:
Das System erlaubt Ihnen, sich seriell anzumelden, weil Sie eine Zeile wie diese in /etc/inittab
haben :
T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
Das heißt, a getty auf ttyS0 in Runlevel 2 und 3 auszuführen und es zu respawnen, wenn es existiert. 9600 sind natürlich die Bits pro Sekunde und vt100 ist der Terminaltyp. Sie werden auch gettys auf tty1–6 bemerken, das sind die virtuellen Kernel-VGA-Konsolen (die wahrscheinlich mit dem kleinen Bildschirm verbunden sind).
Sie können in die VGA-Konsole schreiben, auf der Ihr Programm ausgeführt wird, oder sie alternativ öffnen (im Allgemeinen nach dem Auskommentieren der inittab-Zeilen, die getty dort ausführen). Sie können auch die Framebuffer-Bibliotheken (oder direkt die Kernel-Framebuffer-Schnittstelle) verwenden. Könnte sogar X darauf starten, nehme ich an.
Nicht sicher, was der einfachste Weg ist, die Ausgabe auf beiden ttys zu spiegeln.