linux内核编译


本次实验平台为ubuntu14.04   内核版本为3.13.0-32-generic


1.     http://www.kernel.org 下载核心源码。

2.     切换至超级用户,并且解压内核文件到/usr/src/
       su root
       tar xvJf linux-3.15.6.tar.xz -C /usr/src/

3.     内核解压后一般有一下几个重要目录:

        arch :与硬件平台有关的项目,大部分指的是CPU 的类别,例如 x86,x86_64, Xen 虚拟支持等;

        block :与成组训备较相关的设定数据,还包括类似是否允许ext3等文件系统支持等;

        crypto :内核所支持的加密的技术,例如 md5 戒者是 des 等等;

        Documentation:与内核有关的说明文件;

        drivers :一些硬件的驱劢程序;

        firmware :一些旧式硬件的微脚本数据;

        fs :内核所支持的filesystems ,例如vfat, reiserfs, nfs 等等;

        include :一些可以让其他过程调用的标头 (header) 定义数据;

        init :一些内核初始化的功能,包括挂载与init程序的呼叫等;

        ipc :定义Linux 操作系统内各程序的沟通;

        kernel :定义内核的程序、内核状态、线程、程序的讯号(signle) 等;

        lib :一些函数库;

        mm :与内存单元有关的各项数据,包括swap 与虚拟内存等;

        net :与网络有关的各项协议数据,还有防火墙模块(net/ipv4/netfilter/*) 等等;

        security :包括 selinux 等在内的安全设定;

        sound :与音效有关的各项模块;

        virt :与虚拟机有关的信息。

4.    内核编译前处理

       进入工作目录,恢复干净源码
       cd /usr/src/linux-3.15.6
       make mrproper (删除编译产生的目标文件和配置文件) 
       make clean (仅删除编译产生的目标文件)

5.    挑选内核功能

       使用已存在的.config (/boot/config-3.13.0-32-generic) 为默认值,
       叧将新版本核心内的新功能选项列出供用户选择。 (推荐方式)
       make oldconfig (新功能一般选n就行了)

       



       或者,图形界面下挑选核心功能
       需要安装支持软件包(sudoapt-get install libncurses5-dev)
       make menuconfig

       


       经过这一步后可与可以发现源码目录下多出一个.config文件。

       

6.    编译核心与核心模块(时间较长,请耐心等待)
        首先编译核心
        make bzImage (编译好后的核心放在./arch/x86/boot/bzImage)
        编译模块
        make modules 

7.    安装模块(模块放置在/lib/modules/)
        make modules_install

       安装好之后 /lib/modules/ 目录结构

       

8.    复制核心、配置文件到/boot 
       make install   

9.    重新创建initrd文件(makeinstall创建的initrd不可用)
       cp .config /boot/config-3.15.6
       mkinitramfs -o /boot/initrd.img-3.15.6 -v 3.15.6

10.   编辑grub
       update-grub 

11.   重启计算机,查看系统信息
       uname –a

       

 

 


posted @ 2014-08-11 19:34  coderkl  阅读(108)  评论(0编辑  收藏  举报