📄 kernel-howto-3.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7"> <TITLE>Kernel HOWTO 中译版: 如何真正进行核心的配置?</TITLE> <LINK HREF="Kernel-HOWTO-4.html" REL=next> <LINK HREF="Kernel-HOWTO-2.html" REL=previous> <LINK HREF="Kernel-HOWTO.html#toc3" REL=contents></HEAD><BODY><A HREF="Kernel-HOWTO-4.html">Next</A><A HREF="Kernel-HOWTO-2.html">Previous</A><A HREF="Kernel-HOWTO.html#toc3">Contents</A><HR><H2><A NAME="s3">3. 如何真正进行核心的配置?</A></H2><P><H2><A NAME="ss3.1">3.1 取得原始程式码</A></H2><P>你可以经由匿名 ftp 站从 <CODE>ftp.funet.fi</CODE> 的 <CODE><A HREF="ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus">/pub/Linux/PEOPLE/Linus</A></CODE>,或是其它 MIRROR 站取得.([<CODE>译注</CODE>] 台湾可从 <CODE><A HREF="ftp://ftp.edu.tw/OS/Linux/kernel">ftp.edu.tw</A></CODE> 取得.)档案名称一般是以标记成 <CODE>linux-x.y.z.tar.gz</CODE> 为代表,其中的 <CODE>x.y.z</CODE> 是版本编号.较新的(更好的?)版本以及修补档一般是放在类似 `<CODE>v1.1</CODE>' 以及 `<CODE>v1.2</CODE>' 这样的子目录下.数字最大的是最新的版本,而且通常是``测试版'',也就是说如果你对 beta 或 alpha 版感到不安的话,你应该停留在主要的发行版本上.<P><I>强烈</I>建议你去找 mirror 的 ftp 节点,而不要直接到 <CODE>ftp.funet.fi</CODE> 去! 底下是一些 mirrors 以及其他节点的简要列表:<P><PRE>USA: sunsite.unc.edu:/pub/Linux/kernelUSA: tsx-11.mit.edu:/pub/linux/sources/systemUK: sunsite.doc.ic.ac.uk:/pub/unix/Linux/sunsite.unc-mirror/kernelAustria: ftp.univie.ac.at:/systems/linux/sunsite/kernelGermany: ftp.Germany.EU.net:/pub/os/Linux/Local.EUnet/Kernel/LinusGermany: sunsite.informatik.rwth-aachen.de:/pub/Linux/PEOPLE/LinusFrance: ftp.ibp.fr:/pub/linux/sources/system/patchesAustralia: sunsite.anu.edu.au:/pub/linux/kernel</PRE><P>一般来说,<CODE>sunsite.unc.edu</CODE> 的 mirror 站是很好找的.档案 <CODE>/pub/Linux/MIRRORS</CODE> 包含了已知的 mirror 节点.如果你没有办法上 ftp ,有个存放 linux 的 BBS 系统列表会定期刊登在 comp.os.linux.announce 上,试著到那边去找一下.<P>如果你想寻找一般的 Linux 资讯与套件,去 <CODE><A HREF="http://www.linux.org/">http://www.linux.org/</A></CODE>.<P><H2><A NAME="ss3.2">3.2 解开原始程式码的包装</A></H2><P>确定你是以`<CODE>root</CODE>'的身份签入,然後 <CODE>cd</CODE> 到 <CODE>/usr/src</CODE>. 如果你安装 Linux 时已经安装了核心原始程式码,在这个目录底下应该已经存在一个叫做 `<CODE>linux</CODE>' 的子目录.这是旧版的 linux 原始程式码.如果你还有磁碟空间而且想要玩得安全一点,那麽你会想要保留这个子目录的.有个好主意是根据你目前使用的核心版本来修改这个子目录的名称.`<CODE>uname -r</CODE>' 这个指令将会告诉你目前的核心版本.所以,如果 `<CODE>uname -r</CODE>' 显示 `<CODE>1.0.9</CODE>',你就可以把 `<CODE>linux</CODE>' 改名(用 `<CODE>mv</CODE>')为 `<CODE>linux-1.0.9</CODE>'.如果你是个鲁莽型的人,那就直接把这个子目录清除掉.无论是哪一种情况,反正只要确定在解开全部的原始程式码之前,<CODE>/usr/src</CODE> 目录下没有 `<CODE>linux</CODE>' 这个子目录就对了.<P><P>在 <CODE>/usr/src</CODE> 目录下,用 `<CODE>tar zxpvf linux-x.y.z.tar.gz</CODE>' 来解开原始程式码的包装(如果你拿到的是 <CODE>.tar</CODE> 的档案,後面没有加上 <CODE>.gz</CODE>,那就用 `<CODE>tar xpvf linux-x.y.z.tar</CODE>').你将会看到原始程式的内容飞逝而过.当它完成以後,在 <CODE>/usr/src</CODE> 将会出现一个新的 `<CODE>linux</CODE>' 子目录.<CODE>cd</CODE> 到 <CODE>linux</CODE> 目录下然後查看 <CODE>README</CODE> 档,里面应该会有一段标题为 `<CODE>INSTALLING the kernel</CODE>' 或类似的文字.如果适当的话,先依照说明里的指示 — 建立该有的符号链结,移除过时的 .o 档案等等等诸如此类的工作.<P><H2><A NAME="ss3.3">3.3 配置核心</A></H2><P>注意:这部份内容有些是重覆 Linus 的 <CODE>README</CODE> 档案中的相应章节或加以修订.<P><P>在 <CODE>/usr/src/linux</CODE> 下执行 `<CODE>make config</CODE>' 这个命令将会启始一个指令稿,而这个指令稿会问你各种问题.它需要 bash ,所以要确定 bash 是 <CODE>/bin/bash</CODE>,<CODE>/bin/sh</CODE> 或 <CODE>$BASH</CODE>.<P><P>还有其它种 `<CODE>make config</CODE>' 的方式你可能会觉得更容易使用.对那些执行 X Window 的人你如果有装 Tk 的话可以试著用 `<CODE>make xconfig</CODE>'.`<CODE>make menuconfig</CODE>' 是给那些有装 (n)curses 而且喜欢文字模式选单的人用的.这些界面有个明显的好处: 如果在配置过程中你不小心犯了错,可以简单地回去修正.<P><P>你现在该准备好回答这些问题,通常用 `<CODE>y</CODE>' 或 `<CODE>n</CODE>' 就可以了.设备驱动程式通常会有一个 `<CODE>m</CODE>' 选项.这表示``模组(module)'',表示说系统将会编译它,但不会直接放进核心里,而是做为一可载入模组.一个有趣的说法是表示``maybe''.有一些很明显或是不重要的选项将不会在此加以说明.请见``<A HREF="Kernel-HOWTO-10.html#other-options">其它配置选项</A>''一节对其中的简短说明.<P><P>在 2.0.x 或以後的版本中有一个 `?' 选项,提供了这个配置参数的简短描述.这些资讯应该都是最新的.<P><H3>Kernel math emulation (核心的数学运算模拟)</H3><P>如果你没有数学辅助运算处理机(你只有一台单纯的 386 或 486SX),那麽你在这里要回答 `<CODE>y</CODE>'.如果你已经有数学辅助运算处理机却还回答 `<CODE>y</CODE>',那也不必太担心 — linux 还是会去使用它而忽略掉核心的模拟程式.唯一的影响是编译出来的核心变大了(用掉更多的记忆体).我听说数学运简模拟很慢; 虽然和本节无太大关系,还是应该注意这对 X Window 系统的效率会有很大影响.<P><H3>Normal (MFM/RLL) disk and IDE disk/cdrom support (标准硬碟支援)</H3><P>你在这里差不多都得回答 `<CODE>y</CODE>'.它代表的意思是核心将会支援标准的 PC 硬碟,例如大多数人使用的 IDE 界面硬碟.这不包括 SCSI 设备的支援; 这将在後面设定.<P><P>然後你会被问到关於 ``old disk-only'' 与 ``new IDE'' 驱动程式的事.你应该两者选一; 主要的差别是旧的驱动程式只支援单一界面两部磁碟机,而新的驱动程式支援第二界面及 IDE/ATAPI 光碟机.新的驱动程式比旧的大约多 4K,而且应该是``改良的'',也就是说除了可能包含些许错误之外,它应该会改善你的磁碟效率,特别是如果你有较新的 EIDE 硬体的话.<P><H3>Networking support (网路支援)</H3><P>原则上,如果你有连接网路,譬如说,你有 Internet 连线,或是你将使用 SLIP,PPP,term 或其它方式拨接到 Internet 上的话,回答 `<CODE>y</CODE>'.然而,某些软体套件(例如 X Window 系统)需要网路支援,即使你的机器并不真正连接到网路上.这情形你也应该回答 `<CODE>y</CODE>'.然後,你会被问到是否需要支援 TCP/IP 网路,如果你不十分确定,就回答 `<CODE>y</CODE>'.<P><H3>Limit memory to low 16MB (制记忆体在 16 MB)</H3><P>可能会有一些不良的 386 DMA 控制器无法正确地定址到 16 MB 以上的记忆体位址;如果你的机器刚好有这种(罕见)情况时,那麽你也就只好回答″ y ″了.<P><H3>System V IPC </H3><P>一个 IPC (行程内通讯,Interprocess Communication) 的定义就在 Perl 书中的注解.这并不大奇怪,一些 Perl 程式设计者用它来让行程之间互相沟通,就像许多其它套件(最著名如 DOOM)一样.因此除非你完全了解你在做什麽,不然最好别回答 <CODE>n</CODE>.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -