当前位置: 技术问答>linux和unix
在Linux-2.6.3中加载内核模块的问题。UP有分!
来源: 互联网 发布时间:2015-06-16
本文导语: 我使用的Linux是Mandrake10,内核为Linux-2.6.3,module-init-tools version 3.0-pre9,在其下编写一个内核模块: #define MODULE #define __KERNEL__ #include int init_module() { return 0; } void cleanup_module() { } 使用如下命令编译: gcc -c...
我使用的Linux是Mandrake10,内核为Linux-2.6.3,module-init-tools version 3.0-pre9,在其下编写一个内核模块:
#define MODULE
#define __KERNEL__
#include
int init_module()
{
return 0;
}
void cleanup_module()
{
}
使用如下命令编译:
gcc -c -I/usr/src/linux-2.6/include -o test.ko test.c
在使用如下命令加载时:
insmod test.ko
出现如下错误:
insmod: error inserting 'test.ko': -1 Invalid module format
请问各位大虾:该如何解决?
#define MODULE
#define __KERNEL__
#include
int init_module()
{
return 0;
}
void cleanup_module()
{
}
使用如下命令编译:
gcc -c -I/usr/src/linux-2.6/include -o test.ko test.c
在使用如下命令加载时:
insmod test.ko
出现如下错误:
insmod: error inserting 'test.ko': -1 Invalid module format
请问各位大虾:该如何解决?
|
由于本人对编译命令不是很明白,所以当初就这样做了
将en3.c请在drivers目录下,然后使用以下命令编译就OK了
gcc -Wp,-MD,drivers/.en3.o.d -D__KERNEL__ -Iinclude -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -Iinclude/asm-i386/mach-default -nostdinc -iwithprefix include -DMODULE -DKBUILD_BASENAME=en3 -DKBUILD_MODNAME=en3 -c -o drivers/en3.o drivers/en3.c
当然了,这条编译命令要根据具体环境决定,只作参考
将en3.c请在drivers目录下,然后使用以下命令编译就OK了
gcc -Wp,-MD,drivers/.en3.o.d -D__KERNEL__ -Iinclude -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -Iinclude/asm-i386/mach-default -nostdinc -iwithprefix include -DMODULE -DKBUILD_BASENAME=en3 -DKBUILD_MODNAME=en3 -c -o drivers/en3.o drivers/en3.c
当然了,这条编译命令要根据具体环境决定,只作参考
|
我以前也遇到过此问题
是编译的原因
是编译的原因
|
捧場,問題不會,給點分,outdachong