Linux 内核3.19.3编译过程

  Linux操作系统一直在不断的发展和完善,内核版本也在不断地更新。对于Linux的用户来说,如果不想显得自己太"Low",学会编译安装Linux 内核就变得非常重要。下面简单介绍一下编译和安装内核的过程。事实上Linux 支持的硬件系统是很多的,比如X86、ARM等等。本文只介绍基于X86系统的编译。

  巧妇难为无米之炊,要想编译内核首先得拿到内核的源代码吧。到 网站上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 内核3.19.3编译过程

这里就是内核配置的菜单项,我们可以一项一项的选择,可是这么多选项,要知道哪个是需要的,哪个是不需要的可不是件容易的事儿。懒人自有懒人的方法,咱不是已经有了自己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 即可。

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

Ubuntu 13.10 (Saucy Salamander) 内核已升级至 Linux Kernel 3.10 RC5

Linux Kernel 3.4.62 LTS 现已经提供下载  

如何在Ubuntu 13.10上安装Linux内核 3.12  

如何在Ubuntu 14.10,Ubuntu 14.04及其衍生版本安装 3.16.7 CKT2内核  

Linux Kernel 的详细介绍请点这里
Linux Kernel 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/76e86b19d32e80f202ac21071e7d75e6.html