dmesg
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
dmesg steht für display message und ist ein Programm, welches die Kernel-Meldungen (genau: die Meldungen des Kernel-Ringpuffers) auf dem Bildschirm ausgeben kann.
Das Programm wird im "normalen" Betrieb von Linux eher selten verwendet, ist aber immer dann nützlich, wenn Fehler im System gesucht werden, z.B. warum (neue) Hardware nicht korrekt erkannt oder eingebunden wird.
Installation¶
dmesg ist unter Ubuntu als Bestandteil des Pakets
util-linux
bereits vorinstalliert.
Benutzung¶
Die allgemeine Syntax von dmesg lautet:
sudo dmesg OPTIONEN
Da die Ausgabe des Aufrufs von dmesg sehr lang ist (u.a. weil darin sämtliche Meldungen des Bootvorgangs enthalten sind), wird das Programm oft in Kombination mit einer Pipe und einem Pager wie more, less oder tail eingesetzt. Wenn gezielt nach Meldungen gesucht wird, kombiniert man den Befehl mit grep.
dmesg kennt einige Optionen, welche u.a. auch die Ausgabe filtern bzw. einschränken können:
Optionen von dmesg | |
Option | Beschreibung |
-d | Zeigt nicht nur den Zeitstempel einer Meldung an, sondern auch, wie viele Millisekunden seit der vorherigen Meldung vergangen sind |
-T | Zeigt den Zeitstempel nicht als Unix-Timecode an, sondern in einem für Menschen besser lesbaren Format: [Mo Mär 11 10:43:24 2013] |
-t | Ausgabe der Meldungen erfolgt ohne Zeitstempel |
-f F , --facility F | Zeigt nur Meldung der "facility" (=Quelle) F an. Mögliche Quellen sind: kern (kernel messages), user (random user-level messages), mail (mail system), daemon (system daemons), auth (security/authorization messages), syslog (messages generated internally by syslogd), lpr (line printer subsystem) und news (network news subsystem) |
-l L , --level L | Zeigt nur Meldungen des "levels" (=Stufe) L an. Mögliche Stufen sind: 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) |
-h | Zeigt die vollständige Hilfe zu dmesg an. |
dmesg kennt noch eine Reihe weitere Optionen, welche über die Option -h
aufgerufen oder in der Manpage nachgelesen werden können.
Beispiele¶
Im folgenden Beispiel werden nur Meldungen aus der Quelle user
gezeigt:
sudo dmesg -f user
[ 18.573126] init: failsafe main process (798) killed by TERM signal
Die gleiche Ausgabe, aber mit besser lesbarer Zeitangabe:
sudo dmesg -f user -T
[Mo Mär 11 18:04:23 2013] init: failsafe main process (798) killed by TERM signal
Der folgende Befehl zeigt nur Meldungen der Stufe debug
:
sudo dmesg -l debug
... [ 17.350136] Registered led device: phy0-led [ 17.350163] cfg80211: Ignoring regulatory request Set by core since the driver uses its own custom regulatory domain [ 17.354005] ieee80211 phy0: Selected rate control algorithm 'iwl-4965-rs' [ 17.625767] snd_hda_intel 0000:00:1b.0: irq 48 for MSI/MSI-X [ 19.002576] tg3 0000:04:00.0: irq 49 for MSI/MSI-X [ 23.503001] wlan0: authenticate with 00:12:bf:71:86:8d [ 23.503084] wlan0: send auth to 00:12:bf:71:86:8d (try 1/3) [ 23.505021] wlan0: authenticated [ 23.516043] wlan0: associate with 00:12:bf:71:86:8d (try 1/3) [ 23.529425] wlan0: RX AssocResp from 00:12:bf:71:86:8d (capab=0x431 status=0
Im nächsten Beispiel wird dmesg in Kombination mit tail genutzt, so dass nur die letzten zehn Meldungen angezeigt werden:
sudo dmesg | tail
[ 19.002576] tg3 0000:04:00.0: irq 49 for MSI/MSI-X [ 19.032556] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 19.033293] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 23.503001] wlan0: authenticate with 00:12:bf:71:86:8d [ 23.503084] wlan0: send auth to 00:12:bf:71:86:8d (try 1/3) [ 23.505021] wlan0: authenticated [ 23.516043] wlan0: associate with 00:12:bf:71:86:8d (try 1/3) [ 23.529425] wlan0: RX AssocResp from 00:12:bf:71:86:8d (capab=0x431 status=0 aid=2) [ 23.553340] wlan0: associated [ 23.553607] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
Um Änderungen "live" mitverfolgen zu können, kombiniert man dmesg und tail noch mit watch:
watch 'sudo dmesg | tail'
Unter neueren Ubuntu-Versionen ist auch Folgendes möglich:
sudo dmesg -w
Beendet wird die Ausgabe mit Strg + C .
Alternative¶
Man kann sich die Meldungen des Kernels auch mit journalctl anschauen:
journalctl -b -k
Dieser Befehl benötigt keine Rootrechte[3] und benutzt automatisch einen Pager.
Links¶
Manpage 🇬🇧
dmesg(1) changes for util-linux 2.20 🇬🇧 - Blogbeitrag, 07/2011
Shell/Befehlsübersicht - Übersicht über verschiedene Shellbefehle