0

我写了一个模块,想把它添加到内核中。当我安装模块时它会打印一个世界。但它不会......

模块为:

#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”不打印?有人遇到这个问题吗?想你的帮助....

4

2 回答 2

1

也许这是一个链接或标题问题。

看来您也没有指定任何许可证,这可能是个问题。

你可以试试这个网站,尤其是关于链接和加载部分。

于 2012-05-09T12:49:06.577 回答
1

由于您没有收到编译/链接错误并且insmod/modprobe没有抱怨缺少符号,因此发生这种情况的原因有两个:

  1. 有人定义了一个宏printk()
  2. 你看错地方了。文本将打印到系统日志。要看到这一点,请使用dmesg | tail
于 2012-05-09T12:54:42.033 回答