Linux

如何添加將使用 dmesg 讀取的消息?

  • June 22, 2021

我正在嘗試在我的 dmesg 輸出中編寫一些自定義消息。我試過了:

logger "Hello"

但這不起作用。它沒有錯誤地退出,但在以下輸出中沒有出現“Hello”:

dmesg

我使用的是 Fedora 9,似乎沒有執行 syslogd/klogd 守護程序。但是,我所有的核心消息都已成功寫入 dmesg 緩衝區。

任何想法?

dmesg顯示核心緩衝區中的內容,而logger用於syslogd. 我認為如果您想將內容列印到核心緩衝區中,您將需要創建一個使用printk()核心函式的驅動程序。如果你只是想要它/var/log/messages,那麼使用“正常”設置我認為你所做logger的已經很好了。

驅動程序的最基本範例printk()是:

你好ç:

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

int init_module(void)
{
   printk(KERN_INFO "Hello world\n");
   return 0;
}

void cleanup_module(void)
{
   printk(KERN_INFO "Goodbye world\n");

}

生成文件:

obj-m += hello.o

all:
   make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

然後:

$ make
$ sudo insmod hello.ko
$ dmesg | tail -n1
[7089996.746366] Hello world

http://tldp.org/LDP/lkmpg/2.6/html/lkmpg.html#AEN121了解更多…

引用自:https://serverfault.com/questions/140354