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.

Vorher
Nachher

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:

ParameterBeschreibung
kernKernel Parameter
userrandom user-level messages
mailmail system
daemonsystem daemons
authsecurity/authorization messages
syslogmessages internally by syslogd
lprline printer subsystem
newsnetwork news subsystem
Quelle: https://wiki.ubuntuusers.de/dmesg/

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:

ParameterBeschreibung
emergSystem is unusable
alertaction must be taken immediately
critcritical conditions
errerror conditions
warnwarning conditions
noticenormal but significant condition
infoinformational
debugdebug-level messages
Quelle: https://wiki.ubuntuusers.de/dmesg/

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

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen