---------------------------------------------------------
Author : Shawn Lee
WebSite :http://blog.csdn.net/twelvelee
Email :xiaofengoffice@163.com
Update-Time :2011年12月1日14:45:00
Shawn声明:本人鄙视直接复制本人文章而不加出处的个人或团体,
但不排斥别人转载Shawn Lee的文章,只是请您注明出处并和本人
联系或留言给我。
---------------------------------------------------------
接触linux已经有一段时间了,最初对linux的使用就是编一些用户态的程序,比如新手上道时都要学习的“hello world!”示例程序。
平时自学的时候,总是摸不到门道,看着linux内核源码,调出相关的数据结构后,仿佛看到了一个无底的黑洞,充满了恐惧。
在陈莉君老师的课堂上,接触到了很多linux内核的原理知识,对“内核”有自己的一点点理解。特别是在ubuntu下编译完linux3.1.3的内核之后,感觉linux已经不是那么的恐惧了。
闲话不说,现在我就我编译linux3.1.3内核的过程做一个记录,话说,亲自的做过一次内核编译,感觉真是大不一样。
步骤一:获取源码
在官方网站http://kernel.org/上下载需要进行编译的linux源码压缩包,我下载的压缩包是“linux-3.1.3-rc2.tar.bz2”。
将其复制至所需要的目录之下:
cp linux-3.1.3.tar.bz2 /usr/src
解压压缩包,获得源码文件。
tar xjvf linux-3.1.3.tar.bz2
进入目录“/usr/src/linux-3.1.3”,之后的操作都将在这个目录下进行。
步骤二:配置内核
因为linux运行是的环境不一样,支持linux的硬件也各不相同,配置内核是为了更加有效的使用linux。特别是在嵌入式的小型计算机系统中,硬件资源很少,故需要进行细致的配置。我使用的是笔记本,故选择通用配置,具体操作方法是:安装“libncurses5-dev”,注意,这一步需要连接互联网:
sudo apt-get install libncurses5-dev
配置内核的方法有很多种,我这里采用的是“menuconfig”方式,完成下面得命令前,确保中断全屏显示,不然系统会提示错误,初次遇到错误我的信心遭受到了打击。
sudo make menuconfig
完成这个命令时候,内核配置文件.config完成了。
步骤三:编译内核
这一步才是真正的对内核进行编译,之前的几步都是作必要的准备工作。编译内核使用的命名如下:
sudo make –j4
编译内核需要花费的时间很多,我编译内核花费时间大概是一个半小时,这是一个漫长的等待。为了提高编译效率,我使用了并发多任务的方式,如上述命令中,“-jn”其中n为系统中CPU数的二倍。
步骤四:内核安装
这一步主要是把编译之后的内核镜像进行安装,采用两个命令。
sudo make modules_install
sudo make install
看似简单的两个命令,其实背后完成了很多工作,具体是什么我现在也不能说上来,只等之后熟悉之后在对本文进行修改。
步骤五:更新启动菜单
这一步主要是把安装后的内核添加到启动菜单中,这样就可以再启动机器的时候启动新编译的内核。
sudo mkinitramfs 3.1.3 –o /boot/initrd.img-3.1.3
sudo update-grub2
至此,内核编译工作完成,你可以重启机器来体验新的内核了。这篇文章里边仅仅写到了内核编译的步骤问题,具体的细节和原理,并未深入涉及,仅供初学者参考,不周之处,请批评指正。