dmesg 没有显示 printk 语句 [英] dmesg is not showing printk statement

查看:25
本文介绍了dmesg 没有显示 printk 语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个 proc 条目.我的 init_module 函数如下

I'm trying to create a proc entry. My init_module function is as below

int init_module()
{
printk(KERN_INFO "proc2:Module Loaded
");
proc_entry=proc_create_data(proc_name,0644,NULL,&fops,NULL);
if(proc_entry==NULL)
{
    printk(KERN_INFO "proc2:Error registering proc entry");
}
else
{
    printk(KERN_INFO "proc2:Proc Entry Created");
}
return 0;
}

以下是清理方法

void cleanup_module()
{
printk(KERN_INFO "proc2:module unloaded");
remove_proc_entry(proc_name,proc_entry);
}

程序的其余部分包括变量定义和回调函数.

rest of program include variable definition and callback functions.

当我编译这个程序时,它编译得很好.当我使用 insmod 时,它不会回复我提示.lsmod 列出了我的模块和一个人使用的节目(不知道是什么).dmesg 未显示上述任何 printk 消息.

when i compile this program it compiles well. when i use insmod it doesn't reply me prompt. lsmod lists my module and shows used by one (don't know what). dmesg shows none of the above printk messages.

你能告诉我这里有什么问题吗?

can you tell me what's wrong here?

推荐答案

Try echo "7" >/proc/sys/kernel/printk 启用所有控制台日志级别.

Try echo "7" > /proc/sys/kernel/printk to enable all console log levels.

数字对应如下:

#define KERN_EMERG "<0>" /* system is unusable*/
#define KERN_ALERT "<1>" /* action must be taken immediately*/
#define KERN_CRIT "<2>" /* critical conditions*/
#define KERN_ERR "<3>" /* error conditions*/
#define KERN_WARNING "<4>" /* warning conditions*/
#define KERN_NOTICE "<5>" /* normal but significant condition*/
#define KERN_INFO "<6>" /* informational*/
#define KERN_DEBUG "<7>" /* debug-level messages*/

默认数字是 4,它允许控制台至少显示 KERN_WARNING 中的消息.这就是您在 KERN_INFO 级别看不到登录的原因.

The default number is 4, which allows console to show messages only at least in KERN_WARNING. That's why you cannot see log in KERN_INFO level.

这篇关于dmesg 没有显示 printk 语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