2008-09-30 6 views
7

Ich entwickle ein Embedded-System, das Linux derzeit mit der Konsolenausgabe an der seriellen Schnittstelle 1 bootet (mit dem Konsolen-Boot-Parameter des Bootloaders). Aber irgendwann werden wir diesen seriellen Port benutzen. Was ist die beste Lösung für die Ausgabe der Kernel-Konsole?/dev/null? Kann es irgendwie auf eine Pty gelegt werden, damit wir möglicherweise darauf zugreifen können?Wohin senden Sie die Kernel-Konsole auf einem eingebetteten System?

Antwort

3

Wenn Sie nur kernel printk-Nachrichten von der Konsole lesen und nicht getty oder eine Shell darauf ausführen möchten, können Sie netconsole verwenden. Sie können die folgenden Bootloader Kernel-Optionen (oder modprobe netconsole) liefern:

[email protected]/eth1,[email protected]/12:34:56:78:9a:bc 

wo 4444 der lokale Port, 10.0.0.1 die lokale IP ist, eth1 ist die lokale Schnittstelle, die Nachrichten aus senden . 9353 ist der Remote-Port, 10.0.0.2 ist die Remote-IP, an die die Nachrichten gesendet werden, und das letzte Argument ist die MAC-Adresse Ihres Remote-Rechners (z. B. Ihres Desktop).

Dann werden die Nachrichten laufen zu lesen:

netcat -u -l -p 9353 

Sie mehr dazu in Documentation/networking/netconsole.txt

+0

danke für die Antwort. Auf dem Endprodukt könnte ich Netconsole an 127.0.0.1 senden und dann von dem Port in einer Shell lesen, wenn ich es brauchte – MattSmith

3

lesen Sie die printk Nachrichtenpuffer aus einer Schale mit dmesg zugreifen können. Der Kernel-Buffer ist von begrenzter Größe und überschreibt die ältesten Einträge mit den neuesten, so dass Sie entweder dmesg regelmäßig überprüfen oder netconsole wie von @bmdhacks vorgeschlagen anschließen müssen.

Wenn es keine Konsole gibt, verpassen Sie keine Oops-Informationen, die bei einem Kernel-Absturz ausgedruckt wurden. Selbst die Verwendung von netconsole kann hier nicht helfen, wenn der Kernel ausfällt und neu startet, bevor TCP die Ausgabe an den Remote-Socket liefert. Im Allgemeinen ändern wir kernel/panic.c: panic(), um Registerinhalte und andere Zustände in einem Bereich von NOR-Flash zu speichern, so dass zumindest einige Informationen für das Post-Mortem-Debuggen verfügbar sind.

Verwandte Themen