linux内核编译

转载自http://www.newsmth.net/pc/pccon.php?id=10002501&nid=339754

现在流行的ODL(only disk linux)中做内核部分,那些文章不介绍此点内容。我正在做,完工后整理资料。BY THE WAY ,想成为LINUX高手吗?你需要熟练掌握KERNEL COMPILE 、XCONFIGRATER、LINUXCONFIG、 SAMBA四大利器,你随时可以找到后三者的大量相关资料,但内核编译就只好啃为数不多的英文了。笔者耗时3月,搜集并整理大量资料,在儿童节前连续工作18个小时后,给小企鹅送了这份礼物。笔者自信是目前为止KERNEL编译方面最完备的中文资料(将不断翻译补充),这可是毕业论文哪!为什么要放网上呢?首先找这方面资料太难了,文章对各位LINUX爱好者会有所帮助。其次,取之于网用之于网。

欢迎使用这篇文章,请随便引用,这才符合LINUX自由软件的精神嘛,不过别忘了提提我的名字,就算为我的辛苦付了点稿酬。

介于内核方面资料较少,欢迎在这篇文章中添加和修改内容,但不要过多删除,笔者列表要加入你的名字,让我们为把它变成数百页的资料而努力。OK,交个朋友吧, 我是玉玉安,email :[email protected] <[email protected]>

目录

序言

第一章 内核编译的基础

第一节内核简介

第二节内核版本

第三节编译原因

第四节准备工作

第二章 内核编译的流程

第一节编译开始

第二节配置内核 {核心内容}

1.代码成熟等级

2..处理器类型和特色

3.对模块的支持

4.基本的选择

5.即插即用支持

6.块设备支持

7.网络选项

8.电话支持

9.SCSI设备的支持

10.I2O接口适配器

11.网络设备支持

12.配置业余无线广播

13.红外支持

14.ISDN的文件系统

15.旧型光驱类型(非IDE界面的光驱)

16.字符设备

17.USB支持

18.文件系统

19.控制台驱动

20.声卡驱动

21.Kernel hacking

第二节 内核版本

由于Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。Linux的开发采用的是集市模型(bazaar,与cathedral--教堂模型--对应),为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。一个树是稳定树(stable tree),另一个树是非稳定树(unstable tree)或者开发树(development tree)。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。一旦开发树经过了足够的发展,开发树就会成为新的稳定树。开发数就体现在源程序的版本号中;源程序版本号的形式为x.y.z:对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大一(因此,是奇数)。确定是以″ root ″的身份签入,然后cd 到 /usr/src 。uname -r 这个指令将会显示版本。内核版本的更新可以访问<http://www.kernel.org/>。

第三节 编译原因

Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、更稳
定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。

为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:

  ---自己定制编译的内核运行更快(具有更少的代码)
  ---系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)
  ---不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞
  ---将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些

以上是针对成熟的Linux套件如Redhat Linux而言,我的目的是为建造嵌入式Linux操作系统做准备,也是必由之路。

第四节 准备工作

第一部分 新版本内核的获取和更新

Linux内核版本发布的官方网站是<http://www.kernel.org/>,国内各大ftp上一般都可以找到某些版本的内核。新版本的内核的发布有两种形式,一种是完整的内核版本,另外一种是patch文件,即补丁。完整的内核版本比较大,比如linux-2.4.0-test8.tar.bz2就有18M之多。完整内核版本一般是.tar.gz(.tgz)文件或者是.bz2文件,二者分别是使用gzip或者bzip2进行压缩的文件,使用时需要解压缩。patch文件则比较小,一般只有几十K到几百K,极少的会超过1M。但是patch文件是针对于特定的版本的,需要找到自己对应的版本才能使用。编译内核需要root权限。把需要升级的内 拷贝到/usr/src/下(下文中以2.2.16的内核的linux-2.2.16tar.gz为例),命令为

#cp linux-2.2.16tar.gz /usr/src

先查看当前/usr/src的内容,注意到有一个linux的符号链接,它指向一个类似于linux-2.2.14(对应于现在使用的内核版本号)的目录。首先删除这个链接:

#cd /usr/src
#rm -f linux
现在解压下载的源程序文件。如果所下载的是.tar.gz(.tgz)文件,使用命令:

#tar -xzvf linux-2.2.16tar.gz

如果下载的是.bz2文件,例如linux-2.2.16tar.bz2,使用命令

#bzip2 -d linux-2.2.16tar.bz2
#tar -xvf linux-2.2.16tar

现在再来看一下/usr/src下的内容,发现现在有了一个名为linux的目录,里面就是需要升级到的版本的内核的源程序。还记得那个名为linux的链接么?之所以使用那个链接就是防止在升级内核的时候会不慎把原来版本内核的源程序给覆盖掉了。现在也需要同样处理:

#mv linux linux-2.2.16
#ln -s linux-2.2.16 linux

如果还下载了patch文件,比如patch-2.2.16,就可以进行patch操作(下面假设patch-2.2.16已经位于/usr/src目录下了,否则需要先把该文件拷贝到/usr/src下):

#patch -p0 < patch-2.2.16

第二部分 准备主机板和相关硬件的说明手册

其实也不用太详细,只要知道您的硬件是属于哪一类型就行了。例如:有一张SCSI卡,那就要知道这张卡的名字,有一台cd-rom,就要知道这台光驱是哪一种牌子的,是否为标准的IDE/ATAPI界面,还是另有专属接口卡呢?或者,主机版是否有支持Triton芯片(通常586以上的电脑常有),这些信息能帮助我们,使得设定变得清楚且容易。因此,不管您有什么使用手册,准备好吧。即使现在不用,将来还是会用到的(设X-window system时要显示卡的手册)。

第三部分 检查声卡的IRQ设定和其种类

如果配有一张声卡,除了要知道卡的种类外(例如 Sound Blaster)还需要知道这张卡的IRQ地址。一般来说,卢卡的IRQ地址是5或7而IO地址则为220。DMA则l,不过,有时不同的声卡可能会有不同的设定。因为稍后的选项里,就会要填入这些数字。

第四部分 编译核心的硬件需求

在编译核心时,确定您的RAM最好在8MB以上, 否则可能会很慢而且问题会很多,记得查看swap有没有打开(用free指令)。此外,最好不要超频,不然很有可能会发生signal 11的错误,使得编到一半的核心停了下来,其实编译核心就好比编译程序一样,只是因为构成核心的程序太多了,因此我们能小心尽量小心。

第二章 内核编译的流程

概述编译的流程:

