新闻  |   论坛  |   博客  |   在线研讨会
编译linux内核[转]
xinjinlong | 2010-11-03 23:14:10    阅读:21140   发布文章

编译linux内核[转] 
好了,当我们已经可以基本操控这台 Linux 机器之後,不妨帮它动点手术,让它更适合自己的环境。就像喜欢飙车的朋友,总免不了要对心爱的座架改装改装一样。

要改车,除了要改弹簧、轮胎、煞车、排气、裙边、尾翼等,要想车子真正能发挥性能,当然免不了改引擎啦。下面我们进行的核心编译,就是为 Linux 改引擎了。日後,我们还要装 KDE、GNOME 等等这些 X Window,那是雾灯、座椅、方向盘、表板等这些‘装饰’改装了。这些修改,都一一显示了使用者的个人风格,而且也有许多产品可供选择,就如改车除了用“momo”之外,还可以选择“无限”。

何谓核心?

前面介绍 shell 的时候,已经略略提到过核心这个东西,如果您有看过“电脑基础”中关於作业系统部分的文章,相信不用我再多做解释了。而且,我也不想再重复了,假如您不知道核心是做什麽的,可以到“电脑基础”去看看。

我们通常挂在嘴边的 Linux ,其灵魂所在,就是它稳定而强大的核心。而事实上,Linux 的定义,也只是这个核心,只是大家目前使用的系统,是经过包装的,在核心之外,还有各种各样的套件( 包括不同的 shell )整合一起。如果您有时间,而且愿意上网路去抓,那些套件都可以自己找得到。有些人,帮您把核心编好,套件也设定好并加以整合,同时将安装程式写好,还提供套件管理工具,以及将环境设定妥当,然後烧成 CD,那就是我们常见的 Linux 套装系统了。我们称这些 Linux 套装系统的发行版本为 Distribution ,例如大家闻名的 RedHat,Slackware,OpenLinux,TurboLinux,SuSE,Debian,等等,都是 distrobutions 。不管它们如何包装,但骨子里头的东西,也就是使用的核心,都一样:都是 Linux !

那核心究竟如何定义呢?说简单些,就是作业系统 (Operating System),它负责处理所有系统的东西,包括硬碟的控制、记忆体管理、行程管理、档案系统、网路功能、等等。我们可以将核心看成是一个架於程式和硬体之间的界面操作系统,离开来核心,什麽东西都用不了。而核心的编译好坏,也会影响到系统的效能,甚至,一些系统功能(如 tcp/ip),就必须要编进核心才行。

不过,在动手编译核心之前,请先问问自己是否真的有这个必要?因为,现在的 Linux Distro,其预装的核心力都尽可能的将所有东西以模组的方式进行编译,而这些模组都是可以插入和移除的。这是一个非常灵活的设计:当您需要模组的时候,就载入到核心里面;鸟尽弓藏的时候,可以将模组从核心中移除:呼之则来、挥之则去,怎一个方便了得!要知道,作业系统的效能好坏、稳定与否,其中一个很关键的因素是核心的体积短小精悍。一个臃肿的核心,没错,能提供样样俱到的功能,但也牺牲掉系统效能和稳定性。所以在编译核心的时候,‘将核心编得尽量的小’,是最高原则。

就像改车一样:车身越轻,其可控性越佳,如果您完全是一个 100% 飙车发烧友,很可能,您的车箱里面,除了改良後的前坐位和防翻侧支架外,其它能拿掉的都拿掉,连仪 都是裸露的。呵~~ 如果您的车子里面还有一大堆 Kitty 、Snoppy,以及上十组喇叭和 CD 音响,那我只能说您是“爱车一族”,而绝对不够资格称得上“飙车一族”!如果您能将所有的汽车周边都设计成模组,那就最好不过了:需要泡马子的时候,将所有耍 cool 玩意都弄上;需要午夜狂奔的时候,全部拿掉,一件不留。

同样的,如果您真的是一个 100% 的 Linux 发烧友,假如发现核心里面竟然载有您不想要的东西,是绝对不能容忍的。不过,对於初入门的朋友,倒不必急於以 Linux 发烧友来自居,先摸熟核心的功能之後,才真正打造适合自己的精确核心吧。说实在,若不是赶时髦,一般用 Distro 预装的核心已经非常足够了。而且预装核心都带有非常充足的模组,随时应付您的需求。除非您千真万确的知道您要的硬体只有在新核心里面才能支援,或是从 kernel.org 上面得知旧核心有严重的漏洞,否则,不需要如此劳师动众。

好了,现在,就假设您有十万零一个理由需要进行核心的编译,那就不妨一起共赴一趟核心的编译之旅吧!

选择版本

不管您的核心是从网路上抓的,还是从 CDROM 里面 copy 出来的,首先要确定的事情是:这个版本是否适合您?

事实上,Linux 核心的版本号码上面,就隐含著一些重要的资讯。先让我们看看您目前使用的核心版本吧: # uname -r
2.4.2-2




不知道您对这这些数字有何认识呢?不知道不要紧,让我告诉您吧:


<主版本>.<次版本>.<修订版本>-<副版本>


然後,再让我们看看核心版本的维护流程:


kernel
2.2.0
|
V
2.2.1
:
|
V Kernel
2.2.8 ---> 2.3.0
| |
V V
2.2.9 2.3.1
: :
| |
V V Kernel
2.2.60 ... ---> 2.4.0
|
V Kernel
: ---> 2.5.0
| |
V V
: :


事实上,在众多的核心版本中,我们需要特别留意的是第二个数字,也就是次版本的号码:

如果它是一个奇数,那这个版本是实验性的版本,或许有些新的设备和功能能够在这个种版本找到,但因为尚处於开发期,不能保证其稳定性和安全性。无论如何,不建议在真正用来工作的系统上面安装实验性的核心版本。例如:2.1.1、2.3.2、2.3.3、2.5.0 ....


如果它是一个偶数,基本上,该版本已经获得一定程度的测试和肯定,已趋於稳定和可靠的状态。如果您的系统是真正用来工作的,只建议安装稳定的核心版本。例如:2.2.1、2.2.17、2.4.2、2.4.9 ....

无论如何,当新核心推出之後,都不建议立即在真正工作的系统上面应用,尤其是在商业机构中,不要拿营运中的系统来做白老鼠。就算您获得一个被认为是稳定的版本,也应该经过反复的测试,以及随时留意核心团体所公布的最新资讯。只有经过一段时期和广泛的应用与回报,再加上自己的严格测试之後,才能决定是否要应用在工作的环境中。

事实上,更新核心不是为了干时髦,您必须很清楚您的需要是什麽,假如当前核心已经能应付您的需要,那就继续保留它就是了。下面这篇文章,是小州兄的建言,非常有代表性,希望大家能深切领会其中的要旨:

"小州" 撰写於邮件
news:3iFIVR$84V@bbs.cynix.com.tw...
> ※ 引述《asho (阿信)》之铭言∶
> > 这样是否因为没有最佳化
> > cpu以及周边的关系ㄋ
> > 我想...如果编译核心的时候
> > 不选duron而选x86系列ㄉ话
> > 效能应该会打折扣吧
>
> 我会去 compile kernel,一般来说只因为:
>
> 1. 你抓取新版 kernel source,当然你就需要自己编译。
>
> 2. 虽然目前 kernel 在 linux dist 出厂时都尽可能编入需要的项目
> 到核心内,其他项目都选择编译成为 module 可以事後挂入。若是
> 很巧你用的周边装置该好很冷僻,预先编译好的 kernel 既没把你
> 需要的项目编入核心,也没有编译成为 module,这时候才需要
> 自己重新编译核心。
>
> 3. 特殊环境使用....
>
> 重新编译 kernel 并不会提升效能,recompile kernel 最多只是调选
> 自己需要的项目编译核心或者是编译成为模组来使用。也许在选择
> 编译核心项目时,把 cpu 等级选好一点,那编译出来的 kernel 是针对
> 该 cpu 最佳化编译,但是整体增加效能百分比却是很低,比方可能增加了
> 1 ~ 3 %,这对於目前的 cpu 来说,其实也没有大幅度增快多少。
>
> 若是你用 mandrake,他全部 package 都是针对 pentium 的系统
> 编译程式,那整体效率上的确才会比一般 linux dist 的 package 都是用
> i386 指令集的程式套件快上许多。
>
> 至於编译核心时,留下这台机器需要的,其他根本不用的不编入。像是
> 一般 linux dist 可能预先编译好的 kernel 是支援 qos 机制,若是
> 不需要该机制,拿掉也许能够减少一些编出来的 kernel image 大小,
> 但是这并不会增加系统效能..... 不过对於以前古老环境来说,当时
> 记忆体不多,而且那时候模组化还不成熟的年代,让 kernel image 变小
> 一点,是可以减少一些记忆体耗费,但是对於目前其实都是不需要去担心。




另外,还有一个地方要留意的:就是您目前使用的应用程式和新版核心之间的兼容性如何?其中最头痛的地方莫过於 Library 的更新。因为 Library 是核心和程式之间的主要沟通界面,实在有太多的程式需要使用到 Library 提供的函式库。如果单纯为了升级某一个套件,而需要更新 Library 版本的话,在很大程度上也会牵涉到核心版本的升级;但其它应用程式是否能使用新版的 Library 却是个非常棘手的难题。调过来说,如果您单纯为了某一核心功能而升级核心,而导致所有 Library 和应用程式都必须更新,您必须有足够的 study 和风险评估,否则当您发现牵一发动全身的时候,再临急抱佛脚,恐为时已晚了。况且,许多隐藏性的问题,可能要等到积压了某一时期之後才能浮现出来,这个恐怕更是让人吃不了兜著走。

无论如何,如果您觉得要升级核心的话,三思而後行!

取得 source

Linux核心的发展,可以说是相当迅速的,其版本更新反而有时候让人觉得受不了呢。

如果您使用的我们这里用来作范例的 RedHat 7.1 套件,那您应该看到和我一模一样的版本:2.4.2-2。想要获得最新的核心版本资讯,不妨到 http://www.kernel.org/ 走走,说不定会满载(指频宽)而归呢!上面有 http 和 ftp 的下载选择,如果您是用网页浏览器的话,建议用 http 模式;如果您习惯了 ftp 界面,那就用 ftp 好了。

以小弟经验看,最好是在系统安装完毕之後,马上就进行核心编译工作,免得以後每次装一些特定功能的时候又要花一大轮时间编译。当然了,我是假设您如我在“安装 Linux”文章中所说的:已经明确知道自己的系统要用来做什麽的。例如,您打算架设 NAT 和 QoS,并且阅读过文件,明确知道要将什麽东西编译进核心里面。当然,如果您不怕花时间,每装一次服务就重新编译一次核心,也未尝不可。只是,当您真的有过几次核心编译经验之後,我相信您巴不得一次过就将核心编好,最好还是别人已经编好,然後送一个现成的过来!呵呵~~ 我常会在编核心的是许这样的愿望哦~~ ^_^

如果您不是到网路上抓最新的核心,但当初安装的时候又不是选择 everything,而且也没选择 Development Tools (kernel source) ,那您也可以使用安装光碟带来的核心版本 (RH7.1 是在 Disk2 上面)。当您将光碟 mount 好之後,然後转到这个目录去:: cd /mnt/cdrom/RedHat/RMPS




然後将 kernel-source 的 rpm 装上。别说您不会使用 rpm 哦,果真的话,请往前面翻看看程式管理 (RPM)再回来: rpm -Uvh kernel-source-2.4.2-2.i386.rpm


(如果您看到错误信息显示您还需要其他程式,一一装好它们的 rpm 後再来安装 kernel-source 的rpm。)

完成之後,您应该会在 /usr/src/ 目录里面看到一个 linux-2.4.2 的子目录。这就是刚才的 rpm 程式干的好事了!

如果您的核心是从 internet 上面下载回来的,通常会是‘.tar.gz’或‘.tar.bz2’这样的压缩档。目前,我在 http://www.kernel.org/pub/linux/kernel/v2.4/ 所找到的最新版本是 2.4.9 ,请先将 linux-2.4.9.tar.bz2 这个档案抄进 /usr/src 再进行解压: tar Ixvf linux-2.4.9.tar.bz2


(因为这是 bz2 的压缩,所以用 I 参数,如果您抓的是 gz 格式,就用 z 参数吧。)

这样您就会产生一个‘linux’的目录!注意哦:这个和您用 rpm 从 RH7.1 Disk2 的 CD 装的目录不一样哦,如果您是用 CD 来装的话,建议您建立一个 link: ln -sf linux-2.4.2 linux




无论您是用光碟的 rmp,还是下载回来的核心,最终我们都应该有一个‘/usr/src/linux’的目录:如果原来已经有这样一个目录存在,而不是 link 的话,那就先用 mv 将它改一个名字吧。

当我们的目录准备好之後,就是我们进行编译的步骤了:

进行编译

不过,编译核心一点都不轻松,而且是相当费神费时的事情。幸好现在的机器越来越快,而且核心的编译程式也好用多了。

首先确定您在安装 Linux 时候准备的开机片可以工作,用它boot 一下就知道了,要确定您的 BIOS 里面的开机顺序是以“A”(即软碟)为先。如您当初忘记了制作开机片,或磁片坏掉了,先在这里自行做一张: mkbootdisk --device /dev/fd0 `uname -r`


(用 uname -r 命令是找出您当前的核心版本,如果您确定是 2.4.2-2 , 那可以直接用版本号码来代替。)


重新启动机器,确定是用 bookdisk 开机的。然後用 root 身份进行登录,并取出开机磁碟,贴好标签,然後换一张新的磁碟进去。


然後,让我们转换到 /us/src/linux/Documentation/ 目录里面,看看里面您认为需要了解的资讯,例如 Changes,modules.txt、Configure.help 和其它 .txt 档。


当您阅读完新 kernel 的重要资讯之後,然後回到 /usr/src/linux 目录,并输入: make menuconfig




如果在Xwindows里面,可以输入:make xconfig。不过,我们这里使用 menuconfig 就好。在这个界面里面,不如先学习一下如何操作键盘吧:

界面是以层级形式显示选项,您首先进入的顶层选单。然後您可以用‘向上’和‘向下’方向键来选择选项。
如果您发现所选择的选项的最右边有一个向右的箭头,那就表示其下还有更进一层的子选单。
在选单的底部,分别有:Select、Exit、和 Help 的按钮,只要按‘tab’键就可以循环选择。
当您用上下方向键选择好有子选单的选项,以及确定底部按钮为 Select 之後,敲‘Enter’就可以进入下一层选单。
如果按 tab 键选择 Exit 的话,就会退回上一级选单 (也可以按‘Esc’,但要非常小心,因为不留神多按两下的话可能会退出程式,然後您又不确定是保存还是放弃好!所以不鼓励用‘Esc’)。
当您选择到最底部的选项的时候,也就是选项的右边没有箭头了,那麽在选项的左边应该是一个 [ ] 或 < > 的符号。分别是:前者只能选择为内建或不选择;後者则可以让您选择为内建、或模组、或不选择。您可以按空白键来循环您的选择:[ * ] 和 < * > 为内建、[ ] 和 < > 是不选择、 < M > 则为模组。(我的建议是:能够编成模组的就尽量编成模组,除非某些特别的效能考虑或没有模组选择的,才编成内建。)
当您退回顶级目录的时候,如果按 Exit 或 Esc 就会退出所有选单,同时系统会问您是否保存设定。您只有 ‘Yes’ 或 ‘No’的选择,如果不确定,请用 no ,然後重新进行选择。不过,您在任何时候,在顶级目录那里可以选择:Save Configuration to an Alternate File ,将当前设定保存在 /usr/src/linux 目录下,档案名称您自定则可;您也可以选择:Load an Alternate Configuration File ,从设定档载入以前的设定。我强烈建议您在进行任何改动之前,先为目前的设定保存起来,请选择 Save Configuration 那个选项,然後输入 origin,那您就可以随时用 Load Configuration 还原核心的原始设定了。(如果对核心的选项够了解,可以复制一份设定档,然後直接修改里面的设定,是最快的方法!)


接下来,应该是最伤神的时候了,这里,我们要面对一大堆的选择。如果您不确定哪些需要,可以接受预设值,或是一股脑做成模组。当您不知道某应该项目是什麽意思,可以按‘help’看看您是否需要,如没需要的话可以不要编进核心里面,否则核心编得太大,会影响系统效能。


Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
# 如果您想用核心进行研发工作,如测试新硬体,可以考虑,
# 否则不用理会,
# 不过,有些尚处於 alpha 阶段的新功能必须选择後才用。

Loadable module support --->
[*] Enable loadable module support
[*] Set version information on all module symbols
[*] Kernel module loader
# 如果您要采用其它版本(或旧版本)编译过来的模组,
# 那就要打开第二项,但可能不那麽安全。
# 然则,您也要确定装有 genksyms 程式,
# 否则可能会编译失败。

Processor type and features --->
(Pentium-III/Celeron(Coppermine)) Processor family
( ) 486
( ) 586/K5/5x86/6x86/6x86MX
( ) Pentium-Classic
( ) Pentium-MMX
( ) Pentium-Pro/Celeron/Pentium-II
(X) Pentium-III/Celeron(Coppermine)
# 如果第一项的 CPU 型号不是您目前机器的,
#可以 Enter 进行选择。

<M> Toshiba Laptop support
<M> /dev/cpu/microcode - Intel IA32 CPU microcode support
<M> /dev/cpu/*/msr - Model-specific register support
<M> /dev/cpu/*/cpuid - CPU information support
# 上面这些因为是模组的关系,所以才选。

(off) High Memory Support
(X) off
( ) 4GB
( ) 64GB
# 如果您的实体记忆体少於 1G 的话,用预设的 off 就行;
# 如果您的记忆体介於 1G 到 4G 之间,选择 4GB;
# 如果您的记忆体超过 4G ,那可以选择 64GB。

[ ] Math emulation
# 除非您的 CPU 是 intel 386,否则不用选择。

[*] MTRR (Memory Type Range Register) support
# 如果您有打算跑 X window,不妨将之加上。

[ ] Symmetric multi-processing support
# 如果您的机器是双 CPU 的,可以选择上面这个。

[ ] APIC and IO-APIC support on uniprocessors (NEW)

General setup --->
[*] Networking support
[ ] SGI Visual Workstation support
[*] PCI support
(Any) PCI access mode
( ) BIOS
( ) Direct
(X) Any
[*] PCI device name database
[ ] EISA support
[ ] MCA support
[*] Support for hot-pluggable devices
PCMCIA/CardBus support --->
<*> PCMCIA/CardBus support
[*] CardBus support
[*] i82365 compatible bridge support
[ ] Databook TCIC host bridge support
# 如果您使用 notebook,或许会有 PCMCIA 装置,
# 不妨将 i82365 加进来,除非您确定不使用 PCMCIA。
# 我实际上是没有选择的,这里仅作示范而已。
# 如果您没选择这个,後面许多 PCMCIA 的选择就看不到了,
# 参考的时候请留意这点!

[*] System V IPC
[*] BSD Process Accounting
# 是是非常好用的东西,可以将您的行程资料记录下来,
# 强烈建议选择,要不然开机可能会看到错误信息。

[*] Sysctl support
# 这个不能不选,否则 /proc/sys 就没作用了。

(ELF) Kernel core (/proc/kcore) format
(X) ELF
( ) A.OUT
<*> Kernel support for a.out binaries
<*> Kernel support for ELF binaries
<*> Kernel support for MISC binaries
[*] Power Management support
<*> Advanced Power Management BIOS support
# 上面这行要编成模组或内建,然後才看得到下面的哦:

[ ] Ignore USER SUSPEND (NEW)
[ ] Enable PM at boot time (NEW)
[ ] Make CPU Idle calls when idle (NEW)
[ ] Enable console blanking using APM (NEW)
[ ] RTC stores time in GMT (NEW)
# 如果您的硬体时钟是使用世界标准时间,可以选择,
# 如果是本地时则不选。

[ ] Allow interrupts during APM BIOS calls (NEW)
[ ] Use real mode APM BIOS call to power off (NEW)
# 如果您的系统不能自己切断电源,就选这个吧。
# 不过,对某些 BIOS 而言,选了这个反而不能关机!
# 这样的话,您自己试试看棉~~
# 我这里没选啦,因为我用的是华硕的旧板 P2L97。
# 另外,我还发现如果您是单 CPU 的机器,
# 前面却将 SMP 选择起来的话,那也不能关机哦~~

Memory Technology Devices (MTD) --->
< > Memory Technology Device (MTD) support
# 如果您要做 embedded 系统,
# 使用到 FDM 和 DOM/DOC 的话,可选。
# 不过选择之後,还有很多选项,请尽量用模组来编译就是了。
# 如果不知道是什麽,请看 Help 的说明!
# 我这里没选。

Parallel port support --->
<M> Parallel port support
# 如果您有使用平行埠,如接印表机,那就选吧。

<M> PC-style hardware (NEW)
<M> Multi-IO cards (parallel and serial) (NEW)
[ ] Support foreign hardware (NEW)
[*] IEEE 1284 transfer modes (NEW)
# 假如您的印表机有状态回报功能的话,可以考虑。

Plug and Play configuration --->
<*> Plug and Play support
<*> ISA Plug and Play support
# 哇:PnP 耶~~ 这麽好的事情为什麽不用?

Block devices --->
<*> Normal PC floppy disk support
<M> XT hard disk support
<M> Parallel port IDE device support
--- Parallel IDE high-level drivers
<M> Parallel port IDE disks (NEW)
<M> Parallel port ATAPI CD-ROMs (NEW)
<M> Parallel port ATAPI disks (NEW)
<M> Parallel port ATAPI tapes (NEW)
<M> Parallel port generic ATAPI devices (NEW)
--- Parallel IDE protocol modules
<M> ATEN EH-100 protocol (NEW)
<M> MicroSolutions backpack (Series 5) protocol (NEW)
<M> MicroSolutions backpack (Series 6) protocol (NEW)
<M> DataStor Commuter protocol (NEW)
<M> DataStor EP-2000 protocol (NEW)
<M> FIT TD-2000 protocol (NEW)
<M> FIT TD-3000 protocol (NEW)
<M> Shuttle EPAT/EPEZ protocol (NEW)
<M> Shuttle EPIA protocol (NEW)
<M> Freecom IQ ASIC-2 protocol (NEW)
<M> FreeCom power protocol (NEW)
<M> KingByte KBIC-951A/971A protocols (NEW)
<M> KT PHd protocol (NEW)
<M> OnSpec 90c20 protocol (NEW)
<M> OnSpec 90c26 protocol (NEW)
<M> Compaq SMART2 support
<M> Compaq Smart Array 5xxx support
<M> Mylex DAC960/DAC1100 PCI RAID Controller support
<*> Loopback device support
# 这个建议做到核心去。

<M> Network block device support
<*> RAM disk support
(4096) Default RAM disk size (NEW)
[*] Initial RAM disk (initrd) support
# 呵这趟收获甚丰:反正是模组嘛~~ ^_^
# 不过,如果您确定真的是用不上,那也可以不选啦。

# 至於最後 3 项的使用时机,是当系统在开机过程中,
# 必须先载入某些模组才能完成档案系统的挂载,
# 例如 SCSI 模组,或核心太大装不进磁片中,
# 那您可以将 RD 和 initrd 选进核心里面。
# 我这里打算尝试这个选项,因为我有 SCSI 控制卡。
# 如果您使用这个选项,请确定您的 SCSI 模组
# 要写在 /etc/modules.conf 档中;
# 您也可以执行 mkinitrd 帮助您完成。

Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
<M> RAID support
<M> Linear (append) mode
<M> RAID-0 (striping) mode
<M> RAID-1 (mirroring) mode
<M> RAID-4/RAID-5 mode
<M> Logical volume manager (LVM) support
# 您想在 Linux 玩 RAID 和 LVM 吗?这些可要选哦。

Networking options --->
# 在这里的选项非常多,若想将 Linux 当成 gateway 来玩,
# 那可能会选择较多的选项。
# 无论如何,参考 Help 的说明来决定您的需求。

<*> Packet socket
# 这个可以加快封包的双向沟通。

[*] Packet socket: mmapped IO
# 目的同上。

[*] Kernel/User netlink socket
# 如果您想架设 diskless 工作站,
# 同时要这台机器提供 RARP 这样的服务,
# 那就最好选择它。
# 其它一些服务如 ipvsadm 也需要它。

[*] Routing messages (NEW)
# 如果您想用 iproute2 接收路由资讯,请选择。

<M> Netlink device emulation (NEW)
# 这个选项应该很快合并到前面的 netlink socket 那里去。

[*] Network packet filtering (replaces ipchains)
# 呵~~ 这个是许多人都想玩的功能: NAT 和 firewall !
# 一定要选哦~~

[ ] Network packet filtering debugging (NEW)
# 如果您还有能力帮助 iptables 进行 debug,可以选。
# 我嘛,暂时偷懒~~

[*] Socket Filtering
# 这功能似乎很神奇,
# 如果您会写 socket 程式,应该蛮受惠的。

<*> Unix domain sockets
# 许多程式,例如 X window 和 syslog ,都用到。
# 除非您做 embedded 系统,确定不会使用到,
# 否则一定要选。

[*] TCP/IP networking
# 上面这项如果不选,也别想上 Internet 了。

[*] IP: multicasting
# 如果没用到 MBONE 功能,可以不选。

[*] IP: advanced router
# 如果要将 Linux 当 router 用,那就选吧。

[*] IP: policy routing (NEW)
# 如果您打算用 iproute2 来管理 TOS ,那就要选。

[*] IP: use netfilter MARK value as routing key (NEW)
# 可以用 iproute2 配合 iptalbes 来控制频宽,很好玩哦。

[*] IP: fast network address translation (NEW)
# 哦:NAT 耶~~ 当然选择啦。

[*] IP: equal cost multipath (NEW)
# 如果网路环境有多重路由,不妨考虑。

[*] IP: use TOS value as routing key (NEW)
# 如果您打算用 TOS 来做路由判定依据,那可以选。

[*] IP: verbose route monitoring (NEW)
# 建议选择,这样可以让核心告诉您一些奇怪的路由资讯。

[ ] IP: large routing tables (NEW)
# 如果您的路由区域可能超过 64 个,可以考虑。

[ ] IP: kernel level autoconfiguration
# 只有上面这项选择了,下面三项才会跑出来:

[ ] IP: DHCP support (NEW)
[ ] IP: BOOTP support (NEW)
[ ] IP: RARP support (NEW)
# 如果您要构建一个 diskless 工作站的核心,
# 可以选择前面四项。
# 如果您是做 diskless 的伺服器,就不要选了。

<M> IP: tunneling
# 可以用来架设 VPN 哦,反正又是模组,干嘛不选?

<M> IP: GRE tunnels over IP
[*] IP: broadcast GRE over IP (NEW)
# 如果您的网路混合了 IPv6 和 IPv4,
# 可以考虑选择前两项。

[*] IP: multicast routing
[*] IP: PIM-SM version 1 support (NEW)
[*] IP: PIM-SM version 2 support (NEW)
# 和前面的提到的 MBONE 一样,前面三项有用才选吧。

[*] IP: TCP Explicit Congestion Notification support
# 网路拥塞通知协定可以减少封包遗弃及加速传送,
# 然而许多防火墙目前都不支援这些封包,
# 有可能会影响到防火墙後面的连线,
# 如果您不确定,那就不选为佳。
# 不过,您也可以用如下命令将此功能关闭:
# echo 0 > /proc/sys/net/ipv4/tcp_ecn

[*] IP: TCP syncookie support (disabled per default)
# 使用 SYN cookies 来抵御 SYN Flood 攻击,
# 但光设定这里是不够的,您还必须确定
# /proc/sys/net/ipv4/tcp_syncookies 的值为 1 。

IP: Netfilter Configuration --->
# 不是一大票人要玩封包过滤吗?可别忘了打开这里哦:
<M> Connection tracking (required for masq/NAT) (NEW)
<M> FTP protocol support (NEW)
<M> IP tables support (required for filtering/masq/NAT) (NEW)
<M> limit match support (NEW)
<M> MAC address match support (NEW)
<M> netfilter MARK match support (NEW)
<M> Multiple port match support (NEW)
<M> TOS match support (NEW)
<M> tcpmss match support (NEW)
<M> Connection state match support (NEW)
<M> Packet filtering (NEW)
<M> REJECT target support (NEW)
<M> Full NAT (NEW)
<M> MASQUERADE target support (NEW)
<M> REDIRECT target support (NEW)
<M> Packet mangling (NEW)
<M> TOS target support (NEW)
<M> MARK target support (NEW)
<M> LOG target support (NEW)
<M> TCPMSS target support (NEW)
<M> ipchains (2.2-style) support (NEW)
< > ipfwadm (2.0-style) support (NEW)
# 简而言之,除非您确定不用,
# 这里的东西全部都可以编为模组就是了。
---
<M> <M> The IPX protocol
[*] IPX: Full internal IPX network (NEW)
# 要和 Novell 机器连接吗?前两项要选择哦。

<M> Appletalk protocol support
# 还想和 mac 电脑连接?那也不能不选哦。

< > DECnet Support
<M> 802.1d Ethernet Bridging
# 如果您了解 802.1d 协定,
# 同时想用 Linux 当 Bridge,那就选吧。

