1. 程式人生 > >一篇編譯核心的詳細配置文章(超長-強烈推薦)

一篇編譯核心的詳細配置文章(超長-強烈推薦)

前言之前言:誰是這篇文章的讀者?

不習慣讀英文資料的非LINUX高手
音效卡不響光碟機不轉連不上網等等,只要有問題就行
開發嵌入式作業系統

現在流行的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
第三節編譯核心
第四節啟用核心
附錄:LILO分析
第三章 核心編譯的應用
第一節嵌入式Linux技術
第二節你的Linux有多大(及實踐結果)
結束語
參考文獻
序言
近幾年,linux大行其道,令不滿windows藍屏的使用者躍躍欲試,結果發現linux安裝不
及windows方便,介面不及windows友好,配置不及windows容易,軟體不及windows豐富
,以至淺嘗輒止。
其實, Linux有windows無可比擬的兩個優勢:網路應用和嵌入式技術,這也正是未來最
有前途的方向。同時此課題是從理論上設計具有嵌入式Linux作業系統器件的重要組成部
分。
如要涉足這兩個方面,就必須對核心有深刻理解。當然,您可以從原始碼入手,但前提
是您擁有程式設計和作業系統等多方面專業知識,否則,就利用現成的Linux kernel從
編譯核心開始吧。不幸的是,核心編譯方面的資料匱乏。以上兩個原因使我寫這篇論文
成為必要。我可以自信得說,這是目前最詳盡的核心編譯方面的中文資料。
值得一提的是,我在蒐集翻譯資料的過程中,獲得了作業系統、程式設計、硬體裝置、
網路通訊等各方各面的知識,極大的拓寬了視野,真正學有所獲。
感謝所有為Linux發展作出貢獻的人,感謝所有Linux中文網站為促進Linux在中國的發展
作出的不懈努力,他們是我搜集資料的來源。
特別感謝我的指導老師——官伯然教授和高斌博士,正是他們的辛勤指導讓我順利完成
畢業設計。
西電科大 :李玉元 2001/6/1
備註:#----------後跟小的選項
##---------後還有更細選項
注意------上機實踐結果
第一章 核心編譯的基礎
第一節 核心簡介
核心,是一個作業系統的核心,它負責管理系統的程序、記憶體、裝置驅動程式、檔案和
網路系統,決定著系統的效能和穩定性。 就好比DOS下的IO.SYS和MSDOS.SYS一體,我
們可以把這兩個檔案叫做DOS的核心。Linux也有它的核心,通常在根目錄下,一個叫vm
linuz的檔案。我們用這個檔案來控制我們的整臺PC,包括周邊裝置和軟硬磁碟機、CD-
ROM、音效卡等。簡單地說,核心就是作業系統本身。沒有了它,就像一個無人住的家,沒
有人去維持這個家的動作。一個安定的家需要一個很用心已能當機立斷的主人:一部電
腦也需要很有效率已穩定的核心,也就是作業系統。因此,核心是整個系統維持下去的
關鍵。
Linux的一個重要的特點就是其原始碼的公開性,所有的核心源程式都可以在/usr/src/
linux下找到,大部分應用軟體也都是遵循GPL而設計的,你都可以獲取相應的源程式代
碼。任何一個軟體工程師都可以將自己認為優秀的程式碼加入到其中,由此引發的一個明
顯的好處就是Linux修補漏洞的快速以及對最新軟體技術的利用。而Linux的核心則是這
些特點的最直接的代表。
想象一下,擁有了核心的源程式對你來說意味著什麼?首先,我們可以瞭解系統是如何
工作的。通過通讀原始碼,我們就可以瞭解系統的工作原理,這在Windows下簡直是天方
夜譚。其次,我們可以針對自己的情況,量體裁衣,定製適合自己的系統,這樣就需要
重新編譯核心。在Windows下是什麼情況呢?相信很多人都被越來越龐大的Windows整得
莫名其妙過。再次,我們可以對核心進行修改,以符合自己的需要。這意味著什麼?沒
錯,相當於自己開發了一個作業系統,但是大部分的工作已經做好了,你所要做的就是
要增加並實現自己需要的功能。在Windows下,除非你是微軟的核心技術人員,否則就不
用痴心妄想了。
先介紹一下編譯核心的選項,希望能對大家消除對核心的神祕感有所幫助。
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)或者開發樹(developm
ent tree)。一些新特性、實驗性改進等都將首先在開發樹中進行。如果在開發樹中所
做的改進也可以應用於穩定樹,那麼在開發樹中經過測試以後,在穩定樹中將進行相同
的改進。一旦開發樹經過了足夠的發展,開發樹就會成為新的穩定樹。開發數就體現在
源程式的版本號中;源程式版本號的形式為x.y.z:對於穩定樹來說,y是偶數;對於開
發樹來說,y比相應的穩定樹大一(因此,是奇數)。確定是以″ root ″的身份簽入,
然後cd 到 /usr/src 。uname -r 這個指令將會顯示版本。核心版本的更新可以訪問<h
ttp://www.kernel.org/>。
第三節 編譯原因
Linux作為一個自由軟體,在廣大愛好者的支援下,核心版本不斷更新。新的核心修訂了
舊核心的bug,並增加了許多新的特性。如果使用者想要使用這些新特性,或想根據自己的
系統度身定製一個更高效,更穩定的核心,就需要重新編譯核心。
通常,更新的核心會支援更多的硬體,具備更好的程序管理能力,執行速度更快、更穩
定,並且一般會修復老版本中發現的許多漏洞等,經常性地選擇升級更新的系統核心是
Linux使用者的必要操作內容。

