当前位置: 技术问答>linux和unix
linux 2.6.x与2.4.x之间有什么区别
来源: 互联网 发布时间:2016-07-11
本文导语: 以下是老师给的: /****test.c****/ #include #include int init_module() { printk("it is a null kernel modulen"); return 0; } void cleanup_module() { printk("i am a kernel module, now exiting ...n"); } 我的内核是2.6的,学校是2.4的拿回...
以下是老师给的:
/****test.c****/
#include
#include
int init_module()
{
printk("it is a null kernel modulen");
return 0;
}
void cleanup_module()
{
printk("i am a kernel module, now exiting ...n");
}
我的内核是2.6的,学校是2.4的拿回家用 gcc -c -DMODULE -D__KERNEL__ test.c编译不成功,
但是把#include去掉就行,但是,作出来的
.o文件装不到模块里,我觉得是不是内核2.6还得加什么参数吧
谢谢各位了
/****test.c****/
#include
#include
int init_module()
{
printk("it is a null kernel modulen");
return 0;
}
void cleanup_module()
{
printk("i am a kernel module, now exiting ...n");
}
我的内核是2.6的,学校是2.4的拿回家用 gcc -c -DMODULE -D__KERNEL__ test.c编译不成功,
但是把#include去掉就行,但是,作出来的
.o文件装不到模块里,我觉得是不是内核2.6还得加什么参数吧
谢谢各位了
|
你可以像下面一样,将其放到 kernel 目录下并创建一个 Makefile 来编译 ...
[root@bache hello]# pwd
/usr/src/kernels/2.6.27.21-170.2.56.fc10.i686/drivers/hello
[root@bache hello]# cat Makefile
obj-m := hello.o
[root@bache hello]# make -C ../.. M=drivers/hello
make: Entering directory `/usr/src/kernels/2.6.27.21-170.2.56.fc10.i686'
Building modules, stage 2.
MODPOST 1 modules
make: Leaving directory `/usr/src/kernels/2.6.27.21-170.2.56.fc10.i686'
[root@bache hello]# cat hello.c
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello, worldn");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel worldn");
}
module_init(hello_init);
[root@bache hello]#
|
楼主看一下《linux设备驱动第三版》前1-2章,有详细说明的
|
up
|
up