编译开始----- make mrproper;检查所需的连接
配置核心
编译核心
编辑/etc/lilo.conf
重新启动新核心
重新启动机器
发现并修理故障(仔细看我的文章,应该没多少问题了)

第一节 编译开始

通常要运行的第一个命令是:

#cd /usr/src/linux
#make mrproper

该命令确保源代码目录下没有不正确的目标.o文件以及文件的互相依赖。如使用刚下载的完整的源程序包进行编译,本步可以省略。而如果多次使用了这些源程序编译内核,那么最好要先运行一下这个命令。

确保/usr/include/目录下的asm、linux和scsi等链接是指向要升级的内核源代码的。它们分别链向源代码目录下的真正的、该计算机体系结构(对于PC机来说,使用的体系结构是i386)所需要的真正的include子目录。如:asm指向/usr/src/linux/include/asm-i386等。若没有这些链接,就需要手工创建,按照下面的步骤进行:

# cd /usr/include
# rm -r asm linux scsi
# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi

这是配置非常重要的一部分。删除掉/usr/include下的asm、linux和scsi链接后,再创建新的链接指向新内核源代码目录下的同名的目录。这些头文件目录包含着保证内核在系统上正确编译所需要的重要的头文件。也是上面又在/usr/src下"多余"地创建了个名为linux的链接的原因之一.

一旦万事俱备,转到/usr/src/linux。现在你也许想停下细读一下文档文件,实际上如果你有些特别的硬件,或几种光驱驱动程需要自己动手设置,他们通常这样做,当引导时这些驱动程序将给出警告,这并不碍事他们照常工作少,阅读扩展名为.txt .h .c的文件。通常我发现他们具有共性且易于配置。如果你不想冒险,你没必要做。记住你照样可以解开tar文件(或再次安装.rpm文件)恢复前的文件。

第二节 配置内核 核心内容

接下来的内核配置过程比较烦琐,但是配置的适当与否与日后Linux的运行直接相关,有必要了解一下选项的设置。

配置内核可以根据需要与爱好使用下面命令中的一个:

#make config (基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用,必须安装ncurses-dev和tk4-dev库)
#make xconfig (基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig (如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)

如果不能使用Xwindow,那么就使用make menuconfig好了。界面虽然比上面一个差点,总比make config的要好多了。选择相应的配置时,有三种选择,它们分别代表的含义如下:

  Y--将该功能编译进内核
  N--不将该功能编译进内核
  M--将该功能编译成可以在需要时动态插入到内核中的模块
在每一个选项前都有个括号, 但有的是中括号有的是尖括号,还有一种圆括号。 用空格键选择时可以发现,中括号里要么是空,要么是"*",而尖括号里可以是空,"*"和"M"。这表示前者对应的项要么不要,要么编译到内核里;后者则多一样选择,可以编译成模块。而圆括号的内容是要在所提供的几个选项中选择一项。在编译内核的过程中,最烦杂的事情就是这步配置工作了,不清楚到底该如何选取这些选项。实际上在配置时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要选择。选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响;不需要的功能就不要选;与内核关心紧密而且经常使用的部分功能代码直接编译到内核中。下面对选项分别加以介绍。



1.Code maturity level options代码成熟等级

此处只有一项:prompt for development and/or incomplete code/drivers,如果要试验现在仍处于实验阶段的功能,比如khttpd、IPv6等,就必须把该项选择为Y了;否则可以把它选择为N。 在Linux的世界里,每天都有许多人为它发展支持的driver和加强它的核心。但是有些driver还没进入稳定的阶段。但其作者很欢迎其他人去测试这些driver并提出一些bugs。这个问题是说,有一些drive还在做测试中,问您是否要选择这些drive或支持的程序码。

如果键入Y,往后将会出现一些还在测试中的东西给您做选择。(像Java的程序码和PCI bridge),台则就键入N。

2. Processor type and features处理器类型和特色

#Processor family (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC,PPro/6x86MX) [PPro/6x86MX] ------选择处理器类型,缺省为Ppro/6x86MX。它会对每种CPU做最佳化,让它跑得快又好。一般来说,没有选择正确的CPU并不会有重大的影响(特别是选择386 ,这样编译出来的核心也许会比较小但它的速度可能就会变慢了)。所以,最好要知道您的CPU是哪一种。不过,如果您的gCC编译器是2.7.0版以前的。那么只能选择386或是486。

#High Memory Support------内核支持的最大内存数,缺省为1G。可以支持到4G、6.4G,一般可以不选.

#Math emulation------这项询问是否需L1nux核心模拟数学浮点运算器。如果有486Dx、AMD以及Pentium机器的话,这个选项就不必选了,因为它们都有内建的浮点运算器。协处理器是在386时代的宠儿,现在早已不用了。不过,对于有内建浮点运算器的人来说,选了这个选项并不会因此让内建的浮点运算器失效。但它会增大核心约45KB。

#MTTR (memory type range register)support------选择该选项,系统将生成/proc/mtrr文件对MTRR进行管理,供X server使用。同时用来启动pentinum pro和pentinum II 的特殊功能,如果你用的不是这类CPU就选N,否则也仅仅是使内核变大而已。

#Symmetric multi-processing support------对称多处理支持。除非有多个CPU,否则就不用选了。

3. Loadable module support对模块的支持.

首先,了解一点关于模块的知识。模块就像你特意插入核心中的某些东西,如果办公室有一个小网络并且有时想用一下(但并不经常),也许你想把网卡编译成一个模块。使用这个模块,机器必运行和存取/libs下的模块,意思是驱动程序(IDE,SCSI等但必须是NFS支持的网卡),文件系统(通常是ext2但也可以是nfs)和核心类型(最好是elf)必须编译在内核并且不能是模块,模块只有核心引导时才起作用,驱动程序(来网络)的存取,和文件系统安装。这些文件必须编译在核心内否则将能安装启动分区。如果安装启动分区和网络,你需要网络系统文件,和己经编译的网卡。为什么要使用模块? 模块化使核心变的更简捷,它减少核心释放大量的受保护的空间。模块的安装和卸载使用的空间是可重复分配利用的。如果你打开机器有90%以上的时间用到一个模块,编译它。运用这类模块是浪费内存的,原因是一旦你编译了模块它们同样将占用大量的内存,核心需要一些代码来挂上模块。记住,核心在保护空间运行,但模块并不是。这么说,并不经常使用我的设备,把它编译成只支持ext2,ide和elf。而一直使用的网卡,把其它的编译成模块:如a.out, java, floppy, iso9960, msdos, minix, vfat,smb,nfs,smcultra(ethernetcard),serial,printer,sound,ppp,等等。它们许多只是在这或那用上那么几分钟。严格的说,这样做会使核心增大许多而降低它的执行速度。这时我们就可以把这些可能会用的驱动程序编译成一个—个的模块,在需要用的时候才用insmod这个指令加入核心,不用的时候也能rmmod把它从核心移除,或是用lsmod察看目前所载入的模块。这里面有三项:

