- 论坛徽章:
- 0
|
下面是代码 hello.c
#ifndef __KERNEL__
#define __KERNEL__
#endif
#ifndef MODULE
#define MODULE
#endif
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
static int hello_init(void)
{
printk(KERN_ALERT "Hello, The fucking crazy world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Bye, The fucking crazy world!\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("albcamus <albcamus@163.com>");
MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_SUPPORTED_DEVICE("testdevice");
下面是编译用的makefile
obj-m := hello.o
KERNELBUILD := /lib/modules/`uname -r`/build
default:
make -C $(KERNELBUILD) M=$(shell pwd) modules
clean:
rm -rf *.o .*.cmd *.ko *.mod.c .tmp_versions
我的内核版本是 2.4.20-8 ,用的red hat 9,没有从新编译内核,因为我用的vmware编译内核需要/usr 文件系统有>10G的空间,编译时报错了
我的
/usr/include/linux/version.h 中的
#define UTS_RELEASE "2.4.20"
改为
#define UTS_RELEASE "2.4.20-8"
错误是
/usr/src/linux-2.4.20-8/include/linux/kernel.h:68: parse error before numeric constant
/usr/src/linux-2.4.20-8/include/asm/processor.h:82: parse error before numeric constant
/usr/src/linux-2.4.20-8/include/linux/module.h:187: invalid suffix on integer constant
还有很多类似错误,大侠们帮忙看看到底应该怎么解决 |
|