设为首页 加入收藏

TOP

Linux 内核3.19.3编译过程
2015-07-16 12:57:09 来源: 作者: 【 】 浏览:8
Tags:Linux 内核 3.19.3 编译 过程

  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.配置内核


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


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



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


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


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ARM平台的内核模块编写与安装 下一篇C++基本数据类型解惑

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: