3.1Linux内核的配置和编译

Linux内核的配置和编译 linux

之因此要对内核进行配置,这是不少都是硬件的需求,和软件的需求。就是选择本身须要的,去掉本身不要的。 spa

配置内核的方法: 3d

  1. make config:基于文本模式的交互式配置。
  2. make menuconfig:基于文本模式的菜单型配置。

 

上面有两种配置方法,可是make config是几乎不用的。他是一问一答的配置方法。很费时间。因此,都是采用make menuconfig来配置内核的。 blog

1.3内核配置结果 内存

内核配置一般在一个已有的配置文件基础上,经过修改获得新的配置文件,linux内核提供的一系列能够供参考的内核配置文件,位于Arch/$cpu/configs. 源码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. 内核编译:
    1. 编译内核。
    2. 编译内核模块
    3. 制做ramdisk。

2.1编译内核: flash

    make zImage: it

    make bzImage: io

区别:在X86平台,zImage只能用于小宇512K的内核。 编译

若是须要浏览详细的编译信息,可以使用参数V=1。

便是:

    make zImage V=1

    make bzImage V=1

编译好的内核位于arch/<cpu>/boot目录下。

 

 

 

接下来是配置的简单实例:

  1. 运行make menuconfig:

    而后选择倒数第二项Load an Alternate Configuration File:

    选择咱们准备好的配置文件:(放在该linux源码的根目录的):

    而后保持退出。这样,咱们就完成了一个配置文件的导入。接下来咱们就能够在此基础上进行修改,去掉咱们不要的,加上咱们想要的功能。最后,保存修改退出。这样就配置好了一个内核。

    而后执行make bzImage。进行内核编译。

    编译好的内核文件存放在/arch/x86/boot/。如上所显示的。

     

     

     

     

     

    2.2编译内核模块

        1.make modules.

        2.make modules_install.

    编译内核模块。

    将编译好的内核模块,从内核源代码目录复制到/lib/modules下,为打包作准备。

     

     

     

     

     

     

     

     

     

    接下来就是编译内核模块:make modules。[M]表示的就是内核模块。

    通过差很少一个多钟,内核模块编译完成:

    编译完成的内核模块是散落在咱们linux内核的各个文件夹里的。因此咱们须要把他们收集起来,打包。

    在打包前咱们先看一下/lib/modules目录:

    这是原来系统的。

    接着咱们执行:make modules_install这个命令:

    开始安装内核模块:

    这其实不是在安装,是在将散落的内核模块集中到咱们的/lib/modules目录下面。

    完成以后,咱们查看一下/lib/modules目录:

    咱们看到增长了一个目录:2.6.39.里面就是咱们编译好的内核模块。

    接下来就是将它打包:

    命令:

    最后在/boot/的目录下会有:initrd.img-2.6.39:

     

    接着将内核拷贝到该目录:

    最后就是修改/boot/grub.conf/grub.cfg增长刚才内核的启动项。

    保存退出,从新启动。

    登录时选择从咱们刚才制做的内核启动。登录后,使用uname -r 命令查看内核的版本号:

    这个就是咱们刚才制做的内核。咱们看见,全部的文件资料都没有变化。这是咱们更换的只是运行在内存的内核,而运行在硬盘/flash的文件系统没有变化。

     

    用户空间的文件系统:在硬盘/flash.

    内核:运行在内存。

    4.清理内核

    1.make clean.

    2.make distclean.

     

     

     

    咱们清理的就是在配置和编译的时候产生的中间文件。Make clean是清除.o文件,Make distclean是清除全部生成的的中间文件。

相关文章
相关标签/搜索