1> Code maturity level options ---> 代码成熟等级选项
1. [ ]Prompt for development and/or incomplete code/drivers
默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.你应该选择它,因为有许多设备可能必需选择这个选项才能进行配置,实际上它是安全的
2. [ ] Select only drivers expected to compile cleanly
选择这个选项你将不会看到一些已知的存在问题的驱动程序选项,默认的情况下也是选择的。如果你有设备没有找到驱动选项,你可以将这一项去掉,或许就可以找到相关驱动了,不过它可能是有 BUG 的。
2> General setup ---> 常规安装选项
Local version - append to kernel release
1. [*] Support for paging of anonymous memory (swap)
这个选项将使你的内核支持虚拟内存,也就是让你的计算机好象拥有比实际内存更多 多的内存空间用来执行很大的程序。默认是选择的。
2. [*] System V IPC
是组系统调用及函数库,它能让程序彼此间同步进行交换信息。某些程序以及 DOS 模拟环境都需要它。为进程提供通信机制,这将使系统中各进程间有交换信息与保持同步的能力。有些程序只有在选 Y 的情况下才能运行,所以不用考虑,这里一定要选。
3. [ ] POSIX Message Queues
POSIX 消息队列,这是 POSIX IPC 中的一部分
4. [ ] BSD Process Accounting
一般用户所执行的程序,可通知内核将程序统计数据写成文件,详细记录相关信息。
5. [*] Sysctl support
此项功能可在不重新编译内核或是重新开机的前提下,动态变更某些特定的内核参数和变量,赋予内核较大的弹性。除非内存太少或是编译出来的内核是给安装、救援磁盘所使用,否则这个选项一定要选上。这将提供一个接口让你可以动态的更改一些核心参数与变量,而不需要重新启动系统。打开这个选项将会增加内核的体积至少 8KB。如果你的内核仅用制作安装与恢复系统系统盘那么可以不选,以减少对内存的占用。
6. [ ] Auditing support
审记支持,用于和内核的某些子模块同时工作,例如 SELinux。只有选择此项及它的子项,才能调用有关审记的系统调用。
--- Support for hot-pluggable devices
是否支持热插拔的选项,肯定要选上。不然 USB、 PCMCIA 等这些设备都用不了。
7. [*] Kernel Userspace Events
内核中分为系统区和用户区,这里系统区和用户区进行通讯的一种方式,选上。
8. [ ] Kernel .config support
这将会把内核的配置信息与相关的文档说明编译进内核中,以后可以使用一些工具来提取它用来重新构建内核,一般不用选它。
9.[ ] Configure standard kernel features (for small systems) --->
这是为了编译某些特殊用途的内核使用的,例如引导盘系统。通常你可以不选择这一选项,你也不用对它下面的子项操心了。
3> Loadable module support
---> 可引导模块支持 建议作为模块加入内核
1. [*] Enable loadable module support
这个选项可以让你的内核支持模块,模块是什么呢?模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行支持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在运行时可以使用 modprobe 命令来加载它到内核中去(在不需要时还可以移除它)。一些特性是否编译为模块的原则是,不常使用的,特别是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文件系统,系统总线的支持就不要编为模块了,否在无法启动系统。
2. [*] Module unloading
这个选项可以让你卸载不再使用的模块,如果不选的话你将不能卸载任何模块(有些模块一旦加载就不能卸载,不管是否选择了这个选项)。不选择这个选项会让你的内核体积减小一点。
3. [*] Forced module unloading
允许强制卸载正在使用中的模块(比较危险)
4. [ ] Module versioning support (EXPERIMENTAL)
允许使用其他内核版本的模块(可能会出问题)
5. [ ] Source checksum for all modules
这个功能是为了防止更改了内核模块的代码但忘记更改版本号而造成版本冲突。我估计现在没有哪家公司在开发中还没使用版本控制工具,所以不需要这项了。如果你不是自己写内核模块,那就更不需要这一选项了。
6. [*] Automatic kernel module loading
一般情况下,如果用户的内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用 modprobe 命令来加载它,内核才能使用。不过,如果你选择了这个选项,在内核需要一些模块时它可以自动调用 modprobe 命令来加载需要的模块,这是个很棒的特性,当然要选 Y 喽。
4> System Type ---> 系统类型
ARM system type (Samsung S3C2410) ---> ARM 系统,基于
S3C2410S3C24XX Implementations ---> 基于 S3C24xx 架构的实现
--- S3C2410 Boot
--- S3C2410 Setup
1. [*] S3C2410 DMA support
支持 DM 功能
2. [ ] S3C2410 DMA support debug
支持 DMA 调试功能
(0) S3C2410 UART to use for low-level messages
--- Processor Type 处理器类型
--- Processor Features 处理器特性
3. [*] Support Thumb user binaries
支持 Thumb 指令集
4. [ ] Disable I-Cache 禁止指令缓存( Instruction Cache, ICache)。
5. [ ] Disable D-Cache 禁止数据缓存( Data Cache, D-Cache)
6. [ ] Force write through D-cache 强制回写数据缓存
5> Bus support
--->总线支持
PCCARD (PCMCIA/CardBus) support --->
< > PCCard (PCMCIA/CardBus)
supportPCMCIA 卡支持
6>Kernel Features 内核功能
1. [ ] Symmetric Multi-Processing (EXPERIMENTAL)
对称多处理(试验功能)
2. [ ] Preemptible Kernel (EXPERIMENTAL)
抢占式内核(试验功能)