当前位置: 技术问答>linux和unix
请教一个insmod时的内核版本问题
来源: 互联网 发布时间:2015-07-27
本文导语: 这是最简单的一个模块程序 #define MODULE #include int init_module(void) { printk("Hello,world!n"); return 0; } void cleanup_module(void) { printk("Goodbye cruel world!n"); } 我编译出hello.o以后使用 insmod hello.o出错,大概是说...
这是最简单的一个模块程序
#define MODULE
#include
int init_module(void)
{
printk("Hello,world!n");
return 0;
}
void cleanup_module(void)
{
printk("Goodbye cruel world!n");
}
我编译出hello.o以后使用
insmod hello.o出错,大概是说
hello.o is compiled for kernel 2.4.20 while the kernel now is 2.4.20-18
请问这样的问题该怎么解决呀?2.4.20-18不就是在2.4.20基础上修正了一些用户报告的BUG吗?
谢谢!
#define MODULE
#include
int init_module(void)
{
printk("Hello,world!n");
return 0;
}
void cleanup_module(void)
{
printk("Goodbye cruel world!n");
}
我编译出hello.o以后使用
insmod hello.o出错,大概是说
hello.o is compiled for kernel 2.4.20 while the kernel now is 2.4.20-18
请问这样的问题该怎么解决呀?2.4.20-18不就是在2.4.20基础上修正了一些用户报告的BUG吗?
谢谢!
|
要指出当前版本的kernel源代码的位置
-I/usr/src/linux-2.4.20-18/include
-I/usr/src/linux-2.4.20-18/include
|
When you compile hello.c, add -I/usr/src/linux-2.4.20-18.
If you don't add -I..., gcc will use /usr/include/linux/module.h.
If you don't add -I..., gcc will use /usr/include/linux/module.h.