欢迎来到天天文库
浏览记录
ID:42770434
大小:35.50 KB
页数:7页
时间:2019-09-20
《定制Linux内核详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、定制Linux内核详解(转)上一篇/下一篇2007-06-1221:24:04/天气:晴朗/心情:高兴查看(353)/评论(0)/评分(0/0)概述 在大多数情况下各种Linux发行版默认提供的内核都运行得非常好,但有些时候我们必须重新构造和定制内核,例如:系统中加入了当前内核不支持的或者尚未启用相应功能的硬件。需要使用某些操作系统功能或软件,默认情况下它们的内核支持被关闭。此时,我们需要构造一个启用了相应内核支持的新内核。为节省磁盘空间而使用较小的内核映象。如果系统的磁盘空间非常紧张,构造新内核并使其只支持那些确实需要用到的功能能够节省出一份可观的空间。为了安装新的软件或添加
2、新的功能,这些软件和功能需要修改内核才能正常工作。为了使用最新、最好的内核。各个主要发行版中由供应商提供的内核往往明显地落后于最前沿的技术,而且很遗憾地,它们的更新也很不及时,这就要求我们自己构造Linux内核。 好在自己构造和定制Linux内核并不是非常复杂,下面我们依次介绍它的各个步骤。准备工作 在构造新内核之前我们必须做好必要的准备工作。首先必须有一个开发环境(如C编译器等);另外还必须安装内核头和内核本身的源代码,前者通常是默认安装的,而后者往往是不安装的。 在RedHat系统上,我们可以用rpm命令确定内核头和内核的源代码是否已经安装:#rpm--query-a
3、
4、grepkernelkernel-sourcekernel-headers 上例的输出表明这两种源代码都已经安装到了系统上。如果内核源代码还没有安装,则可以用包含源代码RPM的CD进行安装,安装命令如下所示:rpm--install/cdlocation/SRPMS/kernel-source-2.2.X.i386.rpm 这里的cdlocation是/dev/cdrom的装配点(mountpoint),而X则是内核版本号的一部分。如果系统属于另外的体系,则i386也应该用相应的后缀替代。 另外,内核源代码也可以从Internet下载,然后只要按通常的方式解开tar文件即可
5、。 安装好的源代码通常可以在名为/usr/src/linux-2.2.x目录下面找到。按照惯例,/usr/src/linux目录是一个指向内核源代码的符号链接。通常这个链接是在安装源代码RPM时自动创建的,不过有些时候需要手工创建(或将链接目标从原来的内核源代码目录修改过来)。 构造新内核的第一步是进入内核源代码目录树的顶级目录:#cd/usr/src/linux 如果需要为内核源代码追加补丁,请执行类如下面的命令:#zcat/patch-location/patchN.gz
6、patch-p0-e 这里的N是补丁编号。一般我们只有在新增从Intenet下载的软件时才需要补
7、丁。 下一步是保存现有的配置文件并彻底地清理一下内核源代码:#cp.config.config.save#makemrproper 如果这是第一次从这份源代码构造内核,.config文件可能不存在(下面有更多关于它的讨论)。配置内核 接下来是定义新内核的特征,指定内核应当提供对哪些硬件和软件的支持。这一个步骤是半自动的,可以用三种方法来完成,具体由make命令的参数决定:#makeconfig--或--#makemenuconfig--或--#makexconfig 所有这三个命令都会在当前目录创建.config文件。.config文件指定了数量庞大的系统配置选项,这些选
8、项控制着内核行为及其软/硬件支持的各个方面。makeconfig命令通过一系列字符界面提示用户设定选项,它的缺点在于:如果我们在某个选项的界面过去之后再想改变这个选项,就必须从头开始才能改变它。图1:makexonfig提供配置内核的图形用户界面 makemenuconfig和makexconfig分别通过字符界面和基于X的图形界面完成同一任务。图1显示的是makexconfig的主菜单。作者:220.176.67.*2005-8-2215:17 回复此发言2定制Linux内核详解(转) 这个工具将所有的内核配置选项按照它们所关联的系统功能分成一系列的组。图2显示的是Gene
9、ralSetup组的窗口。窗口中的每一项都可以设置成分别表示启用或禁止的y、n(即Yes或No)。此外,makexconfig为所有的选项都提供了帮助,图2显示了PCIQuirks的帮助。帮助窗口不仅简明地说明了选项的含义,而且还给出设置建议,这对缺乏经验的管理员来说是很有用的。图2:makexconfig的GeneralSetup窗口及其帮助功能 每个窗口的底部都有Next和Prev按钮,通过这两个按钮我们无需返回主菜单即可直接访问下一组或上一组选项。此外,通过MainMen
此文档下载收益归作者所有