内核编译,安装

之内核linux-3.15.6.tar.xz为例,在ubuntu14.04下进行。。linux

第一步:配置内核。ubuntu

1,对内核进行解压。vim

      $tar  -Jxvf linux-3.15.6.tar.xz  (注意:J是大写的)
架构

获得文件夹linux-3.15.6ide

2,配置内核,因为内核源码是对多个计算机架构设计的,所以在编译以前要对内核的功能进行选择。spa

     配置内核完成后会在linux-3.15.6文件夹下造成.config文件,这个文件就是内核功能列表文件,/boot/config-3.15.6就是根据这个.config来的。在linux-3.15.6注意:本文的全部命令都是在此目录下进行目录下经常使用的配置方法有:架构设计

(1),$make  oldconfig
设计

这个命令使用存在的./.config的内容,使用该文件的内容做为默认,而后把新内核增长的功能列出来让用户选择,能够大大简化选择功能的过程。源码

(2),$make menuconfigit

(3),$make xconfig

(4),$make gconfig

(5),$make config

以上命令选择之一,具体怎样选择功能,看其它的资料吧(绝对是个复杂的过程)。。


第二步:编译内核

选择(1)$make  vmlinux  (获得的是未压缩的内核)

选项(2)$make bzImage (获得的是压缩的内核)

实际的编译内核经常使用的是:

$make  clean

$make  bzImage

上述两个命令可能花费不少时间(make  -j4  bzImage能够节约不少时间,4指的是cpu的核数)。

编译完成后会在arch/x86/boot/bzImage发现内核该内核文件。。


第三步:编译模块

编译模块是由于 全部的功能若是都放在内核文件bzImage中就会致使内核比较大,因此把一些不经常使用的功能变成模块,须要使用的时候自动加载。哪些功能须要编译成模块仍是在内核中,在配置内核的阶段已经选择过了。

编译模块的命令:

$make modules

会花很长的时间。。


第四步:安装模块

模块文件是在/lib/modules/`uname -r` 下的,要把模块文件安装正确的位置,须要的命令

$make modules_install

就会在/lib/modules下找到3.15.6的文件夹。。说明模块成功安装了。。


第五步:安装内核

系统的内核是在/boot/下的,且文件名通常未vmlinz-版本(vmlinz-3.15.6),所以须要将内核复制到目的目录下:

$sudo cp /arch/x86/boot/bzImage   /boot/vmlinz-3.15.6

这样内核就算安装好了。。


第六步:保存.config文件:

$sudo cp  .config  /boot/config-3.15.6


第七步:创建与修改相关文件

1,创建inintrd.p_w_picpath-3.15.6文件

$mkinitramfs -o  initrd.p_w_picpath-3.15.6  3.15.6

$sudo cp initrd.p_w_picpath-3.15.6 /boot/

(注意:后面那个3.15.6是根据/boot/modules/下的模块文件夹3.15.6来的)

2,修改grub2,文件/boot/grub/grub.cfg

$sudo vim /boot/grub/grub.cfg

加入有关 vmlinz和initrd的信息,具体能够参照grub.cfg中的其它一些选项来写。。


注意:用make编译的时候能够加参数 例如 make  -j4  bzImage;这样能够加快编译的速度。。

相关文章
相关标签/搜索