新建内核树及编译内核模块

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默认是没有内核树的,需要重新建立

posted on 2011-08-17 17:46  image eye  阅读(898)  评论(0编辑  收藏  举报