关于linux模块printk

时间:2012-05-09 12:38:58

标签: c linux module

我编写了一个模块,并希望将它添加到内核。当我修改模块时,它将打印一个世界。但它不会......

模块为:

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

static int __init hello_init()
{
    printk(KERN_EMERG"Hello World!\n");
    return 0;
}

static void __exit hello_exit()
{
    printk("<6>hello exit\n");
}

module_init(hello_init);
module_exit(hello_exit);

为什么加载模块时“Hello World!\ n”不打印? 有没有人遇到这个问题?想你的帮助......

2 个答案:

答案 0 :(得分:1)

可能是链接或标题问题。

您似乎还没有指定任何许可证,这可能是个问题。

您可以尝试此site,尤其是关于链接和加载部分。

答案 1 :(得分:1)

由于您没有收到编译/链接错误且insmod / modprobe没有抱怨丢失符号,因此有两个原因可以解决这个问题:

  1. 有人定义了一个宏printk()
  2. 你看错了地方。该文本将打印到syslog中。要查看该内容,请使用dmesg | tail