
Ich versuche, die SATA-Host-Gerätekommunikation zu verstehen und habe dazu viele Debugmeldungen in den Kerneltreibercode eingefügt. Jetzt gibt es so viele Meldungen, dass ich die ersten Meldungen der Geräteaufzählung nicht im dmesg-Protokoll sehen kann. Aus diesem Grund habe ich die Konfigurationsvariable CONFIG_LOG_BUF_SHIFT(=21) geändert, um die Ringpuffergröße zu erhöhen, aus der dmesg die Meldungen bezieht, aber ich habe immer noch dasselbe Problem.
Gibt es also eine Methode, mit der ich alle dmesg vom Kernel-Boot in eine bestimmte Datei protokollieren kann?
Vielen Dank im Voraus für die Hilfe.
Antwort1
Sie können verwenden:
cat /var/log/dmesg > file.txt
und verwenden Sie:
head /var/log/dmesg
wenn Sie die ersten Zeilen von dmesg sehen möchten.
Weitere Spezifikationen finden Sie auch unter „man head“. Das Symbol „>“ leitet die Ausgabe von „cat“ in die Datei „file.txt“ um.
Antwort2
Es gibt einen Befehl, dmesg
der die Protokolle auf stdout druckt. Sie können stdout einfach in eine Textdatei umleiten.
dmesg > /path/to/dmesg.txt
Sie könnten dies erweitern. Eine wirklich nützliche Option wäre, Ihrer ~/.profile
Datei (in Ihrem Home-Verzeichnis) eine Zeile hinzuzufügen, die die Ausgabe von dmesg beim Anmelden anhängt. Fügen Sie einfach eine Zeile hinzu, die besagt:
dmesg >> /path/to/dmesg.txt
Wenn Sie nur die ersten paar Zeilen (0,000000 Nachrichten) möchten, können Sie sie head
wie folgt weiterleiten.
Mit stdout:
dmesg | head
oder mit head
einer bereits gespeicherten .txt-Datei.
head /path/to/dmesg.txt
Das ist so ziemlich alles, ich hoffe, das hilft!
BEARBEITEN:Übrigens, dies enthält die 0.000000 Nachrichten