Kernel-Meldungen filtern und einsehen
Immer dann, wenn es in Linux-Systemen zu Fehlern kommt und man sich Informationen vom Kernel rund um die Hardware, Gerätetreiber und Kernel-Module ausgeben lassen möchte hilft es, einen genaueren Blick auf dmesg zu werfen (oder komplett ausgeschrieben display message). Wie dieses Tool funktioniert und wie die gängigsten Befehle lauten, zeigt der nachfolgende Beitrag.
dmesg sollte in jeder Linux-Distribution bereits vorinstalliert sein und ist Bestandteil des Pakets util-linux.
Kernel-Meldungen anzeigen und durchsuchen
Um dmesg zu verwenden, reicht eine einfache Ausführung des gleichnamigen Befehls mit Administrator-Rechten bereits aus:
sudo dmesg
Als Ausgabe erhalten wir unzählige Zeilen von Kernel-Meldungen samt dazugehörigen Zeitstempel im Unix-Format.
Da unter der enormen Größe der Ausgabe in aller Regel die Übersicht leidet, lässt sich optional auch der Pager less dazuschalten.
sudo dmesg | less
Nun haben wir die Möglichkeit, die Ausgabe nicht nur mit den Pfeiltasten durchzuscrollen, sondern auch mit Hilfe von / (bzw. der Slash-Taste / Strg + 7) den Inhalt zu durchsuchen.
Auch ist es möglich, mit Hilfe von grep nach dem gewünschten Eintrag zu suchen:
sudo dmesg | grep usb
Human Readable Zeitstempel
Um den Zeitstempel ein wenig lesbarer zu gestalten, hilft uns der -T oder –ctime Parameter:
sudo dmesg -T
bzw.
sudo dmesg --ctime
So lassen sich die Meldungen zeitlich ein wenig besser einordnen.
Kernel-Meldungen nach Quelle und Kategorie filtern
Um die Ausgabe der Meldungen etwas zu verkürzen, stehen uns diverse Filteroptionen zur Verfügung, die nach der Quelle der Meldung filtern. Hierfür wäre der Parameter -f bzw. –facility und das gewünschte Schlüsselwort verantwortlich. Dies sähe in etwa so aus:
sudo dmesg -f kern
bzw.
sudo dmesg --facility kern
Neben dem Schlüsselwort kern stehen noch weitere zur Verfügung.
In der folgenden Auflistung sind die weiteren möglichen Filter aufgeführt:
Parameter | Beschreibung |
---|---|
kern | Kernel Parameter |
user | random user-level messages |
mail system | |
daemon | system daemons |
auth | security/authorization messages |
syslog | messages internally by syslogd |
lpr | line printer subsystem |
news | network news subsystem |
Nicht nur nach der Quelle, sondern auch nach dem Level, also inwiefern die Meldung das System beeinträchtigt, kann gefiltert werden. Diesmal verwenden wir ein -l bzw. –level:
sudo dmesg -l emerg
bzw.
sudo dmesg --level emerg
Auch hier stehen uns wieder mehrere Optionen zur Auswahl:
Parameter | Beschreibung |
---|---|
emerg | System is unusable |
alert | action must be taken immediately |
crit | critical conditions |
err | error conditions |
warn | warning conditions |
notice | normal but significant condition |
info | informational |
debug | debug-level messages |
Kernel-Meldungen in Echtzeit anzeigen
Um sich die neuesten Kernel-Meldungen in Echtzeit direkt im Terminal ausgeben zu lassen, gibt es den Parameter -w bzw –follow:
sudo dmesg -w
bzw.
sudo dmesg --follow
Kernel-Meldungen als nicht root-Benutzer einsehen
Um Kernel-Meldungen auch als nicht root-Benutzer einsehen zu können, lässt sich ein Kernel-Modul setzen. Um diese Option selbst zu setzen, benötigen wir jedoch natürlich root-Berechtigung:
sudo sysctl -w kernel.dmesg_restrict=0
Ein anschließender Neustart ist notwendig. Anschließend darf jeder Benutzer dmesg verwenden.
Kernel-Meldungen löschen
Die Kernel-Meldungen lassen sich auch löschen:
sudo dmesg -C
bzw.
sudo dmesg --clear
Fazit
Wer früher oder später auf Fehler in seinem Linux-System stößt und ein klein wenig debugging betreiben möchte, kommt um dmesg nicht drum herum. Zwar bedarf es einer kleinen Eingewöhnungsphase um der überwältigenden Ausgabe dieses Tools erst einmal Herr zu werden, jedoch lässt sich diese anfängliche Hürde mit dem einen oder anderen zusätzlichen Parameter ein wenig leichter nehmen.
Bildquellen:
OpenClipart-Vectors auf Pixabay