QoS and/or fair queueing --->
# 想玩流量控管,这里的可不要忘了打开:
[*] QoS and/or fair queueing
<M> CBQ packet scheduler (NEW)
<M> CSZ packet scheduler (NEW)
<M> The simplest PRIO pseudoscheduler (NEW)
<M> RED queue (NEW)
<M> SFQ queue (NEW)
<M> TEQL queue (NEW)
<M> TBF queue (NEW)
<M> GRED queue (NEW)
<M> Diffserv field marker (NEW)
<M> Ingress Qdisc (NEW)
[*] QoS support (NEW)
[*] Rate estimator (NEW)
[*] Packet classifier API (NEW)
<M> TC index classifier (NEW)
<M> Routing table based classifier (NEW)
<M> Firewall based classifier (NEW)
<M> U32 classifier (NEW)
<M> Special RSVP classifier (NEW)
<M> Special RSVP classifier for IPv6 (NEW)
[*] Traffic policing (needed for in/egress) (NEW)
# 和前面的封包过滤一样,能选为模组的就用 M ,
# 否则就内建。

Telephony Support --->
< > Linux telephony support
# 除非您确定用 Linux 玩 VoIP,否则不用设定。
# 我这里没设啦。

ATA/IDE/MFM/RLL support --->
<*> ATA/IDE/MFM/RLL support
# 相信今天的硬碟没有不支援 ATA 的吧?一定要选哦。

IDE, ATA and ATAPI Block devices --->
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/
floppy support
--- Please see Documentation/ide.txt
for help/info on IDE drives
[ ] Use old disk-only driver on primary interface
<*> Include IDE/ATA-2 DISK support
[*] Use multi-mode by default
<M> PCMCIA IDE support
<*> Include IDE/ATAPI CDROM support
<M> Include IDE/ATAPI TAPE support
<M> Include IDE/ATAPI FLOPPY support
<M> SCSI emulation support
--- IDE chipset support/bugfixes
[*] CMD640 chipset bugfix/support
[ ] CMD640 enhanced support
[ ] ISA-PNP EIDE support
[*] RZ1000 chipset bugfix/support
[*] Generic PCI IDE chipset support
[*] Sharing PCI IDE interrupts support
[*] Generic PCI bus-master DMA support
[ ] Boot off-board chipsets first support
[*] Use PCI DMA by default when available
[ ] AEC62XX chipset support
[ ] ALI M15x3 chipset support
[ ] AMD Viper support
[ ] CMD64X chipset support
[ ] CY82C693 chipset support
[ ] Cyrix CS5530 MediaGX chipset support
[ ] HPT34X chipset support
[ ] HPT366 chipset support
[*] Intel PIIXn chipsets support
[*] PIIXn Tuning support
[ ] NS87415 chipset support (EXPERIMENTAL)
[ ] PROMISE PDC202{46|62|65|67|68} support
[ ] ServerWorks OSB4/CSB5 chipsets support
[ ] SiS5513 chipset support
[ ] SLC90E66 chipset support
[ ] Tekram TRM290 chipset support (EXPERIMENTAL)
[ ] VIA82CXXX chipset support
[ ] Other IDE chipset support
[ ] IGNORE word93 Validation BITS
# 上面这些,如果能做成模组的就尽量做,其它的,
# 除非确定您会使用到,例如 Promise 的 IDE RAID 晶片,
# 否则不要选择或接受预设的选项。

SCSI support --->
# 如果您机器上有 SCSI 装置,那就打开这里:

<*> SCSI support
--- SCSI support type (disk, tape, CD-ROM)
<*> SCSI disk support
(40) Maximum number of SCSI disks that can be loaded as modules
# 如果您确定您的 SCSI 控制卡可以超过这个速度,可以调整这里的数值。
# 例如 Utra-Wide,可以最高到 160。
# 相反,如果您的卡太旧,或许调低一点。

<M> SCSI tape support
<M> SCSI OnStream SC-x0 tape support
<M> SCSI CD-ROM support
[ ] Enable vendor-specific extensions (for SCSI CDROM) (NEW)
# 请看 help ,以确定您是否使用到其中提到的型号,否则不要设。

(2) Maximum number of CDROM devices that can be loaded as
modules (NEW)
<M> SCSI generic support
--- Some SCSI devices (e.g. CD jukebox) support multiple LUNs
[*] Enable extra checks in new queueing code
[*] Probe all LUNs on each SCSI device
[*] Verbose SCSI error reporting (kernel size +=12K)
[ ] SCSI logging facility
# 上面那些选项,如果是模组的话,尽量选,其它的,接受预设就好,
# 除非您确切知道。

SCSI low-level drivers --->
# 这里基本上是关於特定 SCSI 控制卡的型号的支援,
<M> NCR53C8XX SCSI support
<M> SYM53C8XX SCSI support
(4) default tagged command queue depth
(32) maximum number of queued commands
(20) synchronous transfers frequency in MHz
<M> Tekram DC390(T) and Am53/79C974 SCSI support
# 不过,因为实在太多了,不全部列出来了。
# 不过,原则还是一样:能模组就模组,
# 不能模组的就确定的才选择
# 像我这里,我确定 SCSI 控制卡是 Symbios 的 53C810 ,
# 这也是预设的,但我尝试用 initrd (RAM DISK) 方式来启动,
# 所以改为模组。

PCMCIA SCSI adapter support --->
# 如果前面的 generic 中没选 PCMCIA ,那这里就没有了。

[ ] PCMCIA SCSI adapter support
# 除非您确定有使用这些设备,否则可以不理。

Fusion MPT device support --->
< > Fusion MPT (base + ScsiHost) drivers
# 这个我不知道是什麽,也就不理了。

I2O device support --->
< > I2O support
# 如果您确定您有 I2O 设备,可以选择。我没有,所以没选。

Network device support --->
# 到这里可不能不选了,要不我们怎麽上网啊?

[*] Network device support
ARCnet devices --->
< > ARCnet support
# 如果您没有 ARCnet 的界面,可以不理。

Appletalk devices --->
[ ] Appletalk interfaces support (NEW)
# 如果您没有 Appletalk 界面,可以不理。

<*> Dummy net driver support
# 这个我建议您编为内建,许多网路功能都会用到。

<M> Bonding driver support
# 如果您想用多张网路卡合并频宽,模拟 Etherchannel
# 和 Trunking 功能,那就选择。
# 主意哦,支援此功能的 switch 很贵哦!

<M> EQL (serial line load balancing) support
# 咦?可以合并多条 PPP 或 SLIP 频宽?真的假的?
# 不妨试试看~~~

<M> Universal TUN/TAP device driver support
# 如果您没有 tunX 或 tapX 设备,可以不设,
# 但,反正是模组嘛~~~

<M> General Instruments Surfboard 1000
# 如果您有 SURFboard 1000 插卡式 Cable Medem ,
# 不妨试试。

Ethernet (10 or 100Mbit) --->
# 这可是重点哦,不能不看:

[*] Ethernet (10 or 100Mbit)
[ ] ARM EBSA110 AM79C961A support
< > Sun Happy Meal 10/100baseT support
< > Sun GEM support
[*] 3COM cards
# 假如您已经有或打算买 3Com 的网路卡,就打开这里吧。

<M> 3c501 "EtherLink" support (NEW)
<M> 3c503 "EtherLink II" support (NEW)
<M> 3c505 "EtherLink Plus" support (NEW)
<M> 3c509/3c529 (MCA)/3c579 "EtherLink III" support (NEW)
<M> 3c515 ISA "Fast EtherLink" (NEW)
<M> 3c590/3c900 series (592/595/597) "Vortex/Boomerang"
support (NEW)
# 不管,全部编成模组,说不定某天也有那麽好的福气用名牌哦。

< > AMD LANCE and PCnet (AT1500 and NE2100) support
[*] Western Digital/SMC cards
# 也难保证某天不会用到 Digital 的网路卡,反正模组嘛:

