Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26269
  • 博文数量: 17
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 198
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-10 23:41
个人简介

记录点滴……

文章分类

全部博文(17)

文章存档

2018年(1)

2015年(3)

2014年(11)

2013年(2)

我的朋友

分类: LINUX

2014-10-20 15:53:57

基本步骤

    1.获取内核源码

        我下载的是的稳定版,主机是ubuntu虚拟机;我把这个文件放在了我的home目录下的kernel_source目录下;这个文件是tar.xz的压缩包,所以得用xz命令来解压,
    如果系统不支持则需要下载该文件,我的下载方式是:
        sudo apt-get install xz_utils
    然后,进入源码包所在的目录kernel_source:
        cd    /home/kernel_source
    接着使用xz指令解压之前下载的内核压缩包:
        xz    -d    linux-3.2.63.tar.xz
    得到linux-3.2.63.tar,使用tar进行解包:
        tar -xvf    linux-3.2.63.tar
     最后进入解压后得到的目录里面,基本上含有如下相关内容:
        1)arch:与硬件平台有关的内容;
        2)block:与块设备相关的内容;
        3)crypto:核心所支持的加密技术;
        4)Documentation:与核心有关的说明;
        5)drivers:硬件的驱动程序;
        6)firmware:固件;
        7)fs:核心所支持的文件系统;
        8)include:系统调用的头文件;
        9)init:核心初始化程序;
        10)ipc:系统进程间通信相关的内容;
        11)kernel:核心最基本的功能;
        12)lib:函数库;
        13)mm:内存管理相关的内容;
        14)net:网络模块相关的内容;
         ......

    2.编译前处理

        确认好我们硬件平台的类型以及我们的需求;
        make mrproper,这条指令是为了保持干净的核心源码,用来删除其中的中间代码文件以及相关的配置文件,请注意,
    这条指令会将你之前的核心功能配置文件也删除掉,所以这条指令最好是第一次编译核心源码的时候使用,
    其它时间都是用make clean来清除之前编译 后产生的残留数据即可;
        make menuconfig,如果系统提示“ncurses-devel”相关的错误信息,则需要下载安装libncurses5-dev即:apt-get install libncurses5-dev
    make menuconfig会产生一个界面,用来配置核心相关的配置选项并保存,由于里面内容繁杂,必须多接触接触才能透彻理解相关的选项功能,
    本人也是第一次接触,需要等到熟悉之后再回来把相关内容添加进来。

    3.内核的编译与安装

         编译
             make clean,清除之前残留的文件;
             make bzImage,编译内核,成功后,boot目录下会产生对应的文件,如果内核较小的话,可使用make zImage指令;
             make modules,编译模块;
             make modules_install,安装模块,成功后,/lib/modules下会多出一个3.2.63-harron文件夹,就是执行这条指令产生的。

         手动
              把编译产生的内核文件放到系统的boot/目录下:
                  cp    /boot/bzImage    /boot/vmlinuz-3.2.63-harron
             建立相对应的initrd文件:
                 mkinitramfs -o    initrd.img-3.2.63-harron    3.2.63-harron    

             编辑开机选项,使得内核文件能够被系统识别,并可以被用户选择;
             1)修改/etc/default/grub文件,主要修改下面两个变量:
                    注释掉 GRUB_HIDDEN_TIMEOUT=0;显示当前所有的内核版本并让用户选择
                    GRUB_TIMEOU改为-1;当前界面一直存在,知道用户选择了内核版本
             2)使用update-grub指令更新grub.cfg文件。
                        
             重启机器选择相应的内核,系统启动后,输入如下指令:
                    uname -a
            输出的内容如下:
                    Linux harron-desktop 3.2.63-harron #1 SMP Mon Oct 20 12:56:31 CST 2014 i686 GNU/Linux
            即可知道当前的Linux内核为3.2.63。
阅读(226) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~