為了正確的合理地設定核心編譯配置選項,從而只編譯系統需要的功能的程式碼,一般主
要有下面四個考慮:
---自己定製編譯的核心執行更快(具有更少的程式碼)
---系統將擁有更多的記憶體(核心部分將不會被交換到虛擬記憶體中)
---不需要的功能編譯進入核心可能會增加被系統攻擊者利用的漏洞
---將某種功能編譯為模組方式會比編譯到核心內的方式速度要慢一些
以上是針對成熟的Linux套件如Redhat Linux而言,我的目的是為建造嵌入式Linux操作系
統做準備,也是必由之路。
第四節 準備工作
第一部分 新版本核心的獲取和更新
Linux核心版本釋出的官方網站是<
http://www.kernel.org/
>,國內各大ftp上一般都可
以找到某些版本的核心。新版本的核心的釋出有兩種形式,一種是完整的核心版本,另
外一種是patch檔案,即補丁。完整的核心版本比較大,比如linux-2.4.0-test8.tar.b
z2就有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-w
indow 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(基於文字選單的配置介面,字元終端下推薦使用,必須安裝ncurse
s-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還在做測試中,問您是否要選擇這些dri
ve或支援的程式碼。
如果鍵入Y,往後將會出現一些還在測試中的東西給您做選擇。(像Java的程式碼和PCI
bridge),臺則就鍵入N。

2. Processor type and features處理器型別和特色
#Processor family (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC,PPro/6x8
6MX) [PPro/6x86MX] ------選擇處理器型別,預設為Ppro/6x86MX。它會對每種CPU做最
佳化,讓它跑得快又好。一般來說,沒有選擇正確的CPU並不會有重大的影響(特別是選
擇386 ,這樣編譯出來的核心也許會比較小但它的速度可能就會變慢了)。所以,最好
要知道您的CPU是哪一種。不過,如果您的gCC編譯器是2.7.0版以前的。那麼只能選擇3
86或是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等但必須是NF
S支援的網絡卡),檔案系統(通常是ext2但也可以是nfs)和核心型別(最好是elf)必須編譯
在核心並且不能是模組,模組只有核心引導時才起作用,驅動程式(來網路)的存取,和
檔案系統安裝。這些檔案必須編譯在核心內否則將能安裝啟動分割槽。如果安裝啟動分割槽
和網路,你需要網路系統檔案,和己經編譯的網絡卡。為什麼要使用模組? 模組化使核心
變的更簡捷,它減少核心釋放大量的受保護的空間。模組的安裝和解除安裝使用的空間是可
重複分配利用的。如果你開啟機器有90%以上的時間用到一個模組,編譯它。運用這類模
塊是浪費記憶體的,原因是一旦你編譯了模組它們同樣將佔用大量的記憶體,核心需要一些
程式碼來掛上模組。記住,核心在保護空間執行,但模組並不是。這麼說,並不經常使用
我的裝置,把它編譯成只支援ext2,ide和elf。而一直使用的網絡卡,把其它的編譯成模組
:如a.out, java, floppy, iso9960, msdos, minix, vfat,smb,nfs,smcultra(ethern
etcard),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 記得要 compile
r 進 kernel,不能把它弄成 modules。請不要誇張到為了完全模組化而忘了把ext2fs和
IDE dirver compiler 進 kernel 裡。

4. General setup普通的屬性設定
這部分內容非常多,一般使用預設設定就可以了。下面介紹一下經常使用的一些選項:
#Networking support------網路支援。因為在Linux裡面,有虛擬的網路裝置(1ookbac
k),可以模擬整個網路。而且,—些程式需要它。必須,沒有網絡卡也建議你選上。注意
:選N,則7.(Networking options 網路選項)和11.(Network device support網路裝置
支援) 不會出現。
#Limit memory to low 16MB ------大部分的人這一選項 N。除了主機板沒有辦法處理
16MB以上的記憶體,或者有超過16MB以上的記憶體但卻常常發生一些很奇怪的問題。這時,
您可以試試這個選項。有些主機板對超16MB記憶體的處理並不是很好,通常這些都是舊型
的主機板。還有,在說明檔案中有提到,如果記憶體超過64MB的話,用LILO加一些引數給
Linux核心(例:mem=80M),並且把您主機板上的Cache加到512K。這樣,整體效率才能
提升。
#PCI support ------PCI支援。如果使用了PCI的卡,當然必選。
#PCI bios support ------主機板是否有PCI介面。如果有,則您必須回答y。
PCI是586電腦的主要介面(一些486主機板上也有),這個介面能讓您插入所謂的PCI顯
示卡,或是PCI的網路卡等。這種介面是現在電腦的主要趨勢,因此如果有PCI的插槽。
您就可以選Y。除了一些很舊很舊但有支援PCI的主機板外(這些有bugs的舊型主機板可
能會因為這個選項而讓核心掛掉)。
#PCI access mode (BIOS, Direct, Any) [Any] ------設定Linux探測PCI裝置的方式。
選擇“BIOS”,Linux將使用BIOS;選擇“Direct”,Linux將不通過BIOS;選擇“Any”
,Linux將直接探測PCI裝置,如果失敗,再使用BIOS。
#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 的世紀,在 c
ompiler 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還有這個意思。
# ISA Plug and Play support ------ 選擇“y”,核心將自動配置基於ISA匯流排的即插
即用裝置。


6. Block devices塊裝置支援
這個就得針對自己的裝置情況來選了:
#Normal PC floppy disk support (CONFIG_BLK_DEV_FD) [Y/m/n/?]------普通PC軟盤
支援。
#Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support ------選擇“y”,核心將
提供對增強IDE硬碟、CDROM和磁帶機的支援。在硬碟沒有做得很大的時候,一般的 IDE
卡和 BIOS只能支援小於 540 MB的硬碟。不但如此,那時也只能支援二顆硬碟。但現今
的硬碟動不動就是1GB以上,今年主流是30~50G,而且常常都會超過一二顆硬碟。如此一
來,新的主機板就開始支援加強型的IDE界而(Enhanced IDE),以支援到540MB以上的
硬碟。所以,如果您的IDE介面是Enhanced的,請您選Y,底下就會出現八部分IDE介面的
選項,這些選項能加快您的IDE介面的速度和對某些晶片做一些最佳化。但如果您的硬碟
或光碟全都是SCSI介面的,那麼選N以跳過下面選項。
#use old disk-only driver on primary interface------通常是選擇N。因為我們有其
他新的drivers可用。這個選項的意思是說,如果您的IDE介面是很舊很舊的那種的。那
麼,就可以使用這個drives 驅動那個舊型的IDE介面(可裝二臺硬碟;或是一臺硬碟,
一臺光碟)。而現今流行的 Enhanced IDE則有兩個介面,共可以接四臺硬碟。我們稍後
會有 driver支援它。
#Include IDE/ATAPI CDROM support------如果希望核心支援IDE/ATAPI界而的光碟機,
選擇Y。如果有光碟機,但它附有一張介面卡,必須把排線接到那張專屬介面卡上;或者是
接到音效卡上的,則這個選項也需要選N,稍後我們會有非IDE的光碟機廠牌讓我們挑選。現
今的光碟機通常是IDE/ATAPI界而的,所以這個選項通常是Y。
#Support removable IDE interfaces(PCMCIA)------這個選項對大部分的人全選n,
除非您有PCMCIA的東西,這通常是膝上型電腦上看得到的東西。 PCMCIA是一個組織,在
以前是設計記憶體條的。但現在他們對於PC CARDS定了一個標排,並很廣泛的應用在1apt
ap的電腦上。不但有所謂的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為基礎的介面,但是您的BIOS並不能抓到正確的PIO MODE值,那麼
,這個選項可以自動的找到硬碟正確的PIO MODE值。
#RZ1000 chipset bugfix/support------這個選項如同前面的CMD640一樣。不過,它的
晶片是RZ1000的晶片,這種晶片是以Neptune晶片為主的一種晶片,而目、有很多的486
和 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,因為沒有必要。這個選
項的意思是說,可以將一個檔案掛成一個檔案系統。如果要燒光碟片的,那麼您很有可
能在把一個檔案燒進去之前,看看這個檔案是否符合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依英文看是防火
牆。在網路愈來愈發達的今天,網路安全的考慮也愈來愈重要了。在區域網上找一臺電
腦來保護自己的考慮也愈來愈多了。可以在一區域網上找一臺電腦來保護自己區域內的
電腦。這樣的結果是,所有外部的電腦如果要連進內部的電腦就必須通過這臺裝有Fire
walls電腦的同意。所以,如果您希望這臺電腦有著過濾網路的功能的話,那麼這個選項
要選 Y。而且,等一下有個IP firewalling的選項也要選y;但下面的forwarding/gat
ewaying要選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地址去除,那麼可以鍵人

