现在的位置: 首页 > 综合 > 正文

浅谈编译Linux内核

2018年03月19日 ⁄ 综合 ⁄ 共 1586字 ⁄ 字号 评论关闭

---------------------------------------------------------

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

至此,内核编译工作完成,你可以重启机器来体验新的内核了。这篇文章里边仅仅写到了内核编译的步骤问题,具体的细节和原理,并未深入涉及,仅供初学者参考,不周之处,请批评指正。

抱歉!评论已关闭.