<M> WD80*3 support (NEW)
<M> SMC Ultra support (NEW)
<M> SMC 9194 support (NEW)
[ ] Racal-Interlan (Micom) NI cards
<M> DEPCA, DE10x, DE200, DE201, DE202, DE422 support
[*] Other ISA cards
# 如果您手上还有 ISA 的旧网路卡,不要浪费哦。

<M> Cabletron E21xx support (NEW)
<M> EtherWORKS 3 (DE203, DE204, DE205) support (NEW)
<M> EtherExpress 16 support (NEW)
<M> EtherExpressPro support/EtherExpress 10 (i82595)
support (NEW)
<M> HP PCLAN+ (27247B and 27252A) support (NEW)
<M> HP PCLAN (27245 and other 27xxx series) support (NEW)
<M> ICL EtherTeam 16i/32 support (NEW)
<M> NE2000/NE1000 support (NEW)
# 许多 ISA 网路卡,都支援 NE2000 的模组,
# 其它不选也要选这个。

[*] EISA, VLB, PCI and on board controllers
# 相信您的网路卡不会是非 PCI 的吧?

<M> AMD PCnet32 PCI support
<M> Apricot Xen-II on board Ethernet
<M> CS89x0 support
<M> DECchip Tulip (dc21x4x) PCI support
# 您应该会看过 DEC 的网路卡吧?

[*] Use PCI shared mem for NIC registers
<M> Generic DECchip & DIGITAL EtherWORKS PCI/EISA
<M> Digi Intl. RightSwitch SE-X support
<M> Davicom DM910x/DM980x support
<M> EtherExpressPro/100 support
# 居然核心内定就有 Intel 的这张卡!
# 太不公平了,改成模组,否则心里不平衡 ^_^

<M> Myson MTD-8xx PCI Ethernet support
<M> National Semiconductor DP8381x series PCI Ethernet support
<M> PCI NE2000 and clones support (see help)
# 嗯,还有 PCI 的 NE2000 呢,
# 如果您的网路卡怎麽都找不到模组,不妨碰碰这个运气。

<M> RealTek RTL-8139 PCI Fast Ethernet Adapter support
# 呵~~ 俗称‘便宜大碗’的螃蟹卡,就是使用这个模组的啦 ^_^

[ ] Use PIO instead of MMIO
[ ] Support for older RTL-8129/8130 boards
# 如果您不确定您可以使用这两个选择,那就不要选择,
# 否则可能会开不了机!

<M> SiS 900/7016 PCI Fast Ethernet Adapter support
<M> SMC EtherPower II
<M> Sundance Alta support
<M> TI ThunderLAN support
<M> VIA Rhine support
# 唉~~ 那张恶名远拨的 DL-530TX 网路卡,
# 有时候可以用这个模组哦。
# 後面我专门介绍如何装这张恶卡!

<M> Winbond W89c840 Ethernet support
# 嗯,Winbond 的和螃蟹卡一样好装!

[ ] Pocket and portable adapters
# 如果您有口袋型网路卡(非 PCMCIA),可以选择其下的模组看看。

Ethernet (1000 Mbit) --->
# 您什麽时候那麽好命啊?竟然连 Giga-bit 的网路都享受得到:

<M> Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support
[ ] Omit support for old Tigon I based AceNICs
<M> D-Link DL2000-based Gigabit Ethernet support
<M> Packet Engines Hamachi GNIC-II support
<M> SysKonnect SK-98xx support
[ ] FDDI driver support
# 目前来说,我是铁定没运气用 FDDI 的了~~~

<M> PLIP (parallel port) support
<*> PPP (point-to-point protocol) support
# 如果用 MODEM 拨接上网的话,这个一定要!
# 虽说这个也可以篇成模组,不过,目前还离不开 PPP,
# 尤其用拨接式 ADSL(PPPoE) ,不妨直接编进核心里面,
# 除非您觉得这个会影响到核心的体积。

[*] PPP filtering (NEW)
# 看起来是不错的功能哦,试试看?可惜不能编成模组。

<M> PPP support for async serial ports (NEW)
<M> PPP support for sync tty ports (NEW)
<M> PPP Deflate compression (NEW)
<M> PPP BSD-Compress compression (NEW)
<M> SLIP (serial line) support
# 虽说,要手工编写 SLIP 拨接 script 的时代已经很久远了,
# 不过,很多程式都会用到哦,例如 vpnd ,还有 ippfvsadm,有备无患。

[*] CSLIP compressed headers (NEW)
# 如果双方都支援 SLIP 压缩技术,用这个可以提高传送量哦。

[*] Keepalive and linefill (NEW)
# 除非线路品质太差,否则不用计较。

[ ] Six bit SLIP encapsulation (NEW)
# 这个也太古老了吧?不确定的话,不必理会。

Wireless LAN (non-hamradio) --->
# 咦?无线网路耶~~ 这麽好的玩意,怎能不试呢?
# 不过,我短期内是用不到的了,真有那麽好福气,
# 也愿意回来编核心啦 ^_^
# 所以,下面仅作范例参考:

[*] Wireless LAN (non-hamradio)
<M> STRIP (Metricom starmode radio IP) (NEW)
<M> AT&T WaveLAN & DEC RoamAbout DS support (NEW)
<M> Aironet Arlan 655 & IC2200 DS support (NEW)
<M> Aironet 4500/4800 series adapters (NEW)
<M> Aironet 4500/4800 ISA/PCI/PNP/365 support
[*] Aironet 4500/4800 PNP support (NEW)
[*] Aironet 4500/4800 PCI support (NEW)
<M> Aironet 4500/4800 PROC interface
<M> Cisco/Aironet 34X/35X/4500/4800 ISA and PCI
cards (NEW)
--- Wireless Pcmcia cards support
<M> Hermes support (Orinoco/WavelanIEEE/PrismII/
Symbol 802.11b
cards) (NEW)
<M> Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards (NEW)
# 上面有几个一定要内建,如果计较的话,应该不选。

Token Ring devices --->
[ ] Token Ring driver support
# 这玩意,看来我也没什麽机会玩的了~~

[*] Fibre Channel driver support
<M> Interphase 5526 Tachyon chipset based adapter support (NEW)
# 搞不好您还真的这麽有福气,用得到 FC 哦。
# 不过,我目前看来应该没此机会的了。
# 上两项也只作范例参考,实际上我并没安装。

Wan interfaces --->
[*] Wan interfaces support
# 知道一个 router 有多贵吗?
# 居然小小的 Linux 也能玩 WAN?真的假的?
# 这项我没选,下面仅作例子:

