J'aimerais écrire une déclaration à Dmesg. [Comment puis-je faire ceci?
Écrire à /dev/kmsg
(ne pas /proc/kmsg
Comme suggéré par @ nils ). Voir linux/kernel/printk/printk.c
devkmsg_writev
Pour la mise en œuvre du côté du noyau et systemd/src/journal/journald-kmsg.c
server_forward_kmsg
Pour un exemple d'utilisation.
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'
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.
Si j'ai bien compris homme dmesg correctement, vous devriez pouvoir écrire à /proc/kmsg .
-> 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