linux 内核模块不自动加载

linux kernel module not autoloading

我正在研究 linux 内核并从 hello world 模块开始,此时一切正常,但编译后

$ make

并安装

$ insmod akmod.ko

模块未在 KERN_DEBUG

上显示 "hello world" 消息
$ dmesg
nothing here
$

只在 rmmod 上显示

$ rmmod akmod
[4543.3423432] hello world
[5462.5323452] goodbye

代码与此处相同:http://www.makelinux.net/ldd3/chp-2-sect-2

我刚刚将 KERN_ALERT 更改为 KERN_DEBUG

我正在使用 Debian 8。

我认为发生这种情况是因为模块没有在 insmod

上自动加载

当我运行

$ make menuconfig

我找不到选项自动内核模块加载

Loadable module support  --->
  [*] Enable loadable module support
  [*]   Module unloading
  [ ]   Module versioning support (EXPERIMENTAL)
  [*]   Automatic kernel module loading **(My menu config don´t show this option)**

如有任何建议,我们将不胜感激

有时在发出 printk 和在 dmesg 中显示消息之间会有一些延迟。您可以从 dmesg 输出中看到:"hello world" 的时间戳比 "goodbye".

的时间戳少 80 秒

不知道为什么,消息的级别越高,延迟越小。您可以尝试 KERN_INFO 甚至 KERN_ALERT.

您所描述的内容听起来好像您没有在 printk 末尾包含换行符(“\n”)。

因为您没有分享您的实际代码,而且您的 insmod 显然不是来自示例。 (insmod akmod.ko?为什么是 akmod?akmod 是完全不同的东西。)调试这完全是猜测。