<M> Comtrol Hostess SV-11 support (NEW)
<M> COSA/SRP sync serial boards support (NEW)
<M> MultiGate (COMX) synchronous serial boards support (NEW)
<M> Support for COMX/CMX/HiCOMX boards (NEW)
<M> Support for LoCOMX board (NEW)
<M> Support for MixCOM board (NEW)
<M> Support for HDLC and syncPPP protocols on MultiGate
boards (NEW)
<M> Support for Frame Relay on MultiGate boards (NEW)
<M> Etinc PCISYNC serial board support (EXPERIMENTAL) (NEW)
<M> FarSync T-Series X.21 (and V.35/V.24) cards (NEW)
<M> LanMedia Corp. SSI/V.35, T1/E1, HSSI, T3 boards (NEW)
<M> Sealevel Systems 4021 support (NEW)
<M> SyncLink HDLC/SYNCPPP support (NEW)
<M> Generic HDLC driver (NEW)
[*] Synchronous Point-to-Point Protocol (PPP) support (NEW)
--- X.25/LAPB support is disabled
<M> SDL RISCom/N2 support (NEW)
<M> Moxa C101 support (NEW)
<M> Frame relay DLCI support (NEW)
(24) Max open DLCI (NEW)
(8) Max DLCI per device (NEW)
<M> SDLA (Sangoma S502/S508) support (NEW)
[*] WAN router drivers (NEW)
<M> Sangoma WANPIPE(tm) multiprotocol cards (NEW)
[*] WANPIPE Cisco HDLC support (NEW)
[*] WANPIPE Frame Relay support (NEW)
[*] WANPIPE X.25 support (NEW)
[*] WANPIPE PPP support (NEW)
[*] WANPIPE Multi-Port PPP support (NEW)
<M> Granch SBNI12 Leased Line adapter support (NEW)
[*] Multiple line feature support (NEW)
# 以上仅做范例参考,如果真的没此需要,不用理会。

PCMCIA network device support --->
[*] PCMCIA network device support
# 有用 notebook 吗?不妨考虑这里的模组:
# (我现在是用 desktop ,所以没装)

<M> 3Com 3c589 PCMCIA support
<M> 3Com 3c574 PCMCIA support
<M> Fujitsu FMV-J18x PCMCIA support
<M> NE2000 compatible PCMCIA support
# 说实在话,支援 Linux 的 PCMCIA 不见得很多,
# 或将 NE2000 编为模组,
# 日後找 pcnet_cs.o 这个模组来碰碰运气。

<M> New Media PCMCIA support
<M> SMC 91Cxx PCMCIA support
<M> Xircom 16-bit PCMCIA support
<M> Xircom Tulip-like CardBus support
[*] Pcmcia Wireless LAN
<M> Aviator/Raytheon 2.4MHz wireless support
<M> Xircom Netwave AirSurfer wireless support
<M> AT&T/Lucent Wavelan wireless support
<M> Aironet 4500/4800 PCMCIA support
# 还有无线 PCMCIA 网路卡呢!还真不错。

# 以上都是网路设备的设定,
# 看得出来,我似乎对它们情有独钟,
# 或许是因为我是网中人的缘故吧 ^_^

Amateur Radio support --->
[ ] Amateur Radio support
# 实在话,我也不知道 amateur radio 是什麽?

IrDA (infrared) support --->
<M> IrDA subsystem support
# 红外线装置?好玩意哦~~ 一般的 notebook 都有,
# 不过,我的 Desktop 是没有的啦。
# 所以我这里也没装,仅供参考:

--- IrDA protocols
<M> IrLAN protocol (NEW)
<M> IrNET protocol (NEW)
<M> IrCOMM protocol (NEW)
[*] Ultra (connectionless) protocol (NEW)
[*] IrDA protocol options (NEW)
--- IrDA options
[*] Cache last LSAP (NEW)
[*] Fast RRs (NEW)
[*] Debug information (NEW)
Infrared-port device drivers --->
--- SIR device drivers
<M> IrTTY (uses Linux serial driver) (NEW)
<M> IrPORT (IrDA serial driver) (NEW)
--- Dongle support
[*] Serial dongle support (NEW)
<M> ESI JetEye PC dongle (NEW)
<M> ACTiSYS IR-220L and IR220L+ dongle (NEW)
<M> Tekram IrMate 210B dongle (NEW)
<M> Greenwich GIrBIL dongle (NEW)
<M> Parallax LiteLink dongle (NEW)
<M> Old Belkin dongle (NEW)
--- FIR device drivers
<M> NSC PC87108/PC87338 (NEW)
<M> Winbond W83977AF (IR) (NEW)
<M> Toshiba Type-O IR Port (NEW)

# 上面这些,如果您没有红外线线装置,或是用不到,大可不理。

ISDN subsystem --->
< > ISDN support
# 嗯~~ 现在看来我不会拉 ISDN 线路吧?

Old CD-ROM drivers (not SCSI, not IDE) --->
[ ] Support non-SCSI/IDE/ATAPI CDROM drives
# 除非您真有老掉牙的 CDROM,否则根本不用管它。

Input core support --->
# 如果您有支援 USB HID 的设备,可以考虑:

<M> Input core support
<M> Keyboard support (NEW)
<M> Mouse support (NEW)
(1024) Horizontal screen resolution (NEW)
(768) Vertical screen resolution (NEW)
<M> Joystick support (NEW)
<M> Event interface support (NEW)
# 反正都是模组嘛~~

Character devices --->
[*] Virtual terminal
[*] Support for console on virtual terminal
# 除非您不想开多个 console ,否则一定要选。

<*> Standard/generic (8250/16550 and compatible UARTs)
serial support
# 现在的通讯埠都使用这类的 UART 晶片组。

[*] Support for console on serial port
# 嗯!许多 router 或 switch 都是用这个来设定的耶~~

[ ] Extended dumb serial driver options
[ ] Non-standard serial port support
[*] Unix98 PTY support
(256) Maximum number of Unix98 PTYs in use (0-2048)
<M> Parallel printer support
# 除非您没有平行埠的印表机,否则不要忘了打开。

[*] Support for console on line printer (NEW)
# 可以将核心送出来的资讯直接列印哦。

<M> Support for user-space parallel port device drivers
# 不确定是什麽,反正模组嘛~~

I2C support --->
<M> I2C support
<M> I2C bit-banging interfaces (NEW)
<M> Philips style parallel port adapter (NEW)
<M> ELV adapter (NEW)
<M> Velleman K9000 adapter (NEW)
<M> I2C PCF 8584 interfaces (NEW)
<M> Elektor ISA card (NEW)
<M> I2C device interface (NEW)
# 老话:反正模组嘛~~
# 不过,如您不玩那些古怪的玩意,应该不用理会啦。

Mice --->
<M> Bus Mouse Support
<M> ATIXL busmouse support (NEW)
<M> Logitech busmouse support (NEW)
<M> Microsoft busmouse support (NEW)
<*> Mouse Support (not serial and bus mice)
[*] PS/2 mouse (aka "auxiliary device") support
<M> C&T 82C710 mouse port support (as
on TI Travelmate)
<M> PC110 digitizer pad support
# 除了预设的两个保留内建,其它都编到模组去了~~

Joysticks --->
[ ] Joystick support
--- Input core support is needed for joysticks
# 谁说在 Linux 不能玩 GAME 啊?连摇杆都有呢!
# 不过,我确定我不会在 Linux 玩 GAME 的啦
# (我连 Windows 的 GAME 也没有呢 :-)

< > QIC-02 tape support
# 非 SCSI 的磁带机?我可没这些玩意。

Watchdog Cards --->
[ ] Watchdog Timer Support
# 看起来是网路重启的设备,虽然我对网路设备都很偏心,
# 不过它似乎要内建,而且目前也看不出我会用得到,
# 也就不管了。

<M> Intel i8x0 Random Number Generator support
<M> /dev/nvram support
<M> Enhanced Real Time Clock Support
<M> Double Talk PC internal speech card support
<M> Siemens R3964 line discipline
<M> Applicom intelligent fieldbus card support
# 以上这些被选,都是因为是模组之故。

Ftape, the floppy tape device driver --->
<M> Ftape (QIC-80/Travan) support
<M> Zftape, the VFS interface (NEW)
(10240) Default block size (NEW)
--- The compressor will be built as a module only!
[ ] Enable procfs status report (+2kb) (NEW)
(Normal) Debugging output
--- Hardware configuration
(Standard) Floppy tape controllers
# 如果您有备份磁带机,可以选择,
# 不过,最好看看 help 的说明。

