Linux

模組延遲列印到核心日誌

  • November 13, 2014

我創建了一個基本的 linux 核心模組,它執行以下操作:

static __init int init(void)
{
 printk(KERN_DEBUG "Banana");
 return 0;
}

而且當然:

module_init(init);

奇怪的是,我通過插入模組後找不到字元串“香蕉”

insmod banana_module.ko

命令

dmesg -k | grep Banana

不返回任何東西。

但是,當我卸下模組並重新插入時,我可以找到它。然後我找到了兩個香蕉,一個來自之前的,一個來自目前插入的。這是因為沖洗問題嗎?我覺得這種行為有點奇怪,在網際網路上找不到類似的問題。

順便說一句,這發生在我桌面上的虛擬機和筆記型電腦上(沒有虛擬機)。

那麼,為什麼核心不喜歡香蕉呢?

我已經弄清楚問題出在哪裡:

我沒有在核心消息的末尾指定結束符 \n。如果您將其排除在外,則其行為與上述類似。原因是,核心消息被視為僅在完成時才列印出來的記錄。有關更多資訊,請參閱有關 printk 問題的文章

引用自:https://unix.stackexchange.com/questions/167655