在源代码的目录下,有一个配置文件,.config文件,可使用默认的,也可使用
命令清除,而后从新配置内文配置文件,把/boot/下的配置文件拿来修改使用,或者在源代码下/arch/平台下ide
选择相应的配置文件,而后再这个基础上来配置本身的内核it
一、make distclean 清除一些临时文件,也可使用make clean和make mrproper
distclean是完全的清除,就是清除的更完全,其次是mrproper
二、make menuconfig 固然还有make config命令menuconfig是基于图形界面的配置
使用起来更方便
在配置里面选择CPU、文件系统、硬件模块等 内核的配置选项能够另外参考
配置项前面的选项,经过空格键选择为M和*或者 空 的不一样
选择为M A.C会变成A.O ,源代码会有编译的阶段,可是不在向下链接,造成了模块文件
选择为* A.C会变成A.O 在生成A.O后还会继续链接等,最后造成zImag,e
选择为 空 A.C不会发生变化,源代码没有编译的阶段编译
在/boot目录下的config-2.6.18...文件时当前运行的系统的配置文件,咱们能够参考
改文件来编译内核
固然内核源代码中也有配置参考文件,在arch/下相应的体系结构下面,咱们能够看到config文件
咱们能够拷贝他们到源代码目录下,而后参考配置
三、编译内核模块 make modules
编译完模块后,安装内核make modules_install,其实它的做用是把内核模块从内核源代码目录
copy到/lib/modules/下
四、制做init ramdisk
命令 makeinitrd initrd-2.6.18 2.6.18(后面的版本号根据具体本身内核的版本状况来写,是哪一个版本的内核,就写那个)class
完了后会在当前目录下生成initrd-2.6.18文件,这个就是ramdisk文件基础
五、安装内核版本
(1)把内核拷贝到/boot/目录下,
(2)把ramdisk文件拷贝到/boot目录下
(3)修改/etc/grub.conf文件,复制grub.conf文件最后几行,而后拷贝到最后几行
而后根据实际状况修改 title后面的信息,kenerl /***ro root=/....只能修改**中的位置module
重启,咱们发现grub下多了一个选择,第二个选择就是咱们刚编译过的内核配置
只是不明白本身编译的新内核,为何模块要copy到旧的文件系统/lib/module下?硬件