#Enable loadable module support------除非准备把所有需要的内容都编译到内核里面,否则该项应该是必选的。

#Set version information on all module symbols------通常,我们更新核心版本之后,模块耍重新的编译。这个选项使您不必更新编译模块而能使用以前的模块。可以不选它。但如果您选y,则按照它的说明,您必须有genksyms这个程序(可用whereis指令查看有无此程序)。

#Kernel module loader------让内核在启动时有自己装入必需模块的能力,建议选上。

注意:在开机就会 mount 上来的 partition 的 FS 、device driver 记得要 compiler 进 kernel,不能把它弄成 modules。请不要夸张到为了完全模组化而忘了把ext2fs和IDE dirver compiler 进 kernel 里。

#Support for hot-pluggabel devices ------热插拔设备支持。支持的不是太好,可不选。

#PCMCIA/CardBus support------PCMCIA/CardBus支持。有PCMCIA就必选了。

#PCI bridge optimization (experimental) ------在某些支持BIOS上,它能让存取速度加快,建议是选Y。

#Backward-compatible /proc/pci------设备兼容,自己看help。

#System V IPC 如果将来想编译dosemu(DOS模拟器),则这个选项一定要选,它是一个让各个程序(process)同步且能彼此交换数据的函数库和一些系统的调用,没它,很多的程序将会无法执行。

#BSD Process Accounting------

#Sysctl support------除非你的内存少的可怜,否则你应该启动这个功能,启用该选项后内核会大8K,但能让你直接改变内核的参数而不必重新开机。

#Kernel support for A.OUT binaries ------a.out的执行文件是比较古老的可执行码,用在比较早期的UNIX系统上。Linux最初也是使用这种码来执行程序,一直到ELF格式的可执行码出来后,有愈来俞多的程序码随着ELF格式的优点而变成了ELF的可执码。将来势必完全取代a.out格式的可执行码。但目前由于沿有许多的程序还没有取代过来,所以只好选择Y,等将来有一天,全部的程序都变成了ELF的天下时,那时再disable掉。

#Kernel support for Linux/Intel ELF binaries ------由上所述,这个当然y哩,因为目前gcc-2.7.0以上的都有支持ELF了,如果没有选择这一项,可能会使用相当多的程序因此无法执行。

注意:编译模块成ELF和编译支持ELF二进制。不编译适当的支持’’gotcha’’是明智的,如果机器结构是Pentium或486你将得到高效的代码,但一个386的核心将运行在32-bit compatible clone;一个Pentium核心将不。为大多机器制作一张紧急启动盘,最好在386下编译,而386并不能运行在Pentium下编译的核心。

另外一点要注意的,你不能同时把 a.out 和 ELF 支援编译成 modules,否则当你为了能够使用 insmod 而用 insmod 来载入 a.out/ELF modules 时会有 Catch/22 状况发生。如果你的系统主要是 ELF 而你偶尔会需要用到a.out,你可以把 a.out 支援编译为modules,否则你最好把它直接放入 kernel 之中。如果你还没进入 ELF 的世纪,在 compiler kernel 时可以直接把 ELF 支援去掉。

#Kernel support for JAVA binaries ------ 这一项是正在做测试中的产品,但是如果想写有关Java的程序,希望它能在Linux的机器上跑。那么,可以选择把它编成一个模块或是直接把它编进核心里。

#Power Management support ------电源管理支持。

##Advanced Power Management BIOS support------高级电源管理BIOS支持。这通常是用在笔记本电脑上的东西,如果您有APM的BIOS,支持省电的设备的(有电池的那种),那么您可以选上这项,一般人这一项是选n,以避免一些可能会发生的问题。后有8个选项。

#Parallel port support ------串口支持。

5. Plug and Play configuration即插即用支持

Linux对即插即用目前支持的不如Windows,好有些情况下会和其他设备产生冲突(I/O,DMA,IRQ等)。这个选项对PCI设备没有影响,因为他们天生就是PNP设备。

#Plug and Play support (CONFIG_PNP) ------ 选择“y”,内核将自动配置即插即用设备。原来PNP还有这个意思。接到声卡上的,则这个选项也需要选N,稍后我们会有非IDE的光驱厂牌让我们挑选。现今的光驱通常是IDE/ATAPI界而的,所以这个选项通常是Y。

#Support removable IDE interfaces(PCMCIA)------这个选项对大部分的人全选n,除非您有PCMCIA的东西,这通常是笔记本电脑上看得到的东西。 PCMCIA是一个组织,在以前是设计内存条的。但现在他们对于PCCARDS定了一个标排,并很广泛的应用在1aptap的电脑上。不但有所谓的PCMCIA的硬盘,甚至有网络卡、SCSI卡等,不过,大部分的人并不需要这个选项。

这个选项选完后,以下则是Linux核心对几种芯片的IDE界面做修正或是加强它。

#CMD640 chipset bugfix/support------ 很多 486和 586的主机板都是用 CMD640的芯片,它是Neptune芯片和 SIS芯片的结合。不过,这种芯片有它的缺点,在许多的情形下,它会造成数据的流失和错误。如果您选了这一项,则Linux核心会为您小心的寻找这些 错误并修正它。而且,它会打开对二个IDE界面的支持。不过,在它的说明文件中提到,如果您的主机板没有PCI界面只有VESA总线界面却希望有这项功能的话,则您必须传一些 参数给核心(ideo=cmd640_vlb)。如果不确定上面所说的,选择Y。

#CMD640 enhanced support------一般来说,对于硬盘的存取速度来说,有所谓的 PIO MODES值设定,现今的 IDE界面及 BIOS应该都能侦测到正确的硬盘PIO MODE值了。此值愈高表示硬盘的存取的速度愈快。可是,有些主机板的B10S还是旧式的,不能抓到比较高的 PIO MODE值,如此一来,便不能发挥整台硬盘的效率。这个设定告诉读者说:如果您的IDE界面是CMD640为基础*1*7和586的主机板都在使用它。可以查查主机板的说明书或是 IDE接口卡的说明书做确定。文件上提到,选择这个将会降低一些速度,但是数据能百分之百的正确。

#Intel 82371 PIIX(Triton I/II) DMA support------对于586的Pentium电脑来说,有相当多的主机板都是用Intel的Triton芯片,使用这种芯片的最大好处是支持直接内存存取DMA,而节省您的CPU时间。在以往还没有DMA这个东西时,读取硬盘需要耗用许多的CPU时间。如此一来,CPU被占用,就不能充分的发挥它的功效。后来,DMA出来后,硬盘的读取便靠Triton或其他有支持DMA的IDE界面的芯片,直接与它们做沟通,而节省了大量的 CPU时间,但这必须您的硬盘和主机板有同时支持 DMA的 IDE界面的芯片,直接与它们做沟通而节省了大量的 CPU时间。但这必须您的硬盘和主机板有同时支持DMA MODE才行。

##other IDE chipset support------
如果这上选项选y,则会出现下列六种其他的芯片或厂牌供您选择。
* NOte: most of these also require special kernel boot paraaeters
ALI M14xx support
DTC-2278 support
Holtek HT65608 support
PROMISE DC4030 support
QDI QD6580 support
UMC 8672 support
上面这六种厂牌的

## Additional Block Devices其他的块设备

#Loopback device support------大部分的人这一个选项都选N,因为没有必要。但是如果你要mount iso文件的话,你得选上Y。这个选项的意思是说,可以将一个文件挂成一个文件系统。如果要烧光盘片的,那么您很有可能在把一个文件烧进去之前,看看这个文件是否符合IS09660的文件系统的内容,是否符合您的需求。而且,可以对这个文件系统加以保护。不过,如果您 想做到这点的话,您必须有最新的mount程序,版本是在2.5X版以上的。而且如果您希望对这个文件系统加上保护,则您必须有des.1.tar.gz这个程序。注意:此处与网络无关。

#Multlnle devices driver support------这个选项可以让把整个硬盘分区变成一个单独的区块设备,您必须有md035.tgz这个程序。而且在做这件事之前请将您的硬盘备份,因为它尚在测试阶段。一般人对这个选项是选N。

#RAM disk support------如果使用过DOS下的ramdrive程序,应该能了解这个选项的意义。它可以把内存当成硬盘来做存取就如同一般的硬盘一样,可以format它,或是放一些文件在里头。然后,当您关机这些数据也随着之而去了。如果的RAM够大,可以考虑玩玩这选项,但一般人都不需要。

#XT hard disk support------支持XT的古董硬盘,这是IBM电脑时代的东西,如果您还有这种很旧很旧的硬盘。那么,您可以把它编进核心或是编成一个模块。大部分的人这个选项都是选择N的。

#Compaq SMART2 support------

#Mulex DAC960/DAC1100 PCI RAID Controller support------RAID镜像用的。

#Logical volume manager(LVM)support------逻辑卷管理支持。

#Multiple devices driver support------多设备驱动支持。

#RAM disk support------RAM盘支持。

## Additional Block Devices其他的块设备

#Loopback device support------大部分的人这一个选项都选N,因为没有必要。这个选项的意思是说,可以将一个文件挂成一个文件系统。如果要烧光盘片的,那么您很有可能在把一个文件烧进去之前,看看这个文件是否符合IS09660的文件系统的内容,是否符合您的需求。而且,可以对这个文件系统加以保护。不过,如果您 想做到这点的话,您必须有最新的mount程序,版本是在2.5X版以上的。而且如果您希望对这个文件系统加上
保护,则您必须有des.1.tar.gz这个程序。注意:此处与网络无关。

#Multlnle devices driver support------这个选项可以让把整个硬盘分区变成一个单独的区块设备,您必须有md035.tgz这个程序。而且在做这件事之前请将您的硬盘备份,因为它尚在测试阶段。一般人对这个选项是选N。

#RAM disk support------如果使用过DOS下的ramdrive程序,应该能了解这个选项的意义。它可以把内存当成硬盘来做存取就如同一般的硬盘一样,可以format它,或是放一些文件在里头。然后,当您关机这些数据也随着之而去了。如果的RAM够大,可以考虑玩玩这选项,但一般人都不需要。

#XT hard disk support------支持XT的古董硬盘,这是IBM电脑时代的东西,如果您还有这种很旧很旧的硬盘。那么,您可以把它编进核心或是编成一个模块。大部分的人这个选项都是选择N的。

#Compaq SMART2 support------

#Mulex DAC960/DAC1100 PCI RAID Controller support------RAID镜像用的。

#Logical volume manager(LVM)support------逻辑卷管理支持。

#Multiple devices driver support------多设备驱动支持。

#RAM disk support------RAM盘支持。

7. Networking options  网络选项

这里配置的是网络协议。

#Packet socket ------ 选择“Y”,一些应用程序将使用Packet协议直接同网络设备通讯,而不通过内核中的其它中介协议。

#Kernel/User Network link driver------这个是在测试中的程序码,一般人不需要用。依它的说明,它允许在核心、模块或程序间的某些部分间,彼此做双向的沟通。如果想使用arpd,则这个程序码就要加进核心里。

#TCP/IP networking------选择“Y”,内核将支持TCP/IP协议。这个选项无论如何请您选择Y,即使没有网络卡,或是没有连到网络上的设备,在linux上仍有所谓的lookback设备而且有些程序需要这个选项。在说明文件中提到,如果您没有打开这个设定,则X-window system可能会有问题(回为它也需要 TCP/IP)。

#Network firewalls------选择“Y”,内核将支持防火墙。Firewalls依英文看是防火墙。在网络愈来愈发达的今天,网络安全的考虑也愈来愈重要了。在局域网上找一台电脑来保护自己的考虑也愈来愈多了。可以在一局域网上找一台电脑来保护自己区域内的电脑。这样的结果是,所有外部的电脑如果要连进内部的电脑就必须通过这台装有Firewalls电脑的同意。所以,如果您希望这台电脑有着过滤网络的功能的话,那么这个选项要选 Y。而且,等一下有个IP firewalling的选项也要选y;但下面的forwarding/gatewaying要选n,如此才能让它正常动作。大部分的人这个选项选N。

#Network alasing------允许有多个IP地址。

#IP:forwarding/gatewaying ------ 和 Firewall相反,这个选项是用来疏导网络的。一个gateway(也就是router),要帮忙疏导两个网络间的数据传送。这台机器必须要有两张网络卡,连接两个个同的网络,做疏导网络的工作。如果选择了这个选项,则表示想让这台负责做router。那么,就必须有两张网络卡了。另外有一种情形是,如果您有MODEM(通过串列界面以 SLIP和 PPP协议)和网络卡,并用它们来连上Internet。这时您也一样可以执行IP-routing服务,也需把这个选项打开。

