linux-2.6.11内核编译笔记

来源:互联网 发布:不锈钢除味皂 知乎 编辑:程序博客网 时间:2024/06/06 03:37

一、绪论:

Linux以其开源的开发方式赢得了越来越多人的关注,而作为操作系统的核心的内核尤为重要。

linux的开发中采用了集市模型(bazaar,与cathedral--教堂模型对应)的版本控制方式,即Linux采用了双树系统。一个树是稳定树(stable tree),另一个树是非稳定树(unstable tree)或者开发树(development tree)。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。一旦开发树经过了足够的发展,开发树就会成为新的稳定树。开发数就体现在源程序的版本号中;源程序版本号的形式为x.y.z:对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大一(奇数)。下载内核版本请访问http://www.kernel.org

Linux中定制内核为linux系统提供了更好的处理方式,可以根据用户自己的系统度身定制一个更高效,更稳定的内核。Linux下内核的编译模式有如下二种:直接加载到内核中(build-in)方式和动态加载到内核中(module)。前一种方式在内核启动时就可以支持相应部分的功能,这样的优点是方便、速度快,机器一启动,就可以使用这部分功能了;缺点是会使内核变得庞大起来,不管是否需要这部分功能,它都存在(例如:Windows)。后一种方式则可以动态的加载和卸载,在需要模块进行处理时加载内核模块,使用完毕后则进行卸载,这样不会使得内核过分庞大,缺点是必需通过命令来加载。

二、本文的写作内容

本篇文章涉及的内容:

1.       linux-2.6.11内核的编译过程

本篇文章不包含的内容:

1.        内核编译中模块功能选项说明

2.       Linux内核编译中有关编译错误

三、文章正文

1.       下载linux2.6.11版本,在ftp://ftp.kernel.org/pub/中找到相关版本的压缩包 linux-2.6.11.tar.bz2

2.       将压缩包放到/usr/src/redhat/SOURCES/下,解压缩包:

$tar -xvf linux-2.6.11.tar.bz2

3.         /usr/src/redhat/SOURCES/下得到解压后的文件linux-2.6.11,linux-2.6.11当前目录下进行编译,在进行以下几步之前,先要对linux-2.6.11中的一个头文件进行修改

i2c.h中对58197行进行修改,修改内容如下:

extern int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],int num);

修改为

extern int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msg,int num);

4.         清除当前目录下编译设置:

$make mrproper

该命令确保目录下没有相关的文件和配置,如果已经编译过linux内核,建议使用该命令

5.         配置内核模块的功能,有几种方式可以进行界面选择:

$make config(文本的配置方式,需要用户自己写配置文件)

$make menuconfig(文本选单的配置方式,在有字符终端下才能使用)

$make xconfig(图形窗口模式的配置方式,必须支持Xwindow下才能使用)

$make oldconfig(文本配置方式,在原内核配置的基础修改时使用)

这里推荐make xconfig方式,图形窗口的配置比较直观,对应每一项相应的配置时,有三种选择:

Y-该模块编译进内核

N-该模块不编译进内核

M-该模块编译成可加载内核模块

     内核编译中各项模块功能的选择请参考其它文章(参见参考文献)。

6.         内核模块文件连接   

$make

在进行该步时如果出现错误,而且这些错误支持的模块省略了对编译没有影响,可以去掉,在进行了修改之后要重新进行make

7.          内核模块的编译       

$make modules

8.          内核模块的安装       

$make modules_install

9.          安装环境的安装        

$make install

 三、参考文献

文章名

作者

来源

Linux内核编译

b_2_bomber    6

http://www.linuxbbs.cn/TopicOther.asp?t=5&BoardID=71&id=424

Linux操作系统的内核编译内幕详解

 

http://school.21tx.com

Linux内核完全剖析

赵炯

机械工业出版社

The Linux Installation HOWTO

Eric Steven Raymond

http://www.kernel.org

 

 

 
原创粉丝点击