web-dev-qa-db-fra.com

Comment puis-je écrire sur dmesg de la ligne de commande?

J'aimerais écrire une déclaration à Dmesg. [Comment puis-je faire ceci?

49
notlesh

Écrire à /dev/kmsg (ne pas /proc/kmsg Comme suggéré par @ nils ). Voir linux/kernel/printk/printk.cdevkmsg_writev Pour la mise en œuvre du côté du noyau et systemd/src/journal/journald-kmsg.cserver_forward_kmsg Pour un exemple d'utilisation.

42
ephemient

pour les BSD

%logger -p kern.crit MESSAGE

(courtoisie Ian, liste de diffusion de questions FreeBSD )

pour Linux

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

En supposant que personne d'autre ne propose une manière officielle de faire cela ...

Vous pouvez écrire un module de noyau qui appelle la fonction printk. Il y a un exemple ici Cela pourrait juste faire le travail pour vous.

3
ams

Si j'ai bien compris homme dmesg correctement, vous devriez pouvoir écrire à /proc/kmsg .

0
Nils

-> Vous pouvez écrire un programme C ci-dessous:

test_mod.com

#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");
}

-> Faire un fichier d'objet:

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

-> Compiler en courant:

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

-> Chargez votre module comme ci-dessous:

insmod ./test_mod.ko

voir la sortie:

dmesg | tail

-> Module de déchargement:

rmmod test_mod.ko
0
Bhavana Johri