编译Linux内核

在源代码的目录下,有一个配置文件,.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下?硬件

相关文章
相关标签/搜索