#IP:multicasting------所谓的multicasting是群组广播,它是用在视频会议上的协议,如果想送一个网络封包(网络的数据),同样的一份数据将送往十部机器上。您可以连续送十次给十台机器(点对点的传送),也可以同时送一次,然后让十台机器同时接收到。当然后者比前者好,由于视频会议要求是最好每个人都能同时收到同一份信息,所以如果您有类似的需要,这个选项就要打开。同时您还必须去找相关的软件。

#IP: accounting------如果您打开这个选项,您就可以在/proc/net下看到系统对于整个网络状况的纪录。所以一般的人这个选项都是选y。而且,如果您设计把这台Linux机器当router用,那么读者可以因为这个选项而获得许多有关于网络lP控制的信息和它的输送情形。不过,您必须在底下的选择中选择proc系统(其实proc文件系统一定要选,不选很多程序会不能用!)

#IP:aliasing support------也许您只有一张网络卡,但经由这个设定,您可以拥有数个IP地址。假设您已经有一个lP地址了,您还想再加入其他的IP地址,这时,您可以依下面的程序来做。

在 shell下键入:

sunlyy:/#ifconfig eth0:0其他的IP地址(这个IP地址不能与其他机器重复)

sunlyy:/# route-add-host其他的IP地址 dev eth0:0

如此您就可以同时拥有两个IP地址了。当然,如果想把这个IP地址去除,那么可以键人:
原来是Linux下可以支持电话卡,这样你就可以在IP上使用普通的电话提供语音服务了。记住,电话卡可和modem没有任何关系。

9. SCSI support SCSI设备支持

如果有 SCSI 设备,就回答 Y 。现在一般PC机不会有SCSI。接着会有提示要求更进一步的资讯,像是你是否要支援光驱,硬盘,还有你使用的是那一种 SCSI 界面卡。这部份请参阅SCSI-HOWTO ,有更详细的说明。如果你的启动分区是SCSI设备,不要选择SCSI模块支持。在一般的SCSI后是SCSI低级设备驱动程序。再次重申,模块仅仅是用在不在启动分区的设备。

#SCSI disk support------指硬盘而言,如果有SCSI硬盘,那么就要选这个选项。

#SCSI tape support------指磁带机而言,如果您有SCSI的磁带机,那么就要选这个选项。

#SCSI CDROM support------指CDROM,如果您有SCSI光驱,这一项一定要选。

#SCSI generic support------指其他有关SCSI的东西,也许您有一台SCSI的扫描器或是烧录机,或是其他有关SCSI的配备,您就要选这一项。而且,除此之外,您还必须准备关于这些配备的软件。

##Some SCSI devices(e.g. CD jukebox)support multiple LUNs

#Probe a11 LUNs on each SCSI device------通常这个选项大部分的人都不会选。我们举个例子来说,如果您的SCSI光驱是那种多片装的,就是一台光驱,但可以一次放好几片光盘片的那种。这种我们叫做Lun。
#Verbose SCSI error reporting(kernel size+=12K)------如果认为您的SCSI硬件配备有些问题,想了解一下它出现的错误信息。那么您可以把这个选项选y,Linux核心会告诉您有关于您的SCSI配备的问题(如果有的话)。不过,它会增加核心约 12KB左右。

##SCSI low—level drivers

下面总共有接近30张的SCSI卡,您可以依需求做选择SCSI卡牌子。
c AIA1542 support
AdaPtec AIHA1740 support
AdaDtec AHA274X/284X/294X support
AdaPte 7000FASST SCSI support
AdaPtec AHA152X/2825 support
Advansys SCSI support
Always IN2000 SCSI support
Advansys SCSI support
Always IN2000 scsi support
AM53/79C974 PCI SCSI sppport
Buslogic SCSI Support
DTC3180/3280 SCSI support
EATA ISA/EISA(DPT PM2011/021/012/022/122/322) support
EATA-DMA(DPT,NEC,AT&T,SNI,AST,01ivetti,Alphatronix)support
EATA-PIO(old DPT PM2001,PM2012A) support
Future Domain 16xx SCSI support
Generic NCR5380/53c400 SCSI support
NCR53c405a SCSI support
NCR53c7,8xx SCSI support
NCR53CSXX SCSI support
IOMEGA Parallel Port ZIP drive SCSI support
PAS16 SCSI SUpport
Qlogic FAS SCSI support
Qlogic lSP SCSI support
Seagate ST-02 and future Domain TMC-8xx SCSI support
Trantor T128/T128F/T228 scsi support
Ultrastor 14F/34F support
Ultrastor SCSI support
10. I2O device support
这个也不清楚,帮助里说是这个需要I2O接口适配器才能支持的,在智能Input/Output(I2O)体系接口中使用,又是要硬件,不选了。
11. Network device support网络设备支持上面选好协议了,现在该选设备了,内容多得很。还好里面大概分类了,有ARCnet设备、Ethernet(10 or 100 Mbit)、Ethernet(1000Mbit)、Wireless LAN(non-hamrad
io)、Token Ring device、Wan interfaces、PCMCIA network device support几大类。耐心点,一般说来都能找到自己用的网卡。如果没有,你只好自己到厂商那里去要驱动了。 如果这个选项没有打开的话,那么以下的选项将不会出现。它是在选择网络卡或是网络的设备。例如,PLIP,PPP,SLIP,还有各式各样的网络卡,所以这个选项通常是选y。

#Dummy net driver support------如果有SLIP或PPP的传输协议,那么要把这一项打开。因为一来它不会让您的Linux核心增大。二来,对某些应用程序来说,它可以让我们模拟出来的TCP/IP环境更像TCP/IP环境。如果您没有SLIP或PPP协议,就不用打开了。

#EQL(serial line load balancing) support------如果有两个MODEM,两条电话线,而且用SLIP或PPP协议,可以用这个Driver以便让您的MODEM有两倍的速度。当然,在网络的另一端也要有同样的设备。

#PLIP(parallel port) support------依字面上看,它是一种利用打印机的接口(平行接口),然后利用点对点来模拟TCP/IP的环境。它和 SLIP/PPP全都属于点对点通讯,您可以把两台电脑利用打印机的连接接口串联起来,然后,加入此通讯协议。如此一来,这两部电脑就等于一个小小的网络了。不过,如果电脑有提供打印服务的话,这个选项最好不要打开,不然可能会有问题(因为都是用平行接口)。

#PPP(point-to-point)support------点对点协议,近年来,PPP协议已经慢慢的取代SLIP的规定了,原因是PPP协议可以获取相同的IP地址,而SLIP则一直在改变IP地址,在许多的方面,PPP都胜过SLIP协议。

#SLIP(serial line) support------这是MODEM族常用的一种通讯协议,必须通过一台Server(叫ISP)获取一个IP地址,然后利用这个IP地址,可以模拟以太网络,使用有关TCP/IP的程序。

##Ethernet(10 or 100Mbit)

如果您在学校接了校园网络并且使用网络卡,那么这个选项一定要选y,否则以下对网络卡的选择将不会出现。或是您有网络卡,这时您同样的也要选y。之后,下面会列出许多网络卡让您选择。像我们平常用的都是NE2000相容卡。

#3COM cards
#AMD LANCE and PCnet(AT1500 and NE2100) support
#Western Digital/SMC cards
##other ISA Cards(CONFIG.ISA)------选y,以下才会列出有关ISA的网络卡。包括NE2000的兼容卡。
Cabletron E21xx support
DEPCA, DE10x, DE200, DE201, DE202, DE422 support
EtherWORKS 3(DE203, DE204, DE205) support
EtherExpress 16 support
HP PCLAN+(27247B and 27252A) support
HP PCLAN(27245 and other 27xxx series) support
HP 10/100VG PCLAN(ISA, EISA, PCI) support
NE2000/NE1000 support
SK.G16 support

# EISA, VLB, PCI and on board controllers ------选择网络卡,包括直接附在主机板上的那种。如果选择y,则底下会列出其他的网络卡让您做选择,这些卡对于一般人来说很少会去用到。所以大部分的人这项是选N的。

#Pocket and portable adaptors------通常用在可携式的电脑上,这类型的网络卡(口袋型的),由于体积很小在安装和取下方面很方便,因此笔记本相关电脑上便常常采用这种网络卡。

#Token Ring driver support------Token Ring是 IBM电脑上的网络。它叫令牌环网络,和以太网络是很类似的东西。如果您希望使用的Token Ring网络卡以便连接到这种网络,那么选Y,一般人都选N。

#ARCnet support------这也是一种网络卡,通常一般人用不到,所以选n。如果您有这样的网络卡,请看Documentation/networking/arcnet.txt的说明。



12. Amateur Radio support 业余无线广播 

可以用来启动无线网络的基本支持,目前的无线网络可以通过公众频率传输数据,如果你有此类设备就可以启用,具体请参考AX25和HAM HOWTO 文档。

13. IrDA(infrared)support红外支持

14. ISDN subsystem

如果使用ISDN上网,这个就必不可少了。ISDN(Integrated Services Digital Network),它的中文名称是综合数字服务网络,是一个利用电话线,把声音,影片信息以数字的方式传送的数字网络,它需要电话交换机设备有支持ISDN,这通常需要电信局来做安装,对于在家工作的人来说,ISDN可能是最舒适最便宜的一种方式,因此有愈来愈多的人使用它。不过,除非是公司,不然一般人很少会使用到ISDN的,所以这部分的选项大都选N。如果您选择Y,则下面会出现一些有关ISDN的问题。如果需要用到ISDN,可以去看看杂志的介绍。只要是有关网络的杂志应该都会有介绍。还需要启用Support synchronous PPP选项(参考PPP over ISDN)。

15. Old CD-ROM drivers(not SCSI、 IDE)非SCSI/IDE口的光驱如用IDE的CD-ROM,不选。

以下是选择非 IDE/ATAPI和 SCSI界面的光驱,这些光驱通常有自己专属的接口卡也是比较旧型的光驱类型。如果有这些光驱,则这个选项要选y,否则选n。如果您选择n,则会跳过以下光驱的选项。

Aztech/ orchid/okano/Wearnes/IXC/CyDROM CDROM support
Goldstar R420 CDROM support
Matsllshita/panasonic/Creative,longshine,TEAC CDRW Support
Mitsllmi(no XA/MUltisessIon) CDROM Support
Mitsumi(XA/Multisession) CDROM support
optics Storage DCLPHIN 8000AT CDROM support
Philips/LMS CM206 CDROM support
Sanyo CDR-h94A CDROM sunnort
Soft configurable CDROM interface card support
Sony CDU3lA CDROM sunnort
Sony CDU535 CDROM support

16. Character devices字符设备
所谓字符设备通常是指以字符为单位做处理的设备,例如终端机就是其中一项。原则上,我们对于这些选项的选择也是以预设为主。这个内容又太多了,先使用缺省设置,需要的话自己就修改。把大类介绍一下吧:

#Virtual terminal ------ 选择“y”,内核将支持虚拟终端。

#Support for console on virtual terminal------选择“y”,内核可将一个虚拟终端用作系统控制台。

#Standard/generic (dumb) serial support-------选择“y”,内核将支持串行口。标准序列接口的选定。如果您是用serial的鼠标(大部分的人都是用这个),或是MODEM的话,则这一项一定要选。大部分的人这一项都选y。

#Support for console on serial port------选择“y”,内核可将一个串行口用作系统控制台。

##I2C support------I2C是Philips极力推动的微控制应用中使用的低速串行总线协议。如果你要选择下面的Video For Linux,该项必选。

#Mice鼠标。现在可以支持总线、串口、PS/2、C&T 82C710 mouse port、PC110 digitizer pad------根据需要选择。非串行的鼠标,支持象PS/2。看一看你鼠标的键。许多双键鼠标是PS/2,即使它们的连接看起来象串行的.。

#PS/2 mouse (aka "auxiliary device") support ------- 如果用户使用的是PS/2鼠标,则该选项应该选择“y”。

#Joysticks------手柄。即使在Linux下把手柄驱动起来意义也不是太大,游戏太少了。

#Watchdog Cards:虽然称为Cards,这个可以用纯软件来实现,当然也有硬件的。如果你把这个选中,那么就会在你的/dev下创建一个名为watchdog的文件,它可以记录你的系统的运行情况,一直到系统重新启动的1分钟左右。有了这个文件,你就可以恢复系统到重启前的状态了。

#Video For Linux------支持有关的音频/视频卡。

##Ftape, the floppy tape device driver---  

#Digiboard PC/Xx Support------这是一张叫 Digiboard PC/XX卡的 driver,这种卡上面有很多个 serial port的插槽(一般来说只有两个),可以用来连接很多个MODEM,在民间的BBS站很常用到,如果您有这样的东西,您必须选这项为y。有兴趣的读者可以读读Documentation/digiboard.txt的内容。

#Cyclades async mux support------同上,这也是一种能接很多个serial port插槽的卡的驱动程序。

#Stallion multlport serial support------同上,这也是其中一种卡。

#SDL RISCom/8 card support------这也是其中的一个支持muti-serial卡的driver。

#Parallel printer support------有打印机的或是使用到并行接口的人这一项一定要选。除非是用serial的打印机。还有如果您有使用PLIP,那么这项也请选上。

#Mouse support------大部分的人这一项并不用选y。因为大部分的人是用serial的鼠标,除非有些人是用一种附有接口卡的鼠标,这时这个选项才要选上,如果您选y,则底下会列出您的BUS鼠标所用的接口卡。

#support for user misc device modules------除非您有所谓的触摸式显示器或是光笔等东西,否则这一项选n。

#QIC-02 tape support------非 SCSI界面的磁带机,除非您有,否则选 n。

#Ftape(QIC-80/Travan)support------如果有磁带机,而这个磁带机是接在软盘控制卡上,这个选项才要选y。

#Watchdog Timer support------一般人不需要这个选项,如果您选上这个选项,则您要用mknod在/dev下建一个watchdog的文件。请看Documentation/watchlog.txt的解释。

#Enhanced Real Time Clock Support------关于系统上Clock的东西,您必须自己用mknod在/dev/下建立一个文件叫rtc。如此一来,在/proc/下将可以看到rtc的信息。有关于rtc的内容请看Documentation/rtc.txt。一般是选n。

17. USB supprot USB支持
很多USB设备,比如鼠标、调制解调器、打印机、扫描仪等,在Linux都可以得到支持,根据需要自行选择。

18. File systems文件系统
Linux上有支持约二十几种的文件系统,有支持某个文件系统的意思是,可以存取某个文件系统的数据或是做拷贝动作。在这些文件系统中,通常的选择方法是按照原来预设的方式,不过,在其中,EXT2FS那个选项无论如何一定要选,因为那是Linux系统所使用的文件系统。其他的则依需求做选择。

通常是ext2而让其余的使用模块。

#Kernel automounter support------选择“y”,内核将提供对automounter的支持,使系统在启动时自动 mount远程文件系统。

#Standard( minix )------新的套件不再建立 minix 文件系统,而且很多人不使用它,但是把它配置在核心里仍然是个好主意。某些″rescue-disk ″ 程序会用到它,而且仍然有许多磁片可能用 minix 文件系统,因为 minix 文件系统对于处理磁片方面是最好的。当初Linus是因为对Minix这个小型的操作系统有很深的经验,所以才写出Linux这个操作系统。Minix文件系统通常用在磁盘上,有时会用到它。

#Extended fs ------ 这是扩充文件系统的第一版,现在已经不再使用。

#Second extented fs------这是现在新发行的套件所广泛采用的文件系统,你可能会有其中一种。这个是linux文件系统,请务必选y,如果问我说选n会有什么后果,我也不知道。除非您能把 Linux装在 DOS的目录下。

#xiafs filesystem-----这个文件系统曾经一度很普遍,但是在写这份文件时,我已经不知道有任何人在使用它了。

#DOS FAT fs ------DOS FAT文件格式的支持,可以支持FAT16、FAT32。这个选项是DOS的文件系统,如果您没有选y,则下面的MSDOS,VFAT,umsdos将不会出现。

#msdos------DOS文件系统的格式。如果你想要在 linux 下使用你硬盘中的 MS-DOS 分割区,或是想将用 MS-DOS 格式化的磁盘挂进来的话,回答y 。

#VFAT(Windows95) fs ------windows95所支持的文件系统,是我们常说的vfat文件系统,如果您的系统中装有windows95,那么选择这个文件系统将对以让您看到windows95的长文件名。

#umsdos: UNIX like fs on top of std MSDOS FAT fs ------ 如果把Linux装进DOS的一个目录下那么您则要选择这一项。不建议这样做,因为如此一来,就不能看到长文件名了。而且效率上,井不是很好。

#ums-dos------相当 slick 的文件系统,它能使 MS-DOS 文件系统拥有更多的特性,像是长档名等等。这对那些不使用 MS-DOS 的人(像我)并不是很有用。

#/proc------这是最 slick 的文件系统之一。它不是你硬盘分割区里的任何东西,不占用硬盘的空间,而是核心与程序之间的文件系统介面,它表示的只是内存里头的状况和各个程序执行的情形,它也记录了您硬件上配备。。许多程序工具(像″ps ″)都会用到它。如果已经将它安装好了,有空不妨试试看″cat/proc/meminfo ″或者是″ cat /proc/devices ″。有些 shells ,像是 rc ,会用 proc/self/fd(在其它系统上为/dev/fd )来处理输出入。几乎可以确定你在这里得要回答y ,有许多重要的 Linux标准工具是靠它来运作的,否则有些指令会出问题。

#Root file system on NFS------一般不选,除非您的电脑上没有硬盘,希望通过网络由别人的硬盘开机过Linux如此一来才有需要选这项。同时对方也要执行rarp的服务。

#System V and Coherent------这是为 System V 以及 Coherent 的分割区而设的。如果希望支持System V或Xenix的相关UNIX系统的FS并读取它们的数据,那么才有必要选这个,否则一般来说这个选项是选n的。

#Quota support ------Quota可以限制每个用户可以使用的硬盘空间的上限,在多用户共同使用一台主机的情况中十分有效。

#ISO 9660 CD-ROM file system support------光盘使用的就是ISO 9660的文件格式。

#Mandatory lock support------有些很特殊的database应用软件会用到它,一般人这个选项是选n。而且,如果选y的话,必须有最新版的NFS软件,最新版的samba软件等。

#NTFS file system support------ntfs是NT使用的文件格式。

#UFS filesystem support-----这是BSD,SunoS,FreeBSD,NetBSD或Nextstep所使用的文件系统。如果您在电脑上有这些操作系统的话,那么可以选这一项。否则一般人都选n。

##Network File Systems------网络文件系统
# NFS------如果你在网络环境下而且想要分享档案,回答 y 。如果希望挂上别的电脑的文件系统,那么这个选项一定要选进去。它可以让您利用网络把别人的硬盘当成自己的来使用(把它变成一个目录)。对于一般人来说,这个选项是选y。

#SMB filesystem support------这个文件系统让您可以挂上windows95或windowsNT的文件系统,也就是您也可以抓到在windows下,网上邻居上的电脑。

#SMB long filename support------支持windows95的长文件名。

#NCP filesystem support------NCP是一种网络的通讯协议,用在跑IPX协议上,它可以利用IPX协议让两台电脑之间的文件共享,并做沟通。如果您想挂上有关Novell的Netware文件系统,那么这个选项就选上去吧。

##Partition Types-----分区类型,该选项支持一些不太常用的分区类型,用户如果需要,在相应的选项上选择“y”即可。

##Native Language Support------本地语言支持
附:不知道需要那些文件系统怎末办?
键入″ mount ″它看起来会像这样:
sunlyy% mount
/dev/hda1 on / type ext2 (defaults)
/dev/hda3 on /usr type ext2 (defaults)
none on /proc type proc (defaults)
/dev/fd0 on /mnt type msdos (defaults)
仔细看看每一行;在” type ”后面的那个字就是文件系统的格式。在这个例子中,我的 / 和 /usr 分割区是 second extended 格式,我使用 /proc ,而且挂有一张以msdos (bleah) 为文件系统格式的磁片。如果你有使用 /proc ,可以试试″cat /proc/filesystems ″。它会给你一份目前使用的核心所支援的文件系统列表。

19. Console drivers 控制台驱动
#VGA text console ------ 选择“y”,用户就可以在标准的VGA显示方式下使用Linux了。一般使用VGA text console就可以了,标准的80*25的文本控制台。

#Video mode selection support

20. Sound sound声卡驱动

如果你能在列表中找到声卡驱动那自然最好,否则就试试OSS了。阅读帮助文件从列表中小心的选取。确信为你声卡真确的选择了I/O和IRQ。声卡的MPU I/O是0选项。一般是330,如果不对不必担心。模块的好处就是在核心编译以后你还能重新编译、安装模块并挂上核心。

如果有声卡,请去了解一下声卡的 IRQ和 DMA等信息,并了解是属于哪一种的。现在大部分的人使用的都是Sound Blaster或是它的相容卡。有关这类的信息请看各个声卡的说明书。当选Y时,出现下面的画面。就依您的声卡来做选择吧!

Pro Audio Spectrum 16 support
Sound Blaster(SB,SBPro,SB16,clone) support
Generic OPL2/0P13 FM synthesizer support
Gravis Ultrasound support
MPU-401 support(NOT for SB16)
6850 CART Midi support
PSS(ECho-AD12111)support(NOT for SB16)
16 bit samplins option of GUS(N0T_GUS_MAX)
GUS MAX support
Microsoft Sound System support
EnsolliQ Soundscape support
MediaTrix AudioTrix Pro support
Support forMAD16 and/or Mozart based cards
Support for Crystal CS4232 based(PnP) cards
Support for Turtle Bench Wave Front (Maul,Tropez)synthesizers

#/dev/dsp and/dev/audio support------ 这个选项通常是必要的。因此大部分的人选y,如果没有这选项,则很多的游戏将没有声音效果。

#MIDI interface support------支持MIDI界面。

#FM synthesizer(YM3812/0PL-3) support

#I/O base for SB Check from manual of the card------声卡的I/O地址。括号是常用的选项。

#Sound Blaster IRQ Check from manual of the card-----声卡的IRQ,通常是1或5。

#Sound Blaster DMA 0,1 for 3-----声卡的DMA,通常是1。

#Sound Blaster 16 bit DMA 5, 6 or 7(usel for 8 bitcards)(SB.DMA2)-----5

#MPU401 I/0 base of SB16, Jazz16 and ES1688 Check from manual of the card------0

#SB MPU401 IRQ(Jazzl6, SM Wave and ES1688) Usel with SB16------1

#Audio DMA buffer size 4096,16384,32768 or 65536------65536

##Additional low level drivers------如有其他种类的声卡,则这项要选上去,以下会列出其他的声卡供选择。

21. Kernel hacking安全模式

通俗的说,这是windows安全模式,找不到明确解释,就引用这个说法。>这是从 Linus的README里摘录的:

″kernel hacking ″配置的细节通常会产生一个更大或是更慢的核心(或者是又大又慢),而且可能因为将一些常式配置成很活跃地去尝试中断一些不良的程序码以便找出核心里的问题,而使得核心变得比较不稳定。所以要产生一个核心″产品 ″的话,你在这

第四节 启用内核

通常,核心安装叫做vmlinuz。过去Unix使用者共同起了这名字。"z"表示压缩,"v"和"m"意思是"virtual"(虚拟)和"sticky(粘性的)",各自属于内存和磁盘管理。建议保留vmlinuz核心,直到知道它工作。

为了能够使用新版本的内核,还需要做一些改动:

#cp /usr/src/linux/System.map /boot/System.map-2.2.16
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.2.16

以上这两个文件是刚才编译时新生成的。下面修改/boot下的两个链接System.map和vmlinuz,使其指向新内核的文件:

#cd /boot
#rm -f System.map vmlinuz
#ln -s vmlinuz-2.2.16 vmlinuz
#ln -s System.map-2.2..16 System.map

注意:要保留vmlinuz核心,以下列步骤进行

#cp /usr/src/linux/System.map /boot/System.map-2.2.16
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.2.16
#cd /boot
#rm -f System.map
#ln -s System.map-2.2..16 System.map

现在#vi /etc/lilo.conf,增加如下一段:

image=/boot/vmlinuz-2.2.16 是设定为已经安装的核心
label=linux2.2.16 则是由 lilo 用来告诉你现在要启动的是那个核心或作业系统,
read-only
root=/dev/hda2 则是这个特别的作业系统的根目录/
  其中root=/dev/hda2一行要根据需要自行加以修改。

运行:#/sbin/lilo -v 保存执行命令:lilo你将看到核心标签,第一个是星号。如果你没有看到新核心的标签或LILO出现错误,你需要重新对/etc/lilo.conf工作(看下面的LILO分析)。

确认对/etc/lilo.conf的编辑无误,现在重新启动系统:

#shutdown -r now

不建议使用热启动或ctrl+Alt+del键。在一些情况下,文件系统不完全卸栽会损坏打开的文件。在LILO提示时,如果你需要启动旧的核心或使用一些参数启动,如果你没看见启动提示,你可以试用shift或ctrl键,这样启动提示就出现了。一旦出现,按tab看核心标签。输入标签和可选参数启动。通常,在/etc/lilo.conf文件指定的时间后自动启动核心。启动时,你可能看见一些出错信息就象SIOCADDR。这常常显示模块(一般是网络模块)没有引导。处理这事很简单,如果有此一错,"VFS,cannotmount root",你就不要在核心中编译适当的磁盘或文件系统支持。在机器重启后出现LILO时按TAB键,输入linux2.1.16,新内核发挥作用了。

附录:LILO分析(技术性强,仅供参考)

(因现在的Linux都转向于用GRUB,所以未post上来,如果大家有需要,可以告诉我,我把它post上来吧。)

你可能感兴趣的:(linux,网络应用,网络协议,dos,ide)