Fedora 8安装过后的内核版本是2.6.23.1-42.fc8-i686,想构建一个内核树,其实原因有几点,听说发行版本的内核很多都经过特别配置,所以某些方面不太适合Linux模块的编写等,而且能多动手也是不错的。
选择的内核版本和发行版本的一样,2.6.23.1,有些建议编译个新一点的,但就怕那些工具不适合,所以编译和发行版本相近的估计错误较少。
1.下载linux-2.6.23.1.tar.bz2,保存在/usr/src/kernel/中
2.tar -xjvf linux-2.6.23.1.tar.bz2,解压缩内核文件,并进入该目录
3.执行make mrproper
4.开始配置内核,我选择默认的配置,make defconfig
5.编译内核 make 这一步需要相当多的时间
6.编译模块 make modules
7.安装模块 make modules_install
8.执行安装 make install,
文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/6_system/linux/Linuxjs/200896/139482.html
//hello.c
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("DUAL BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "hello world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "goodbye,boy\n");
}
module_init(hello_init);
module_exit(hello_exit);
//makefile
obj-m := hello.o
PWD := $(shell pwd)
KVER := $(shell uname -r)
KDIR := /lib/modules/$(KVER)/build
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
rm -f *.o *.ko *.mod.c .hello*
之后,就可以在终端执行make命令,来完成模块编译了
如果没有内核树,使用上面的Makefile文件进行编译,是不会成功的,而fedora6默认是没有内核树的,需要重新建立