我正在开发我的第一个内核模块。我已经完成了Linux内核模块编程指南中的一些练习,但这是我第一次没有任何指导。
当我使用printk或pr_err宏来打印消息时,除非我打印另一条消息,否则journalctl _ the不会跟上。
例如
int init_module()
{
pr_err("This is a message");
}
void cleanup_module()
{
pr_err("this is a second message");
}如果我插入这个模块,那么journalctl将不会显示任何内容。当我使用rmmod时,journalctl将显示这两条消息,并且时间戳是相同的。
如果我插入了这个模块,那么在我插入第二个模块之后,打印这两条消息的另一个模块将会显示出来。两个消息的时间戳将是相同的。
发布于 2015-09-27 23:34:06
如果printk的消息不包含换行符,则其输出可能会延迟。
通常,您需要
pr_err("This is a message\n");有时,使用KERN_INFO或KERN_ALERT也会强制立即输出消息。但是终止\n的方法似乎更清晰。
摘自对this question的回答。
https://stackoverflow.com/questions/32487876
复制相似问题