五、Linux内核裁减
(1)安装module-init-tools-3.0.tar.gz: # tar -zxvf module-init-tools-3.0.tar.gz # cd module-init-tools-3.0 # ./configure --prefix=/sbin # make
# make install
# ./generate-modprobe.conf /etc/modprobe.conf
这个脚本程序会读取原配置文件modules.conf的内容,经过格式转化后,生成新的配置文件/etc/modprobe.conf。
不知道为什么,我用module-init-tools-3.1时make出错。如果改用3.0的就没事了。
(2)安装modutils-2.4.25-8.9.i386.rpm: # rpm -Uvih modutils-2.4.25-8.9.i386.rpm
对modutils进行升级。
-U, --upgrade=
(3)安装新内核:
将新内核copy到/usr/src下,
#tar xzvf linux-2.6.38.4.tar.gz -----解压缩.
II. 将名为linux的符号链接删掉,这是旧版本内核的符号链接. #ln -s linux-2.6.38.4 linux ------建立linux-2.6.38.4的符号链接linux.
(4)设置内核. # cd /usr/src/linux
# make mrproper -----删除不必要的文件和目录. #make menuconfig 生成一个.config文件
Linux 内核的裁剪与编译看上去是个挺简单的过程。只是对配置菜单的简单选择。但是内核配置菜单本身结构庞大,内容复杂。具体如何选择却难住了不少人。因此熟悉与了解该菜单的各项具体含义就显得比较重要。我们现在就对其作一些必要介绍: Linux 内核的编译菜单有好几个版本,运行:
1)make config:进入命令行,可以一行一行的配置,这不好使用所以我们不具体介绍。 2)make menuconfig:进入我们熟悉的 menuconfig 菜单,相信很多人对此都不陌生。 3)make xconfig:在2.4.X 以及以前版本中 xconfig 菜单是基于 TCL/TK 的图形库的。 所有内核配置菜单都是通过 Config.in 经由不同脚本解释器产生.config。而目前刚刚推出的 2.6.X 内核用 QT 图形库。由 KConfig 经由脚本解释器产生。这两版本差别还挺大。从我
个人角度就是爱用新东西。2.6.X的 xconfig菜单结构清晰,使用也更方便。但基于目前2.4.X 版本比较成熟,稳定,用的最多。所以这里我还是以 2.4.X 版本为基础介绍相关裁剪内容。同时因为 xconfig 界面比较友好,大家容易掌握。但它却没有 menuconfig 菜单稳定。有些人机器跑不起来。所以考虑最大众化角度,我们以较稳定,且不够友好的menuconfig为主进行介绍,它会用了,Xconfig 就没问题。 2.4.X 版本 xconfig 配置菜单,2.4.X 版本menuconfig 配置菜单,2.6.X 版本 xconfig 配置菜单分别如图 4.1.4,4.1.5,4.1.6 所示:
图4.1.4 2.4.menuconfig配置菜单
在选择相应的配置时,有三种选择方式,它们分别代表的含义如下: Y--将该功能编译进内核 N--不将该功能编译进内核
M--将该功能编译成可以在需要时动态插入到内核中的模块
如果你是使用的是 make xconfig,那使用鼠标就可以选择对应的选项。这里使用的是 make menuconfig,所以需要使用空格键进行选取。在每一个选项前都有一个括号, 有的是中括 号有的是尖括号,还有圆括号。用空格键选择时可以发现,中括号里要么是空,要么是\, 而尖括号里可以是空,\和\这表示前者对应的项要么不要,要么编译到内核里;后者 则多一样选择,可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。 (注:其中有不少选项是目标板开发人员加的,对于陌生选项,自己不知道该选什么时建议 使用默认值)
下面我们来看看具体配置菜单,进入内核所在目录,键入 make menuconfig 你就会看到配 置菜单具有如下一些项:
内核编译选项
1、General setup
代码成熟度选项,它又有子项:
1.1、prompt for development and/or incomplete code/drivers
该选项是对那些还在测试阶段的代码,驱动模块等的支持。一般应该选这个选项,除非你只是想使用 LINUX 中已经完全稳定的东西。但这样有时对系统性能影响挺大。 1.2、Cross-compiler tool prefix
交叉编译工具前缀,例如:Cross-compiler tool prefix 值为: (arm-linux-) 1.3、Local version - append to kernel release
内核显示的版本信息,填入 64字符以内的字符串,你在这里填上的字符口串可以用uname -a命令看到。
1.4、 Automatically append version information to the version string
自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持 1.5、Kernel compression mode (Gzip) --->
有四个选项,这个选项是说内核镜像要用的压缩模式,回车一下,可以看到gzip,bzip2,lzma,lxo,一般可以按默认的gzip,如果要用bzip2,lzma,lxo要先装上支持
1.6、Support for paging of anonymous memory (swap) 使用交换分区或交换文件来做为虚拟内存,一定要选上。 1.7、System V IPC
表示系统的进程间通信Inter Process Communication,它用于处理器在程序之间同步和交换信息,如果不选这项,很多程序运行不起来,必选。 1.8、POSIX Message Queues
POSIX标准的消息队列,它同样是一种IPC。建议你最好将它选上 1.9、BSD Process Accounting
用户进程访问内核时将进程信息写入文件中。通常主要包括进程的创建时间/创建者/内存占用等信息。建议最好选上。
BSD Process Accounting version 3 file format
使用新的第三版文件格式,可以包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式。
1.11、Export task/process statistics through netlink (EXPERIMENTAL)
通过netlink接口向用户空间导出任务/进程的统计信息,与BSD Process Accounting的不同之处在于这些统计信息在整个任务/进程生存期都是可用的
Enable per-task delay accounting (EXPERIMENTAL)
在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间 Enable extended accounting over taskstats (EXPERIMENTAL)
在统计信息中包含扩展进程所花费的时间
1.12、Auditing support
审记支持,用于和内核的某些子模块同时工作,例如Security Enhanced Linux。只有选择此项及它的子项,才能调用有关审记的系统调用。 1.13、Enable system-call auditing support 支持对系统调用的审计 1.14、IRQ subsystem ---> 中断子系统
Support sparse irq numbering <=== 支持稀有的中断编号,关闭
1.15、RCU Subsystem --->
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库Linux内核定制优化配置在线全文阅读。
相关推荐: