Linux詳細編譯內核方法(1)

目錄 序言 第一章 內核編譯的基礎 第一節內核簡介 第二節內核版本 第三節編譯原因 第四節準備工作 第二章 內核編譯的流程 第一節編譯開始 第二節配置內核 {核心內容} 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 這個指令將會顯示版本。內核版本的更新可以訪問。 第三節 編譯原因 Linux作爲一個自由軟件,在廣大愛好者的支持下,內核版本不斷更新。新的內核修訂了舊內核的bug,並增加了許多新的特性。如果用戶想要使用這些新特性,或想根據自己的系統度身定製一個更高效,更穩定的內核,就需要重新編譯內核。通常,更新的內核會支持更多的硬件,具備更好的進程管理能力,運行速度更快、更穩定,並且一般會修復老版本中發現的許多漏洞等,經常性地選擇升級更新的系統內核是Linux使用者的必要操作內容。 爲了正確的合理地設置內核編譯配置選項,從而只編譯系統需要的功能的代碼,一般主要有下面四個考慮:   ---自己定製編譯的內核運行更快(具有更少的代碼)  ---系統將擁有更多的內存(內核部分將不會被交換到虛擬內存中)  ---不需要的功能編譯進入內核可能會增加被系統攻擊者利用的漏洞  ---將某種功能編譯爲模塊方式會比編譯到內核內的方式速度要慢一些 以上是針對成熟的Linux套件如Redhat Linux而言,我的目的是爲建造嵌入式Linux操作系統做準備,也是必由之路。 第四節 準備工作 第一部分 新版本內核的獲取和更新 Linux內核版本發佈的官方網站是,國內各大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的說明。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章