我写了一个简单的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
@Amir,遍历linux内核中的文件,w.r.t.所有使用machine_power_off()的体系结构文件,它不会导出,因此不能在模块中使用。