2016-04-15 7 views
0

Ich versuche, ein Modul für den Linux-Kernel zu debuggen. Ich habe gehört, dass es möglich ist, die Konsolenausgabe an eine serielle Schnittstelle zu senden. Ich führe Ubuntu auf vmware und möchte printk Nachricht an den Host senden. Ich habe es geschafft, eine serielle Verbindung einzurichten und kann ein Echo an den Host senden, indem ich echo> simething/dev/ttyS1 Aber ich kann nicht herausfinden, wie die Ausgabe auf der Konsole zu ttyS1 zu senden.Send printk zu seriell

Mein Hauptproblem ist, dass wenn das Modul/Kernel abstürzt die letzten printk-Nachrichten verloren gehen und nicht einmal angezeigt werden, es puffert nur.

Antwort

2

Versuchen Sie, Ihren Kernel mit der Befehlszeile 'console = ttyS1, < Baud>' zu booten, wobei < Baud> die Baudrate ist, die Sie für diesen Port in den VM-Einstellungen konfiguriert haben. Der Kernel wird dann/dev/ttyS1 als Hauptkonsole verwenden, und hier wird printk seine gesamte Ausgabe senden.

+0

Ich habe 'GRUB_CMDLINE_LINUX = "console = ttyS1,1155200n8" 'zu/etc/default/grub hinzugefügt und dann update-grub ausgeführt und neu gestartet. Nichts geht jedoch zur seriellen Schnittstelle. Ich habe cmdline.txt überprüft, um zu sehen, ob console = ttyS1 hinzugefügt wurde und es war. Ich weiß nicht, ob die Baudrate falsch ist oder so. – Dave

+0

Es funktioniert, danke! Ich möchte dich küssen. – Dave