乳房太大必要时要缩小_美美生活馆

linux内核裁减

08月 26th, 2008 by Skylin

在csdn论坛里看到的

内核配置
内核配置的方法很多,make config、make xconfig、make menuconfig、make oldconfig等等,它们的功能都是一样的,区别应该从名字上就能看出来,只有make oldconfig是指用系统当前的设置(./.config)作为缺省值。这里用的是make menuconfig。
需要牢记:不必要的驱动越多,内核就越大,不仅运行速度慢、占用内存多,在少数情况下、还会引发其他问题。具体步骤如下:
首先确定shell是bash。
然后
$make menuconfig
有一些默认的符号其含义如下:
y:加载
n:不加载
m:作为模块加载
可以配置的选项有以下一些:
1)code maturity level option 代码成熟度
prompt for development and/or incomplete code/drivers [N/y/?]
如果有兴趣测试一下内核中尚未最终完成的某些模块,就选y,否则选N,想知道更详细的信息选?会看到联机帮助(以下?的含义相同),N大写表示缺省值。
2)processor type and features 处理器类型及特性
Processor family(386,486/Cx486,586/K5/5×86/6×86,Pentium/K6/TSC, PPro/6×86MX)[PPro/6x86MX]
[]内的是缺省值,我们可以根据前面介绍的uname 命令执行的结果选择。此项如果高于386,那么生成的内核在386机器上将不能启动。
Math emulation(CONFIG_MATH_EMULATION)[N/y/?]
需要进行协处理器模拟吗?一般的机器都回n。如果机器已经有硬件的协处理器,那么内核仍将使用硬件,而忽略软件的math-emulation,这将使内核变大变慢。
MTRR(Memory Type Range Register)support(CONFIG_MTRR)[N/y/?]
在Pentium、Pro/Pentium II类的系统中可以提高图像写入速度。
Symmetric multi-processing support(CONFIG_SMP)[Y/n/?]
如果您的机器有多个处理器,就选y。此时要选中下面的Enhanced Real Time Clock Support
3)loadable model support 可加载模块支持
Enable loadable module [...]

Posted in linux | No Comments »

Linux内核裁减及根文件系统定制(二)

08月 26th, 2008 by Skylin

二、根文件系统定制
1、 创建一个全新的根文件系统
你可以用mkinitrd来创建,这里介绍另外一种方式,用dd命令:
# mkdir -p /mnt/initrd 创建一个设备点,用于临时挂载根文件系统。
# cd /tmp 在tmp下创建根文件系统
# dd if=/dev/zero of=/tmp/initrd bs=512 count=40960 创建一个名为initrd的根文件
系统,系统每个块的大小为
512字节,共40960块。
# mke2fs -F -m 0 initrd 格式化根文件系统,其中-F表示强制执行;
-m 0表示不为系统预留空间。
# mount -o loop /tmp/initrd /mnt/initrd 挂载根文件系统,记住这里要使用
-o loop选项,否则挂载会失败。
# cd /mnt/initrd
2、 创建基本的目录结构
# mkdir dev proc etc etc/rc.d [...]

Posted in linux | No Comments »

Linux内核裁减及根文件系统定制(一)

08月 26th, 2008 by Skylin

目录:
一、内核编译
二、根文件系统定制
三、内核选项说明

一、内核编译
1、 准备工作
(1) 整理出系统需要支持的硬件、文件系统类型以及网络协议等内容。
(2) 建议用命令uname –r 查看一下系统的版本号,如果你的系统版本与将要编译的内核版本一致,建议将/lib/modules下的内容备份,否则将来的make modules_install 步骤产生的文件会覆盖这个路径下的内容。
(3) 下载并解压linux内核,建议从http://www.kernel.org/pub/linux/kernel/ 下载内核,因为安装系统时所安装的源代码默认情况下支持很多设备,这样给内核裁减增加了难度。以下假设你已经下载了内核的为linux-x-y-z.tar.gz。一般都将linux内核源代码放在/usr/src下,这里仍然遵守这个习惯,如果你的这个路径下已经存在这个版本的内核,建议将已有的改个名称。
2、 开始编译
(1) make mrproper
确保源代码目录下没有不正确的.o文件和文件依赖关系,执行该命令后,内核选项会回到默认的状态下。如果你是下载的内核源码,而且是第一次编译,就没有必要执行这一步操作
(2) make menuconfig
以文本菜单方式选择内核选项(与它功能相同的命令还有make config;make xconfig;make oldconfig),不同版本的内核,选项可能会有一些差异。
这一步是内核编译的关键,根据需要支持的硬件、文件系统和协议等内容,选择不同的选项。配置选项时,有三种选择方式,它们代表的含义如下:
Y-将该功能编译进内核
N-不添加功能
M-将该功能编译成模块,在需要时动态加载到内核
选择的原则是与内核关心紧密而且经常使用的部分功能代码直接编译到内核中;将与内核系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响;不需要的功能就不要选。
我们使用空格键进行选取。根据选项的不同,按下空格键的结果也有所不同:选项后有”―――>”符号的,进入下一级菜单;选项前有中括号的,则在空和“*”之间切换;选项前有尖括号的,在空、“*”和“M”之间切换;选项前有圆括号的,需要在所提供的几个选项中选择一项,或者需要输入数值等符号。
咦,什么?要我详细介绍具体该怎么选择这些选项?大汗!这可是个大问题,需要根据不同的需求进行选择,比如需要支持USB键盘、鼠标或/和存储器,支持多CPU,支持网卡,串口,支持TCP协议,ext2文件系统,nfs文件系统等等。后面我将就内核选项做详细的介绍。
(3) make dep
根据上一步所选择的选项,建立文件的依赖关系。
(4) make clean
清理一些不必要的文件,如果你在上次编译的基础上,删去了一些选项,建议你执行这一步操作,否则,就没有必要了。
(5) make bzImage
生成内核压缩文件。如果你确认你的内核在640K以下,你可以用make zImage来代替 make bzImage。这一步相当费时,你可以在命令后加上&,让其在后台执行,或者重定向到/dev/null中,这样你就什么也看不见屏幕上闪过不停的字符啦。编译出的内核在 ./arch/i386/boot/ 下,文件名为bzImage
(6) copy “/usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-x.y.z
(7) make modules
编译可加载模块(即内核选项中选择为M的选项),编译时间跟M选项的数量有关。
(8) make modules_inatall
将编译好的modules拷贝到/lib/modules下,这就是为什么在“准备工作”的第三步提醒你备份的原因了。
(9) cp /usr/src/linux/System.map /boot/ System-x.y.z.map
3、 修改启动配置文件
现在大多数使用的都是grub启动,需要修改/boot/grub/grub.conf,添加相应的启动信息,添加内容的最简单格式如下:
title 显示在启动菜单上的名称
root 根文件系统挂载分区
kernel [...]

Posted in linux | No Comments »

Linux内核配置选项

08月 26th, 2008 by Skylin

第一部分
01、Code maturity level options —> 代码成熟等级选项
01.01、 [ ] Prompt for development and/or incomplete code/drivers 默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.你应该选择它,因为有许多设备可能必需选择这个选项才能进行配置,实际 上它是安全的。
01.02、[ ] Select only drivers expected to compile cleanly [...]

Posted in linux | No Comments »