it-swarm.com.de

Wie kann ich über die Befehlszeile in dmesg schreiben?

Ich möchte eine Erklärung an dmesg schreiben. [Wie kann ich das machen?

49
notlesh

Schreiben Sie an /dev/kmsg (nicht /proc/kmsg wie von @ Nils vorgeschlagen). Sehen linux/kernel/printk/printk.cdevkmsg_writev für die kernelseitige Implementierung und systemd/src/journal/journald-kmsg.cserver_forward_kmsg für ein Anwendungsbeispiel.

42
ephemient

für BSDs

%logger -p kern.crit MESSAGE

(mit freundlicher Genehmigung Ian, Mailingliste für Freebsd-Fragen )

für Linux

su root -c 'echo MESSAGE > /dev/kmsg'
14
xitij

Vorausgesetzt, niemand anderes hat einen offiziellen Weg gefunden, dies zu tun ...

Sie können ein Kernelmodul schreiben, das die Funktion printk aufruft. Es gibt ein Beispiel hier , das möglicherweise die Arbeit für Sie erledigt.

3
ams

Wenn ich man dmesg richtig verstanden habe, sollten Sie in der Lage sein, an /proc/kmsg zu schreiben.

0
Nils

-> Sie können ein C-Programm wie folgt schreiben:

test_mod.c

#include <linux/module.h>
#include <linux/kernel.h>

int init_module(void)
{
    printk("Hello All\n This is a test init\n");
    return 0;
}

void cleanup_module(void)
{
    printk("Good Bye");
}

-> Objektdatei erstellen:

echo "obj-m := test_mod.o" > Makefile

-> kompilieren durch Ausführen von:

make -C /lib/modules/$(Shell uname -r)/build M=$(PWD) modules`

-> Laden Sie Ihr Modul wie folgt:

insmod ./test_mod.ko

siehe die Ausgabe:

dmesg | tail

-> Modul entladen:

rmmod test_mod.ko
0
Bhavana Johri