Linux内核编译步骤

Linux内核编译步骤

      编译之前,一定要查看,内核源码中,Documentation/Changes文件,查看内核编译时,需要的运行环境,如果不适合编译和有可能失败。

    由于2.4和2.6内核的编译方法不是完全一样,所以我们分开两种情况讨论

      编译2.4内核:                                                         编译2.6内核

第一步:make mrproper -清理内核源代码树(清理垃圾信息)             make mrproper

第二步:make menuconfig   --配置内核以及内核模块                     make menuconfig

      (相关的命令还有make config、make oldconfig、make xconfig)

                       (交互问答式)(通过旧内核生成)(图形界面下编译)

      我们在这里推荐使用make menuconfig 这种方法操作最方便最直接。

      在进入内核配置菜单之后,原则上,自己有把握的可以更改,没有把握的切记不要乱改,否则会导致编译失败。

      更改的时候,*,表示编译进入内核————随系统启动而启动

                     M,表示编译进入模块————不随系统启动而启动,在需要的时候调用(一些不重要的外部驱动程序就可以作为内核模块编译,这样内核不会过大,也不会影响启动速度)

                     空,表示不编译进入内核也不编译进入模块————放弃这个功能,如果系统不支持这类功能,可以放弃

    最后退出的时候,提示保存,这里会将刚才的配置保存为一个名称为.config的配置文件,不管我们使用make menuconfig还是make oldconfig、make xconfig、make config,最终都为了生成这个.config文件,以后所有的操作,就会根据这个文件中的内容进行,这个文件,存储的就是我们刚才所做的改动,可以less .config查看一下。

第三步:make dep --生成依赖性关系

第四步:make bzImage --生成新内核                               make (2.6内核中将左边三个步骤简化为make)

     第五步:make modules --编译内核模块

  这三个步骤执行的时间比较长,所以,慢慢等吧!刚才这一步是执行时间最长的一步。

     第六步:make modules_install --安装内核模块

     第七步:make install --安装内核                 

     (所有的编译步骤最好在字符界面下进行,否则在图形界面下速度会比较慢)

     另外上面所提到的所有步骤,任何一步完成之后都要检查有没有出错,就是有没有显示error的字样,如果显示任何一步出错都要退回到make mrproper重来。

没有报错,似乎情况还不错。

但是不要高兴太早,还要进行进一步测试:

1. vi /etc/grub.conf -->查看是否有新的内核启动项生成。并修改default指向(0代表第一个,1代表第二个,以此类推)。

2. ls /boot -->查看是否有新的内核文件vmlinuz生成。

现在差不多行了,但是还要重启,看是否可以新的内核启动系统。我现在已经成功进入系统了,那么执行uname -a 检查一下我们现在是否使用新内核:

显示使用的内核是新内核,证明内核编译成功!

      大功告成!

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。