找回密码
 注册
查看: 811|回复: 2

请教Redhat9.0 kernel编译

[复制链接]
发表于 2003-5-20 17:29:01 | 显示全部楼层 |阅读模式
我下载了新版本的kernel,想自己编译一下,哪位有过这方面的经验,可不可以指点一二?
发表于 2003-5-20 17:35:04 | 显示全部楼层
第六章:编译核心


好了,当我们已经可以基本操控这台 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:[email protected]...
> ※ 引述《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 将它改一个名字吧。

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

进行编译

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

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

mkbootdisk --device /dev/fd0 `uname -r`

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

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

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

   4. 当您阅读完新 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 还原核心的原始设定了。(如果对核心的选项够了解,可以复制一份设定档,然後直接修改里面的设定,是最快的方法!)

   5. 接下来,应该是最伤神的时候了,这里,我们要面对一大堆的选择。如果您不确定哪些需要,可以接受预设值,或是一股脑做成模组。当您不知道某应该项目是什麽意思,可以按‘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)
                    (     Max DLCI per device (NEW)
                    <M>     SDLA (Sangoma S502/S50 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)
            (76    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-204
            <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

                    <M> Codepage 437 (United States, Canada) (NEW)
                    <M> Codepage 737 (Greek) (NEW)
                    <M> Codepage 775 (Baltic Rim) (NEW)
                    <M> Codepage 850 (Europe) (NEW)
                    <M> Codepage 852 (Central/Eastern Europe) (NEW)
                    <M> Codepage 855 (Cyrillic) (NEW)
                    <M> Codepage 857 (Turkish) (NEW)  
                    <M> Codepage 860 (Portuguese) (NEW)
                    <M> Codepage 861 (Icelandic) (NEW)
                    <M> Codepage 862 (Hebrew) (NEW)
                    <M> Codepage 863 (Canadian French) (NEW)
                    <M> Codepage 864 (Arabic) (NEW)
                    <M> Codepage 865 (Norwegian, Danish) (NEW)
                    <M> Codepage 866 (Cyrillic/Russian) (NEW)
                    <M> Codepage 869 (Greek) (NEW)
                    <M> Simplified Chinese charset (CP936, GB2312) (NEW)
                    <*> Traditional Chinese charset (Big5) (NEW)
                    <M> Japanese charsets (Shift-JIS, EUC-JP) (NEW)
                    <M> Korean charset (CP949, EUC-KR) (NEW)
                    <M> Thai charset (CP874, TIS-620) (NEW)
                    <M> Hebrew charsets (ISO-8859-8, CP1255) (NEW)
                    <M> Windows CP1251 (Bulgarian, Belarusian) (NEW)
                    <*> NLS ISO 8859-1  (Latin 1; Western European
                                    Languages) (NEW)
                    <M> NLS ISO 8859-2  (Latin 2; Slavic/Central European
                                    Languages) (NEW)
                    <M> NLS ISO 8859-3  (Latin 3; Esperanto, Galician,
                                    Maltese, Turkish) (NEW)
                    <M> NLS ISO 8859-4  (Latin 4; old Baltic charset) (NEW)
                    <M> NLS ISO 8859-5  (Cyrillic) (NEW)
                    <M> NLS ISO 8859-6  (Arabic) (NEW)
                    <M> NLS ISO 8859-7  (Modern Greek) (NEW)
                    <M> NLS ISO 8859-9  (Latin 5; Turkish) (NEW)
                    <M> NLS ISO 8859-13 (Latin 7; Baltic) (NEW)
                    <M> NLS ISO 8859-14 (Latin 8; Celtic) (NEW)
                    <M> NLS ISO 8859-15 (Latin 9; Western European Languages
                                    with Euro) (NEW)
                    <M> NLS KOI8-R (Russian) (NEW)
                    <M> NLS KOI8-U/RU (Ukrainian, Belarusian) (NEW)
                    <M> NLS UTF8 (NEW)
                    # 上面这些,除了繁体中文和 ISO 8859-1 编为内建之外,
                    # 其它的我都选为模组了,也建议您如此。
                    # 要不然以後读到某些编码的文章,再回来重编可不好玩。

    Console drivers  --->
           
  • VGA text console
           
  • Video mode selection support
            # 可以让您在核心开机的时候,设定显示解析度。
            # 如果您认为没必要的话,第 2 个可以不要。
           
            Frame-buffer support  --->
            # 这就是传说中的神情 FB 了!
            # 据说可以让您在找不到最新 AGP 显示驱动程式的情况下,
            # 仍能杀出条血路。不过,我没玩过~~  ^_^

    Sound  --->
            <M> Sound card support
            # 强烈建议您改为模组,否则日後用不了 sndconfig 工具。
            # 在 Linux 里面设定音效卡可没 windows 那麽容易哦!

            <M>   C-Media PCI (CMI8338/873
           
  •      Enable legacy FM (NEW)
            (38     FM I/O 388, 3C8, 3E0, 3E8
           
  •      Enable legacy MPU-401 (NEW)  
            (330)     MPU-401 I/O 330, 320, 310, 300 (NEW)
           
  •      Enable joystick (NEW)
            (2)       Number of speakers 2, 4, 5, 6 (NEW)
            <M>   Creative SBLive! (EMU10K1)
            <M>   Creative Ensoniq AudioPCI 97 (ES1371)
            <M>     100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16)
                                    support (NEW)
            <M>     AWE32 synth (NEW)
            <M>     Yamaha FM synthesizer (YM3812/OPL-3) support
            <M>     Yamaha OPL3-SA1 audio controller
            <M>     Yamaha OPL3-SA2 and SA3 based PnP cards
            <M>     Yamaha YMF7xx PCI audio (native mode)
           
  •        Yamaha PCI legacy ports support
            <M>     6850 UART support

            # 呵:这里的清单太长啦!不全部列出来了。
            # 不过我发现,在编译 modules 的时候,会卡在 sound 上面,
            # 您或许需要取消下面这些项目才能通过:
            # < >   ESS Technology Solo1
            # [ ]       Enable PSS mixer (Beethoven ADSP-16 and other compatibile)
            # [ ]       Have DSPxxx.LD firmware file
            # 其它的,能模组就模组吧。
            # 您要是使用 Creative 的原厂音效卡,成功的机会比较高。
            # 如果花很多时间都搞不定那些奇怪的型号,我建议您换卡好了,
            # 除非是内建的不能换。

    USB support  --->
            <*> Support for USB
            # 现在来说, USB 应该是标准了,
            # 搞不好,这正是您升级核心的唯一理由呢!

            [ ]   USB verbose debug messages
            --- Miscellaneous USB options
            [ ]   Preliminary USB device filesystem
            --- USB Controllers
            <*>   UHCI Alternate Driver (JE) support
            <M>   OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support
            --- USB Device Class drivers
            <M>   USB Audio support
            <M>   USB Mass Storage support
            [ ]     USB Mass Storage verbose debug
            [ ]     Freecom USB/ATAPI Bridge support
            [ ]     Microtech CompactFlash/SmartMedia reader
            <M>   USB Modem (CDC ACM) support
            <M>   USB Printer support
            --- USB Human Interface Devices (HID)
            <M>   USB Human Interface Device (full HID) support
            <M>   USB HIDBP Keyboard (basic) support
            <M>   USB HIDBP Mouse (basic) support
            <M>   Wacom Intuos/Graphire tablet support
            --- USB Imaging devices
            <M>   USB Kodak DC-2xx Camera support
            <M>   USB Scanner support
            <M>   Microtek X6USB scanner support
            --- USB Multimedia devices
            <M>   USB IBM (Xirlink) C-it Camera support
            <M>   USB OV511 Camera support
            <M>   USB Philips Cameras
            <M>   USB SE401 Camera support
            <M>   DABUSB driver
            --- USB Network adaptors
            --- USB port drivers
            <M>   USS720 parport driver
            USB Serial Converter support  --->
            --- USB misc drivers
            # 原则一样:尽量模组化。
            # 越新的核心,支援的 USB 越多,如果您找不到您的型号,那就等下一版本吧。

    Kernel hacking  --->
            [ ] Magic SysRq key
            # 破解核心?可不是当骸客啦,而是帮忙改良核心。
            # 我绝对没这个能力,没办法啦...

    ---
    Load an Alternate Configuration File
    # 可以将您以前保存的设定叫回来。

    Save Configuration to an Alternate File
    # 可以将您的当前设定保存起来。


          如果您使用的核心版本和我这里的不一样,那麽上面的选项和摆放位址或许都不一样,请您自己多加留意。

          这里,我把我在 desktop 电脑上安装的 2.4.9 核心设定档放在 这里,您可以下载回去,解压後用 Load Configuration 的办法载入设定,再根据您实际的情形调整即可。注意哦:我的设定是有打开 NTFS 的读取模组,如不需要请取消,要不请参考前面的提示修改 /usr/src/linux/fs/ntfs/unistr.c 这个档,否则您会遇到错误。

       6. 当您完成选择之後,按‘Exit’退出,看到“Do you wish to save your new kernel configuration?”,确定您选择‘Yes’。

          Tips:前面做了一大堆动作,无非为了一个目的:产生出 /usr/src/linux/.config 这个隐藏档。除了 menuconfig 之外,透过 oldconfig、config、xconfig 也都可以产生(或修改)这个档。甚至,您也可以直接从别的设定当复制过来,例如在原 CD 所带的 source 版本中,您可以在 configs 这个目录里面找到厂商所使用的预设值。当然,您如果会手工设定它的话,直接编辑也行(小心不要改错就是了。)

       7. 执行 ls /lib/modules 看看里面有没有一个目录和编译版本相同名字,如果有,用 ‘mv’命令将之改名,如:

    mv /lib/modules/2.4.9 /lib/modules/2.4.9.bck

       8. 然後再为 /lib/modules 、 /boot、和 lilo.conf 做一个备份:

    cp -af /lib/modules /lib/modules.bak
    cp -af /boot /boot.bak
    cp -af /etc/lilo.conf /etc/lilo.conf.bak

       9. 最後,请按顺序输入:

    make dep                # 建立相依关系
    make clean                # 清除旧有的设定
    make bzImage                # 建立核心档 ( arch/i386/boot/bzImage)
    make modules                 # 建立模组 ( drivers, net, fs, kernel, ... etc.)
    make modules_install        # 将模组安装至系统 (/lib/modules/2.4.9)

          (注意:bzImage 的‘i’为大写)

          Tips:上面的句子,您可以用一行代替:

    make dep clean bzImage modules modules_install 1>/dev/null

          甚至,您还可以将 make 丢到 background 执行。不过,这通常在您比较确定核心没有问题的时候才使用。我是建议您手工的执行每个 make 命令,检查它的执行结果才进行下一个动作,如果有错误,解决之後才好继续。

          在 make modules_install 之前,请先将 /lib/modules/ 目录下面的相同版本子目录移除掉,或改名。

      10. 这个过程比较需时,荧幕上会迅速的略过许多信息,有兴趣可以看看,如果您不想看,那就将 STOUT 重导到 /dev/null 去,保留 STDERR 就好(不要说您不会做哦,否则请回去补习上一章的内容);或是分别将它们重导到档案去,在除错时参考。

          如果有问题,您通常会卡在 modules 和 bzImage 上面,请仔细检查错误信息,然後根据信息进行修改,直到您再没看到错误为止。(有些警告信息是无须理会的,如果您碰到 Error 结尾的句子就要小心了,通常在最後面,如果看不见,那是好消息。)

    当您 make bzImage 顺利完成之後,您应该会看到几行信息,告诉您核心的大小:

    Root device is (3, 6)
    Boot sector 512 bytes.
    Setup is 4648 butes.
    System is 936 kB

    假如您碰到 warning: kernel is too big for standalone boot from floppy 的话,那就要考虑回去将内建的选项改为模组,或尽量减少。否则,您将不能为这个核心制作开机磁片,也不能运用下面提到的核心安装测试程序。

    安装核心

    不过,到此为止,我们只是将核心编译出来而已,接下来的是要将核心安装到系统上面去。

    先将一张空白磁片放进软碟机,然後输入:

    make bzdisk

    这可能需要一点时间,等完成之後,输入:

    reboot

    这样会让机器重新启动,这时候,你要确定您的BIOS里面的开机顺序是以“A”(或 Floppy )为先,和确定磁片留在 Floppy Drive 里面。

    我们这样做的目的,是用磁片测试一下新的核心是否工作。我强烈建议您先用磁片测试新核心,除非您编译出来的核心实在塞不进一张磁片中。如果不成功的话,您还可以取出磁片,用原来的核心来启动,然後再重新编译,再来反复测试。

    Tips:如果您不能建立磁片开机(例如系统上根本没 floppy drive ),或是做出来的核心太大,塞不进 floppy 中,那您可以执行 make bzlilo 将新核心装到 / 目录去,然後参考後面的 lilo.conf 设定,将 image 指向 /vmlinuz ,并用新的 label (如 linux.new ) 来测试新核心。

    然而,我发现,在一些新版的核心中(如 2.4.16),它在执行 make bzlilo 的时候,却是将 vmliuz 写到 /boot 目录中。这可要小心了:以为不小心会将旧的核心内容概掉!然则,请参考後面对手工方法来安装核心。

    无论如何,保持一片旧的可开机的磁碟片、以及为 /boot 目录做备份,是一个非常明智的做法。

    如果新的核心是没问题,也就是能用新核心的 floppy 开机的话,等我们重新登入系统後,再回到 /usr/src/linux 目录里面,然後执行:

    make install

    这个动作和 make bzdisk一样,只不过将核心安装
  • 回复

    使用道具 举报

     楼主| 发表于 2003-5-21 21:27:16 | 显示全部楼层
    多谢!我回去慢慢看
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    GMT+8, 2025-2-24 22:24 , Processed in 0.027046 second(s), 15 queries .

    © 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

    快速回复 返回顶部 返回列表