• Linux 内核编译


      Linux操作系统一直在不断的发展和完善,内核版本也在不断地更新。对于Linux的用户来说,如果不想显得自己太"Low",学会编译安装Linux 内核就变得非常重要。下面简单介绍一下编译和安装内核的过程。

    事实上Linux 支持的硬件系统是很多的,比如X86、ARM等等。本文只介绍基于X86系统的编译。

      巧妇难为无米之炊,要想编译内核首先得拿到内核的源代码吧。到www.kernel.org 网站上download一个,并在Linuxx系统下用"tar xzvf $version "解压开。这里我下载的是Linux-3.19.3.所以执行

    的是" tar xzvf Linux-3.19.3 "。解压完成的文件夹里面就是庞大的Linux 内核代码。下面开始介绍编译过程。

           编译的过程大致可以分为4步

      1.配置内核,得到配置文件 .config

      2.编译内核,得到 内核映像 zImage 和 内核模块映像 initrd-$version 

      3.安装内核

      4.清除文件

          1.配置内核

           为啥要配置内核?很简单,因为内核是适用于多个系统的,我们要根据自己的硬件系统制定出匹配的软件系统。

               进入解压开的内核源代码根目录,执行 “make menuconfig”命令,,会出现如下的界面:

        

            

          这里就是内核配置的菜单项,我们可以一项一项的选择,可是这么多选项,要知道哪个是需要的,哪个是不需要的可不是件容易的事儿。懒人自有懒人的方法,咱不是已经有了自己Linux系统么,咱看看现在系统的配置,仿照它就行。到/boot/目录下找到配置文件,这里我的是 config-2.6.32-279.el6.i686 文件。将这个文件copy 到内核根目录下。然后选择上面的 <load> ,进去以后将文件名填好。选择<OK>回到上面的界面,选择 <save>,将文件名命名为.config 然后退出。

         回到内核根目录使用 ls -a 查看配置文件,如果有个.config 的文件则说明配置成功了。

      2. 编译内核

      其实编译内核可以细分为4步:

      2.1 编译内核文件:使用make bzImage 命令开始编译,整个编译过程非常漫长,可以达到15+分钟,如果电脑残点的可以用到半个小时。编译完成后会在 arch/X86/boot/下找到一个bzImage

                的内核映像文件。

      2.2 编译内核模块:首先为啥有了内核文件还有个内核模块呢?因为整个Linux操作系统是非常庞大的,如果所有的文件都放在bzImage 里,那系统就会显得非常臃肿而且占空间。并且有些服务平时是不会用到的,所以就把这些需要用到才加载的文件编译成内核模块,等用到的时候在加载到内存运行。那怎么编译内核模块呢?很简单,执行命令 make modules 就行。编译好的内核模块散落在各个文件夹里,后缀都是 .ko 。

          2.3 将编译好的内核模块/lib modules/目录下:make modules_install。执行完这个命令之后到/lib/modules/目录下可以看到相应的目录<我的就有两个目录2.6.32-279.el6.i686 和 3.19.3>

      2.4 制作initramdisk:将编译好的内核模块文件打包成一个文件,执行命令 mkinitrd  initrd-$version  version 如我的就是 mkinitrd  initrd-3.19.3  3.19.3。完成以后会在目录下出现内核模块文件 initrd-3.19.3 。至此,编译阶段完成。

      3.安装内核:经过前面的编译阶段,我们得到了两个文件,分别是 bzImage 和initrd3.19.3 ,所谓的安装其实就是将这两个文件copy 到/boot/目录下,然后修改启动项/etc/grub.conf里面的加载内核文件和内核模块文件就行。最后重启电脑即可用到我们刚刚编译好的内核。

      4.清除文件:安装完成以后我们还得把内核代码里留下的痕迹清理。执行命令 make distclean 即可。

    至此,编译安装内核的工作已经完成。

       

  • 相关阅读:
    四则运算 calc()
    如何创建width与height比例固定的元素
    eslint规则 中文备注
    使用gulp构建工具
    JavaScript 给表格排序
    【转】grunt动态生成文件名
    vim正则表达式(转)
    正则表达式30分钟入门教程(转)
    hdu 1874 Dijkstra算法
    centos7.4安装mysql
  • 原文地址:https://www.cnblogs.com/linzizhang/p/4422587.html
Copyright © 2020-2023  润新知