Überprüfen Sie, ob der Prozess syslog -Daemon ausgeführt wird, da dies der Prozess ist, der printk-Nachrichten aus dem Kernel-Ring- / Protokollnachrichtenpuffer in / var / log / messages kopiert bin richtig. printk-Nachrichten können mit dem Dienstprogramm dmesg angezeigt werden, oder Nachrichten befinden sich in / var / log / messages. Wenn der richtige Loglevel eingestellt ist, werden die printk-Nachrichten sofort auf der Konsole angezeigt. Sie müssen dmesg nicht verwenden oder müssen / var / log / messages einchecken. printk Debug-Meldungen können auch Teil von / var / log / syslog sein.
Moderne Linux-Distributionen verwenden rsyslog (oder irgendeinen anderen syslog-Daemon) nicht mehr. Sie beruhen auf journald, das Teil von systemd ist, daher fehlt die Datei / var / log / messages und Sie müssen den Befehl journalctl verwenden, um das Systemprotokoll zu lesen.
Zuerst sollten Sie überprüfen, ob Ihr Modul richtig geladen ist oder nicht, indem Sie diesen Befehl verwenden
%Vor%Seit du ein Kernelmodul geschrieben hast, welches eine Nachricht ausgibt. Die Nachrichten vom Kernel und seinem Modul finden Sie in / var / log / syslog oder Sie können diese Art von Nachrichten mit dem Befehl dmesg anzeigen. Wenn Ihr Modul "Hello World 1" ausgibt, sollten Sie den folgenden Befehl verwenden, um die Nachricht von Ihrem Modul zu sehen.
%Vor%Suchen Sie in /etc/syslog.conf nach den * .info ... Zeilen. Diese scheinen zu kontrollieren, was über printk protokolliert wird.
%Vor%Ich habe festgestellt, dass / proc / sys / kernel / printk nur die Protokollierungsstufen der Konsole und nicht die Protokollierung der Datei gesteuert hat. Und ich denke, überprüfen Sie Syslog läuft auch;) Wir hatten genau das gleiche Problem, KERN_INFO nicht zu Protokolldateien gehen und dies behoben. hth
Tags und Links kernel linux linux-kernel kernel-module