1.将内核源码包linux-2.4.22.tar.bz2 copy至/usr/src目录下:
#cp linux-2.4.22.tar.bz2 /usr/src
#cd /usr/src
2.用以下命令解开压缩包
#bzip2 -d linux-2.4.22.tar.bz2
#tar -xvf linux-2.4.22.tar
3.进入到以后编译时用的工作目录下:
#cd /usr/src/linux-2.4.22
6. #make mrproper
该命令保证源代码目录下没有不正确的.o文件(即object文件,编译c语
言时生成的,目的是下一步编译成可执行码时link之用)以及文件的相互
倚赖关系.第一次编译刚下载的源码包不用此命令,但如果多次使用这
些源码编译内核,那么一定要先运行本命令.
7. 开始编译内核
7.1. 在X Window下编译内核:
7.1.1 #make xconfig
假如在在文本模式下编译:
#make menuconfig
7.2接下来就是根据自己的实际情况进行选择
需要注意的事:1:如果你的linux的文件格式是ext3的那么文件系统中的ext3一定要选择上,不要作为可选择模块。不这样的话,你的系统就可能启不来。
2:本机的一些必要的驱动程序最好也直接加在,不要编译在可加载模块中。
因此在编译内核之前最后把准备工作做好,看清楚自己机子的硬件设备、驱动程序。
3:下面给出一些编译内核的具体选项的内容和含义,不同版本的可能选项有所不同
具体可以使用“?“来看某项功能是否对自己有用。
1.Code maturity level options:代码成熟等级。
1.1.prompt for development and/or incomplete code/drivers.
在Linux的世界里,每天都有许多人为它发展支持的driver和加强它的核心。但是有些driver还没进入稳定的阶段。但其作者很欢迎其他人去测试这些driver并提出一些bugs。很多参考书上说这是那些开发人员认为还不是很稳定的功能。但是我个人认为,这个是应该选的一个选项,系统默认是N,我建议还是选择Y,因为会使性能有所提高。 如果要减少内核的大小可以把所有后缀试验性质的代码全部不选。
2.Loadable module support:对模块的支持。
2.1.Enable loadable module support.
启动动态载入额外模块的功能,系统默认为Y,建议选择该功能。
2.2.Set version information on all module symbols.
通常,我们更新核心版本之后,模块要重新的编译。这个选项可以为某个版本的内核编译的模块在另一个内核下使用,但通常用不到,可以不选,系统默认为Y。
2.3.Kernel module loader.
让内核在启动时有自己装入必需模块的能力,建议选上。注意:在开机就会 mount 上来的 partition 的 FS 、device driver 记得要 compiler 进 kernel,不能把它弄成 modules。请不要夸张到为了完全模组化而忘了把ext2fs和IDE dirver compiler 进 kernel 里。通常的建议是如果可能,将内核代码编译成可加载模块,因为这样可以使内核更小,而且更稳定。警告!千万不要将文件系统(File System)部分的代码编译为可加载模块,如果你犯了这个错误,将文件系统(File System)部分的代码编译为可加载模块,结果将是内核无法读取它自己的文件系统。 然后内核无法加载它自己的配置文件——一些很明显是在正常启动Linux时所必需的东西。
3.Processor type and features:处理器类型和特色
3.1.Processor family.
它会对每种CPU做最佳化,所以要选择正确的CPU否则会对该机的性能有一定的影响。不过,如果您的gCC编译器是2.7.0版以前的。那么只能选择386或是486。通常“/dev/cpu”选项更高级,多数用户并不需要选择它。需要注意的是不能选择比你的CPU类型还高级的CPU,否则可能不能正常工作。
3.2.High Memory Support.
只有当你的计算机有超过1GB内存时才是必须的。因此“High Memory Support”通常并不使用。
3.3.Math emulation.
这项询问是否需L1nux核心模拟数学浮点运算器。如果有486Dx、AMD以及Pentium机器的话,这个选项就不必选了,因为它们都有内建的浮点运算器。系统默认为N。
3.4.MTTR (memory type range register)