0

我写了一个简单的 Linux 内核模块:

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

static int my_init(void)
{
    machine_power_off();
    return  0;
}

static void my_exit(void)
{
    return;
}

module_init(my_init);
module_exit(my_exit);

源代码编译成功,但在安装模块 ( insmod) 后出现以下错误:

Error: could not insert module my_module.ko: Unknown symbol in module

系统日志错误:

Jun 25 21:50:00 my-virtual-machine kernel: [31625.207827] my_module: Unknown symbol machine_power_off (err 0)

我该如何解决这个错误?

machine_power_off:

http://lxr.free-electrons.com/ident?i=machine_power_off

4

1 回答 1

1

@Amir,遍历了linux内核中的文件,写了所有使用machine_power_off()的架构文件,它没有被导出,所以不能在你的模块中使用。

于 2013-07-04T03:48:55.927 回答