<*> /dev/agpgart (AGP Support)
# 现在的显示卡都是 AGP 的吧?

[ ] Intel 440LX/BX/GX and I815/I840/I850 support
[ ] Intel I810/I815 (on-board) support
[ ] VIA chipset support
[ ] AMD Irongate support
[*] Generic SiS support
[ ] ALI chipset support
[ ] Serverworks LE/HE support
[*] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
<M> 3dfx Banshee/Voodoo3+
<M> 3dlabs GMX 2000
<M> ATI Rage 128
<M> ATI Radeon
<M> Intel I810
<M> Matrox g200/g400
# 如果可以编为模组,就编进模组。
# 如果确定不会用到特别型号的显示卡,那就不用选择。

PCMCIA character devices --->
<M> PCMCIA serial device support
# 模组嘛~~

Multimedia devices --->
<M> Video For Linux
# 有影/音撷取卡吗?不妨试试。

Video For Linux --->
[*] V4L information in proc filesystem (NEW)
<M> I2C on parallel port (NEW)
--- Video Adapters
<M> BT848 Video For Linux (NEW)
<M> Mediavision Pro Movie Studio Video For Linux (NEW)
<M> Quickcam BW Video For Linux (NEW)
<M> CPiA Video For Linux (NEW)
<M> CPiA Parallel Port Lowlevel Support (NEW)
<M> CPiA USB Lowlevel Support (NEW)
<M> SAA5249 Teletext processor (NEW)
<M> SAB3036 tuner (NEW)
<M> Zoran ZR36057/36060 Video For Linux (NEW)
<M> Zoran ZR36120/36125 Video For Linux (NEW)
# 我是有张很古老的,不知道是否可以呢?

Radio Adapters --->
<M> ADS Cadet AM/FM Tuner (NEW)
<M> AIMSlab RadioTrack (aka RadioReveal) support (NEW)
<M> AIMSlab RadioTrack II support (NEW)
<M> Aztech/Packard Bell Radio (NEW)
<M> GemTek Radio Card support (NEW)
<M> GemTek PCI Radio Card support (NEW)
<M> Guillemot MAXI Radio FM 2000 radio (NEW)
<M> Maestro on board radio (NEW)
< > miroSOUND PCM20 radio (NEW)
# 这个不能选,因为我发现在编译的时候编不下去。
# 不知道是什麽原因啦~~~

<M> SF16FMI Radio (NEW)
<M> TerraTec ActiveRadio ISA Standalone (NEW)
<M> Trust FM radio card (NEW)
<M> Typhoon Radio (a.k.a. EcoRadio) (NEW)
[ ] Support for /proc/radio-typhoon (NEW)
<M> Zoltrix Radio (NEW)
# 除了内建外,都编成模组了。
# 不过,如果确定不玩这东西,那也不用理会。
# 有时候,这些新玩意在编译模组的时候,
# 会遇到奇怪的错误,那就回来取消它们吧。
# (像 miroSOUND 的 PCM20,
# 会出现 Unrsolved symbols 的问题)

File systems --->
[*] Quota support
# 要设定 quota 的话,一定要选。

<*> Kernel automounter support
<*> Kernel automounter version 4 support (also supports v3)
# 如果打算玩 automount,请选择。

<M> DOS FAT fs support
<M> MSDOS fs support
<M> UMSDOS: Unix-like file system on top of standard MSDOS fs
<M> VFAT (Windows-95) fs support
# 相信很多人的机器上还有 MS Windows 吧?

<M> Compressed ROM file system support
[*] Virtual memory file system support (former shm fs)
<M> Simple RAM-based file system support
<*> ISO 9660 CDROM file system support
# 标准的 CDROM 格式,不能不选。

[*] Microsoft Joliet CDROM extensions
# 这个格式的 CDROM 也蛮多的。

<M> Minix fs support
<M> FreeVxFS file system support (VERITAS VxFS(TM) compatible)
<M> NTFS file system support (read only)
# 读取 NT 的档案系统(唯读),
# 不过,我在编译的时候,无论是内建或模组都失败。
# 然而,您可以手工修改 /usr/src/linux/fs/ntfs/unistr.c,
# 找到下面的第一和第三行句子,加上中间那行就可以了:
# #include <linux/string.h>
# #include <linux/kernel.h>
# #include <asm/byteorder.h>
# (要保留 # 符号哦)
# 否则不要选。

<M> OS/2 HPFS file system support
[*] /proc file system support
# 这个是核心自己使用的,一定要选。

[*] /dev/pts file system for Unix98 PTYs
<M> ROM file system support
<*> Second extended fs support
# 这是 Linux 预设的档案格式,不能不选。
# RH7.2 已经用 EXT3 了,
# 不过我不知道如何编译 EXT3。

<M> System V/Xenix/V7/Coherent file system support
<M> UDF file system support (read only)
<M> UFS file system support (read only)
# 上面的,基本是预设内建的,
# 我都没碰,能模组的就模组吧。

Network File Systems --->
<M> Coda file system support (advanced network fs)
# 非常优秀的网路档案系统,有空不妨玩玩。

<*> NFS file system support
# 作为网路玩家,这个不可不会。

[*] Provide NFSv3 client support
[ ] Root file system on NFS
# 如果前面没选择 kernel level autoconfiguration
# 这个是看不见的。
# 如果您打算做 diskless client 的核心,这个一定要选。
# 但如果做为 dsiskless 的 server,那就不必了。

<*> NFS server support
# 这个是当然要选的,除非您单纯做 NFS client 。

[*] Provide NFSv3 server support
# 第 3 代的 NFS,可以用 TCP (以前用 UDP)。

<*> SMB file system support (to mount Windows shares etc.)
# 就算自己不用 Windows,相信还很多人在用,
# 不妨编为内建。

[*] Use a default NLS (NEW)
Default Remote NLS Option: "cp950" (NEW)
# 如果需要中文支援,不妨改为 cp950

<M> NCP file system support (to mount NetWare volumes)
[*] Packet signatures
[*] Proprietary file locking
[*] Clear remove/delete inhibit when needed
[*] Use NFS namespace if available
[*] Use LONG (OS/2) namespace if available
[*] Lowercase DOS filenames
[*] Use Native Language Support
[*] Enable symbolic links and execute flags
# 所有 NCP 需要的,都是 novell 档案系统需要的,
# 如果您确定您不打算和 novell 连接,那就不用理会。

Partition Types --->
[*] Advanced partition selection
[ ] Acorn partition support (NEW)
[ ] Alpha OSF partition support (NEW)
[ ] Amiga partition table support (NEW)
[ ] Atari partition table support (NEW)
[ ] Macintosh partition map support (NEW)
[*] PC BIOS (MSDOS partition tables) support
[ ] BSD disklabel (FreeBSD partition tables) support (NEW)
[ ] Minix subpartition support (NEW)
[ ] Solaris (x86) partition table support (NEW)
[ ] Unixware slices support (NEW)
[ ] SGI partition support (NEW)
[ ] Ultrix partition table support (NEW)
[ ] Sun partition tables support (NEW)
# 上面只有一项是预设选择的,只要其它,您自己看著办吧。

Native Language Support --->
Default NLS Option: "big5-0" (NEW)
# 如果需要中文支援,不妨改为 big5-0

<

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
五湖四海皆朋友
最近文章
浅谈MIPS的MMU(二)
2016-08-16 19:33:41
浅谈MIPS的MMU(一)
2016-05-05 10:55:06
推荐文章
最近访客