sunslyy:/# ifconfig eth0:0- IP地址
這樣您就可以把加入的IP地址去除。不過在使用此選項前,前面的那一個aliasing Net
work選項也要選上去。
#IP: PC/TCP compatibility mode------大部分人都選n。除非在使用DOS下的NCSA-
TCP/IP軟體連進Linux機器時遇到了困難,或者有不相容的情形出現。這時,您可以試
著把這個選項開啟,看看是否能解決這個問題。
#IP Reverse ARP------如果您的Linux希望提供bootd的服務,就是讓沒有硬碟或軟盤也
能夠開機並且上網路,只要它們有網路卡有連線到網路的話。此時,您必須執行一個指
令叫rarp來設定哪些電腦的網路卡可以如此。不過一般人都沒有這個需要,所以答n。
#IP:Disable Path MTU Discovery (normall yenable)------ 大部分的人這個選項
是選擇N。除非發現用DOS下的ncsa的telnet程式連到Linux機器上出問題。這是很多人的
問題,如果發生了DOS下的telnet程式不能連進Linux時,除了可以改用Nsysutel的teln
et程式來解決外,還可以在編譯核心的時候,把這一項選 Y。 MTU(Maximal Transfer
Unit)叫做最大的傳輸單位,是說我們一次送往網路的資訊大小。而Path MTUD iscov
ery的意思是,當Linux發現一些機器的傳輸量比較小時,我們會分送網路資訊給它。如
此可以增加網路的速度,所以我們大部分都選N,也就是Enable。
#Ip:Dorp source routed frames------通常我們一個網路的封包在丟出去後就不管它
了,不過,在TCP/IP協議裡,您可以設定讓那些幫您繞路的機器回送一個是否這個封包
已經送達了的訊息。不過,這會導至網路安全上的問題,所以很少用,一般來說我們選
擇Y。
#IP:Allow large windows(not recommended if<16Mb of memory=)------如果有
超過16MB以上的記憶體,那麼建議開啟這個選項,可以增加傳輸的速度。在一般長距離的
網路傳輸下要預備傳輸的資料可以先儲存在緩衝區,等到對方的迴應時再一次會過去。
因此,您必須有記憶體來作為緩衝區。
#The IPX Protocol------IPX是一種傳輸協議,它是Novell的一種網路協議,通常用在
區域或是Windows的網路下。如果您希望Novell的機器資源共享(例如用他們的印表機或
是硬碟),那麼這個選項則要選y。至於存取檔案的格式是NCPFS的格式,稍後把這個文
件系統選上來,以便支援這個檔案系統。 如此一來,您就可以通過Novell的IPX通訊協
議去存取它們的資料了。或者,您希望從dosemu(DOS的模擬器)裡用IPX協議,這時也
要把它選進來。
#Full internal IPX network------提供了一個完整的內部IPX網路,預設選項是N,因
為它可能會讓一些應用的服務程式(RIP/SAP)當掉。
#Appletalk DDP------AppleTalk是存在於蘋果機上的一種通訊協議,用來蘋果電腦之間
的網路通迅,通過AppleTalk,彼此的電腦間可以列印和分享檔案。如果您需要連上這樣
的網路,可以把這個選項開啟,如此就能加入他們與這些電腦做溝通了,或者把這項編
成一個模組亦可。
#Amateur Radio AX.25 Level2------
#Bridging(EXPERIMENTAL)------
選這兩個可以讓Linux變成一個網路上的網橋,用來做不同網路間的溝通,通常一般人不
需要。
#Qos and/or fair queueing(服務質量公平排程)也支援了,還有kHTTPd,不過這些都
還在實驗階段。

8. Telephony Support電話支援
原來是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的說明。
補:block選項中的有關loop的應選上
否則不能mount iso檔案
應該將其修改一下

12. Amateur Radio support 業餘無線廣播
可以用來啟動無線網路的基本支援,目前的無線網路可以通過公眾頻率傳輸資料,如果
你有此類裝置就可以啟用,具體請參考AX25和HAM HOWTO 文件。

13. IrDA(infrared)support紅外支援

14. ISDN subsystem
如果使用ISDN上網,這個就必不可少了。ISDN(Integrated Services Digital Networ
k),它的中文名稱是綜合數字服務網路,是一個利用電話線,把聲音,影片資訊以數字
的方式傳送的數字網路,它需要電話交換機裝置有支援ISDN,這通常需要電信局來做安
裝,對於在家工作的人來說,ISDN可能是最舒適最便宜的一種方式,因此有愈來愈多的
人使用它。不過,除非是公司,不然一般人很少會使用到ISDN的,所以這部分的選項大
都選N。如果您選擇Y,則下面會出現一些有關ISDN的問題。如果需要用到ISDN,可以去
看看雜誌的介紹。只要是有關網路的雜誌應該都會有介紹。還需要啟用Support synchr
onous 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字元裝置
所謂字元裝置通常是指以字元為單位做處理的裝置,例如終端機就是其中一項。原則上
,我們對於這些選項的選擇也是以預設為主。這個內容又太多了,先使用預設設定,需
要的話自己就修改。把大類介紹一下吧:

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字元裝置
所謂字元裝置通常是指以字元為單位做處理的裝置,例如終端機就是其中一項。原則上
,我們對於這些選項的選擇也是以預設為主。這個內容又太多了,先使用預設設定,需
要的話自己就修改。把大類介紹一下吧:
#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的東西,您必須自己用mk
nod在/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的Netwa
re檔案系統,那麼這個選項就選上去吧。
##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 ,而且掛有一張以msd
os (bleah) 為檔案系統格式的磁片。如果你有使用 /proc ,可以試試″cat /proc/fi
lesystems ″。它會給你一份目前使用的核心所支援的