posts - 189,comments - 115,trackbacks - 0
          <2007年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(35)

          我參與的團(tuán)隊(duì)

          隨筆檔案

          文章分類

          文章檔案

          相冊(cè)

          收藏夾

          Android

          BLOGS

          Econormic

          Friend-Blog

          Guitar

          J2ME

          JAVA

          Linux

          Linux_driver

          MUSIC

          MY--BLOG

          NET

          NEWS

          ORACLE

          Project

          SOFT

          STUDY

          Sutra<==>Research

          SVN

          Translate

          Vim

          在線翻譯

          娛樂(lè)

          文檔教程

          考研

          裝修

          軟件開(kāi)發(fā)

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          Linux編譯內(nèi)核

          準(zhǔn)備工作
          通常要運(yùn)行的第一個(gè)命令是:
          #cd /usr/src/linux;make mrproper
          該命令確保源代碼目錄下沒(méi)有不正確的.o文件以及文件的互相依賴

          配置
          接下來(lái)的內(nèi)核配置過(guò)程比較煩瑣,但是配置的適當(dāng)與否與日后Linux的運(yùn)行直接相關(guān),有必要了解一下一些主要的且經(jīng)常用到的選項(xiàng)的設(shè)置。
          配置內(nèi)核可以根據(jù)需要與愛(ài)好使用下面命令中的一個(gè):
          #make config(基于文本的最為傳統(tǒng)的配置界面,不推薦使用)
          #make menuconfig(基于文本選單的配置界面,字符終端下推薦使用)
          #make xconfig(基于圖形窗口模式的配置界面,Xwindow下推薦使用)
          #make oldconfig(如果只想在原來(lái)內(nèi)核配置的基礎(chǔ)上修改一些小地方,會(huì)省去不少麻煩)
          這三個(gè)命令中,make xconfig的界面最為友好,如果你可以使用Xwindow,那么就推薦你使用這個(gè)命令.
          在繁雜的配置工作完成以后,下面你就可以自己到杯茶耐心等候了。與編譯有關(guān)的命令有如下幾個(gè):
          #make dep
          #make clean
          #make zImage
          #make bzImage
          #make modules
          #make modules_install
          #depmod -a
          第一個(gè)命令make dep實(shí)際上讀取配置過(guò)程生成的配置文件,來(lái)創(chuàng)建對(duì)應(yīng)于配置的依賴關(guān)系樹(shù),從而決定哪些需要編譯而那些不需要;
          第二命令make clean完成刪除前面步驟留下的文件,以避免出現(xiàn)一些錯(cuò)誤;
          第三個(gè)命令make zImage和第四個(gè)命令make bzImage實(shí)現(xiàn)完全編譯內(nèi)核,二者生成的內(nèi)核都是使用gzip壓縮的,只要使用一個(gè)就夠了,
          它們的區(qū)別在于使用make bzImage可以生成大一點(diǎn)的內(nèi)核,比如在編譯2.4.0版本的內(nèi)核時(shí)如果使用make zImage命令,那么就會(huì)出現(xiàn)system too big的錯(cuò)誤提示。
          建議大家使用make bzImage命令。
          后面三個(gè)命令只有在你進(jìn)行配置的過(guò)程中,在回答Enable loadable module support (CONFIG_MODULES)時(shí)選了"Yes"才是必要的,
          make modules和make modules_install分別生成相應(yīng)的模塊和把模塊拷貝到需要的目錄中。
          嚴(yán)格說(shuō)來(lái),第七個(gè)命令和編譯過(guò)程并沒(méi)有關(guān)系,它是生成模塊間的依賴關(guān)系,這樣你啟動(dòng)新內(nèi)核之后,使用modprobe命令加載模塊時(shí)就能正確地定位模塊。

          更新
          經(jīng)過(guò)以上的步驟,我們終于得到了新版本的內(nèi)核。為了能夠使用新版本的內(nèi)核,我們還需要做一些改動(dòng):
          #cp /usr/src/linux/System.map /boot/System.map-2.4.0test8
          #cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.4.0test8
          以上這兩個(gè)文件是我們剛才編譯時(shí)新生成的。下面修改/boot下的兩個(gè)鏈接System.map和vmlinuz,使其指向新內(nèi)核的文件:
          #cd /boot;rm -f System.map vmlinuz
          #ln -s vmlinuz-2.4.0test8 vmlinuz
          #ln -s System.map-2.4.0test8 System.map
          #shutdown -r now
          正常啟動(dòng).您的機(jī)器現(xiàn)在就使用你的新內(nèi)核了.

          下面是RH 推薦的編譯方式. 注意edit Makefile
          老話新說(shuō),RedHat 公司 推薦編譯內(nèi)核方法
          本文部分取自于RH300(RHCE Rapid Track Course)課本.
          本文假定你用的是Redhat 7.2,用grub 管理啟動(dòng).準(zhǔn)備編譯7.2 自帶的內(nèi)核
          cd /usr/src/linux-2.4
          make mrproper
          edit Makefile 文件
          把EXTRAVERSION= 改成有你特色的文字, 比如:
          EXTRAVERSION=-10me
          make menuconfig or make xconfig
          make dep
          make bzImage
          make modules
          make modules_install
          cp System.map /boot/System.map-2.4.7-10me
          cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.7-10me
          new-kernel-pkg --install --mkinitrd --depmod 2.4.7-10me

          重新編譯內(nèi)核指南
          摘要

            Linux的一個(gè)重要的特點(diǎn)就是其源代碼的公開(kāi)性,全世界任何一個(gè)軟件工程師都可以將自己認(rèn)為優(yōu)秀的代碼加入到其中,由此引發(fā)的一個(gè)明顯的好處就是Linux修補(bǔ)漏洞的快速以及對(duì)最新軟件技術(shù)的利用。而Linux的內(nèi)核則是這些特點(diǎn)的最直接的代表。


          Linux的一個(gè)重要的特點(diǎn)就是其源代碼的公開(kāi)性,全世界任何一個(gè)軟件工程師都可以將自己認(rèn)為優(yōu)秀的代碼加入到其中,由此引發(fā)的一個(gè)明顯的好處就是Linux修補(bǔ)漏洞的快速以及對(duì)最新軟件技術(shù)的利用。而Linux的內(nèi)核則是這些特點(diǎn)的最直接的代表。

            為什么要升級(jí)內(nèi)核

            正如它的名字的字面意義,Linux的內(nèi)核承擔(dān)著Linux操作系統(tǒng)的最為核心的任務(wù),是其它程序和硬件等運(yùn)行過(guò)程中的仲裁者:它要管理所有進(jìn)程的內(nèi)存,保證它們都能平等得到處理器的時(shí)隙。此外,它還提供程序和硬件之間的接口等功能。

            通常,更新的內(nèi)核會(huì)支持更多的硬件,具備更好的進(jìn)程管理能力,運(yùn)行速度更快、更穩(wěn)定,并且一般會(huì)修復(fù)老版本中發(fā)現(xiàn)的許多漏洞等,經(jīng)常性地選擇升級(jí)更新的系統(tǒng)內(nèi)核是Linux使用者的必要操作內(nèi)容。

            一般,內(nèi)核的版本序列號(hào)使用三個(gè)數(shù)字表示,如2.2.14,版本號(hào)越高表示功能越強(qiáng)。版本號(hào)分為兩個(gè)系列:一種是產(chǎn)品系列,以偶數(shù)命 名,例如,1.2.x、2.0.x、2.2.x等,運(yùn)行穩(wěn)定,已經(jīng)經(jīng)過(guò)較為周密的測(cè)試;另外一種是開(kāi)發(fā)測(cè)試系列,以奇數(shù)命名,用以進(jìn)行最新功能的測(cè)試,不 建議初學(xué)者和生產(chǎn)過(guò)程中使用。

            本文的后面部分將分別以內(nèi)核2.0.34到2.2.14的升級(jí)過(guò)程介紹內(nèi)核升級(jí)用到的步驟、概念、注意事項(xiàng)以及可以參考的更多文檔,文中出現(xiàn)的斜體字是直接輸入的命令。

            內(nèi)核的配置與編譯

            Linux當(dāng)前支持的CPU類型包括x86、ARM、DEC Alpha、SUN Sparc、M68000、MIPS、PowerPC等,應(yīng)該說(shuō)上述類型已經(jīng)包括絕大多數(shù)用戶使用的CPU型號(hào)。在安裝與配置過(guò)程中,Linux會(huì)自動(dòng)識(shí)別這些型號(hào)。

            通常要運(yùn)行的第一個(gè)命令是:#cd /usr/src/linux;make mrproper。確保源代碼目錄下沒(méi)有不正確的.o文件以及文件的互相依賴。

            接下來(lái)的內(nèi)核配置過(guò)程比較煩瑣,但是配置的適當(dāng)與否與日后Linux的運(yùn)行直接相關(guān),有必要了解一下一些主要的且經(jīng)常用到的選項(xiàng)的設(shè)置。

            配置內(nèi)核可以根據(jù)需要與愛(ài)好使用下面命令中的一個(gè):

            #make config (基于文本的最為傳統(tǒng)的配置界面)

            #make menuconfig (基于文本選單的配置界面)

            #make xconfig (基于圖形窗口模式的配置界面)

            #make oldconfig (如果只想在原來(lái)內(nèi)核配置的基礎(chǔ)上修改一些小地方,會(huì)省去不少麻煩)

            進(jìn)行配置時(shí),大部分選項(xiàng)可以使用其缺省值,只有小部分需要根據(jù)用戶不同的需要選擇。例如,如果需要內(nèi)核支持DOS分區(qū)的文件系統(tǒng),則要在文件系統(tǒng)部分選擇FAT或DOS系統(tǒng)支持;系統(tǒng)如果配有網(wǎng)卡、PCMCIA卡等,需要在網(wǎng)絡(luò)配置中選擇相應(yīng)卡的類型。

            選擇相應(yīng)的配置時(shí),有三種選擇,它們分別代表的含義如下:

            “Y”- 將該功能編譯進(jìn)內(nèi)核

            “N”- 不將該功能編譯進(jìn)內(nèi)核

            “M”- 將該功能編譯成可以在需要時(shí)動(dòng)態(tài)插入到內(nèi)核中的模塊。

            將與核心其它部分關(guān)系較遠(yuǎn)且不經(jīng)常使用的部分功能代碼編譯成為可加載模塊,有利于減小內(nèi)核的長(zhǎng)度,減小內(nèi)核消耗的內(nèi)存,簡(jiǎn)化該功能相應(yīng)的環(huán)境改變時(shí)對(duì)內(nèi)核的影響。許多功能都可以這樣處理,例如像上面提到的網(wǎng)卡的支持、對(duì)FAT等文件系統(tǒng)的支持。

            配置完內(nèi)核,接下來(lái)需要對(duì)內(nèi)核源代碼文件的依賴性和完整性進(jìn)行檢驗(yàn),并且進(jìn)行編譯,此時(shí)要保證系統(tǒng)所使用的gcc版本在gcc-2.7.2以上:

            #make dep (確保關(guān)鍵文件在正確的位置)

            #make clean (確保所有有關(guān)文件都處于最新版本狀態(tài))

            #make zImage (編譯壓縮形式的內(nèi)核)

            在需要內(nèi)核支持較多的外設(shè)和功能時(shí),內(nèi)核可能變得很大,此時(shí)可以編譯大內(nèi)核:

            #make bzImage

            編譯的時(shí)間與機(jī)器的硬件條件及內(nèi)核的配置等因素有關(guān),以筆者的64MB內(nèi)存的賽揚(yáng)300為例,編譯內(nèi)核一次大致需要20多分鐘。所獲得的內(nèi)核的位置在/usr/src/linux/arch/i386/boot目錄下,當(dāng)然這里假設(shè)用戶的CPU是x86型的。

            如果選擇了可加載模塊,編譯完內(nèi)核后,要對(duì)選擇的模塊進(jìn)行編譯:

            #make module (編譯選擇的模塊)

            #make module-install (將編譯后的模塊轉(zhuǎn)移到系統(tǒng)標(biāo)準(zhǔn)位置)

            模塊在系統(tǒng)中的標(biāo)準(zhǔn)目錄位于/lib/modules/x.y.z,后面的x.y.z是版本號(hào),為安全起見(jiàn),在運(yùn)行#make modules-install之前最好對(duì)/lib/modules進(jìn)行備份。模塊通常是帶有擴(kuò)展名.o的文件,使用命令#lsmod可以對(duì)當(dāng)前內(nèi)核的模 塊進(jìn)行列表。

            軟件下載與解包

            選擇相對(duì)快速并且具有權(quán)威性的站點(diǎn)下載最新的內(nèi)核源代碼包,例如條件允許的話可以到下面的站點(diǎn)下載:

            ftp://sunsite.unc.edu/pub/linux/kernel

            國(guó)內(nèi)Linux用戶可以到下面的站點(diǎn)下載:

            http://studio.openunix.org

            http://www.clinuxworld.com

            注意,如果升級(jí)版本的跨度很大,并且預(yù)計(jì)會(huì)配置外部模塊時(shí),還要下載最新的模塊工具modules-x.y.z.tar.gz。

            Linux系統(tǒng)的核心代碼存放于目錄/usr/src/linux,實(shí)際上,該目錄是一個(gè)鏈接,指向當(dāng)前所用的核心版本的目錄,例如如 果當(dāng)前使用的版本是2.0.34,則該核心的實(shí)際目錄應(yīng)該是:/usr/src/linux-2.0.34。而新下載的內(nèi)核中的目錄是linux,這樣, 直接在/usr/src下解包會(huì)導(dǎo)致原來(lái)的內(nèi)核目錄被覆蓋。所以穩(wěn)妥的做法是,首先刪除鏈接linux,然后解包、更名、重新鏈接。

            在解包前要確認(rèn)在/usr/src目錄下沒(méi)有叫l(wèi)inux的目錄,或者不再想保留該目錄。

            另外,隨著Linux內(nèi)核功能的增強(qiáng)及對(duì)更多外設(shè)的支持,文件包也越變?cè)酱螅?dāng)前最新的穩(wěn)定版2.2.14內(nèi)核壓縮包的大小約為14MB,但實(shí)際上解壓縮及編譯等環(huán)節(jié),要求/usr/src目錄所在的分區(qū)的空閑空間大于60MB字節(jié)。

            啟用新內(nèi)核

            將編譯好的新內(nèi)核拷貝到系統(tǒng)目錄/boot下,例如


          #cp /usr/src/linux/arch/i386/boot/zImage /boot/zImage-2.2.14

            然后,編輯系統(tǒng)引導(dǎo)配置文件/etc/lilo.conf,仿照原有選項(xiàng)添入新內(nèi)核選項(xiàng),給它起一個(gè)明顯好記的標(biāo)簽(label),記 住此時(shí)最好保留原有內(nèi)核以及相應(yīng)的選項(xiàng),這樣不用害怕升級(jí)失敗而機(jī)器啟動(dòng)不了,至少還可以使用舊的內(nèi)核引導(dǎo)自己的計(jì)算機(jī)。保存編輯后退出,此時(shí)要記住運(yùn)行 命令:#lilo,更新系統(tǒng)引導(dǎo)映象,這樣對(duì)lilo.conf的修改才能起作用。

            重啟機(jī)器后,在LILO的提示符下按“Tab”鍵,則應(yīng)該看到加入的新內(nèi)核選項(xiàng)。

            對(duì)于當(dāng)前國(guó)內(nèi)進(jìn)行漢化后的Linux版本,由于其中的幾個(gè)主要版本是在內(nèi)核中進(jìn)行,例如沖浪平臺(tái)的Xteam Linux、藍(lán)點(diǎn)Bluepoint Linux等,所以使用這些發(fā)行版本的用戶如果按照上面的步驟進(jìn)行內(nèi)核升級(jí)則會(huì)導(dǎo)致漢化失敗、系統(tǒng)運(yùn)行不穩(wěn)定等后果。用戶需要等待廠家發(fā)行新內(nèi)核的漢化 包,然后到廠家指定的下載站點(diǎn)下載,按照其中的說(shuō)明進(jìn)行升級(jí)。

          LINUX KERNEL 配置編譯中文指南


            開(kāi)發(fā)嵌入式操作系統(tǒng)

            BY THE WAY ,想成為L(zhǎng)INUX高手嗎?你需要熟練掌握KERNEL COMPILE 、XCONFIGRATER 、LINUXCONFIG、 SAMBA四大利器,你隨時(shí)可以找到后三者的大量相關(guān)資料,但內(nèi)核編譯就只好啃為數(shù)不多的英文了。

          目錄

            序言

            第一章 內(nèi)核編譯的基礎(chǔ)

            第一節(jié)內(nèi)核簡(jiǎn)介

            第二節(jié)內(nèi)核版本

            第三節(jié)編譯原因

            第四節(jié)準(zhǔn)備工作

            第二章 內(nèi)核編譯的流程

            第一節(jié)編譯開(kāi)始

            第二節(jié)配置內(nèi)核 {核心內(nèi)容}

            1.代碼成熟等級(jí)

            2..處理器類型和特色

            3.對(duì)模塊的支持

            4.基本的選擇

            5.即插即用支持

            6.塊設(shè)備支持

            7.網(wǎng)絡(luò)選項(xiàng)

            8.電話支持

            9.SCSI設(shè)備的支持

            10.I2O接口適配器

            11.網(wǎng)絡(luò)設(shè)備支持

            12.配置業(yè)余無(wú)線廣播

            13.紅外支持

            14.ISDN的文件系統(tǒng)

            15.舊型光驅(qū)類型(非IDE界面的光驅(qū))

            16.字符設(shè)備

            17.USB支持

            18.文件系統(tǒng)

            19.控制臺(tái)驅(qū)動(dòng)

            20.聲卡驅(qū)動(dòng)

            21.Kernel hacking

            第三節(jié)編譯內(nèi)核

            第四節(jié)啟用內(nèi)核

            附錄:LILO分析

            第三章 內(nèi)核編譯的應(yīng)用

            第一節(jié)嵌入式Linux技術(shù)

            第二節(jié)你的Linux有多大(及實(shí)踐結(jié)果)

          第一章 內(nèi)核編譯的基礎(chǔ)

          第一節(jié) 內(nèi)核簡(jiǎn)介

            內(nèi)核,是一個(gè)操作系統(tǒng)的核心,它負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動(dòng)程序、文件和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性。 就好比DOS下的IO.SYS和MSDOS.SYS一體,我們可以把這兩個(gè)文件叫做DOS的核心。Linux也有它的核心,通常在根目錄下,一個(gè)叫 vmlinuz的文件。我們用這個(gè)文件來(lái)控制我們的整臺(tái)PC,包括周邊設(shè)備和軟硬磁盤機(jī)、CD-ROM、聲卡等。簡(jiǎn)單地說(shuō),核心就是操作系統(tǒng)本身。沒(méi)有了 它,就像一個(gè)無(wú)人住的家,沒(méi)有人去維持這個(gè)家的動(dòng)作。一個(gè)安定的家需要一個(gè)很用心已能當(dāng)機(jī)立斷的主人:一部電腦也需要很有效率已穩(wěn)定的核心,也就是操作系 統(tǒng)。因此,核心是整個(gè)系統(tǒng)維持下去的關(guān)鍵。

            Linux的一個(gè)重要的特點(diǎn)就是其源代碼的公開(kāi)性,所有的內(nèi)核源程序都可以在/usr/src/linux下找到,大部分應(yīng)用軟件也都 是遵循GPL而設(shè)計(jì)的,你都可以獲取相應(yīng)的源程序代碼。任何一個(gè)軟件工程師都可以將自己認(rèn)為優(yōu)秀的代碼加入到其中,由此引發(fā)的一個(gè)明顯的好處就是 Linux修補(bǔ)漏洞的快速以及對(duì)最新軟件技術(shù)的利用。而Linux的內(nèi)核則是這些特點(diǎn)的最直接的代表。

            想象一下,擁有了內(nèi)核的源程序?qū)δ銇?lái)說(shuō)意味著什么?首先,我們可以了解系統(tǒng)是如何工作的。通過(guò)通讀源代碼,我們就可以了解系統(tǒng)的工作原 理,這在Windows下簡(jiǎn)直是天方夜譚。其次,我們可以針對(duì)自己的情況,量體裁衣,定制適合自己的系統(tǒng),這樣就需要重新編譯內(nèi)核。在Windows下是 什么情況呢?相信很多人都被越來(lái)越龐大的Windows整得莫名其妙過(guò)。再次,我們可以對(duì)內(nèi)核進(jìn)行修改,以符合自己的需要。這意味著什么?沒(méi)錯(cuò),相當(dāng)于自 己開(kāi)發(fā)了一個(gè)操作系統(tǒng),但是大部分的工作已經(jīng)做好了,你所要做的就是要增加并實(shí)現(xiàn)自己需要的功能。在Windows下,除非你是微軟的核心技術(shù)人員,否則 就不用癡心妄想了。
          先介紹一下編譯核心的選項(xiàng),希望能對(duì)大家消除對(duì)內(nèi)核的神秘感有所幫助。

            1.代碼成熟等級(jí)

            2..處理器類型和特色

            3.對(duì)模塊的支持

            4.基本的選擇

            5.即插即用支持

            6.塊設(shè)備支持

            7.網(wǎng)絡(luò)選項(xiàng)

            8.電話支持

            9.SCSI設(shè)備的支持

            10.I2O接口適配器

            11.網(wǎng)絡(luò)設(shè)備支持

            12.配置業(yè)余無(wú)線廣播

            13.紅外支持

            14.ISDN的文件系統(tǒng)

            15.舊型的光驅(qū)類型(非IDE界面的光驅(qū))

            16.字符設(shè)備

            17.USB支持

            18.文件系統(tǒng)

            19.控制臺(tái)驅(qū)動(dòng)

            20.聲卡驅(qū)動(dòng)

            21.Kernel hacking

          第二節(jié) 內(nèi)核版本

            由于Linux的源程序是完全公開(kāi)的,任何人只要遵循GPL,就可以對(duì)內(nèi)核加以修改并發(fā)布給他人使用。Linux的開(kāi)發(fā)采用的是集市模 型(bazaar,與cathedral--教堂模型--對(duì)應(yīng)),為了確保這些無(wú)序的開(kāi)發(fā)過(guò)程能夠有序地進(jìn)行,Linux采用了雙樹(shù)系統(tǒng)。一個(gè)樹(shù)是穩(wěn)定樹(shù) (stable tree),另一個(gè)樹(shù)是非穩(wěn)定樹(shù)(unstable tree)或者開(kāi)發(fā)樹(shù)(development tree)。一些新特性、實(shí)驗(yàn)性改進(jìn)等都將首先在開(kāi)發(fā)樹(shù)中進(jìn)行。如果在開(kāi)發(fā)樹(shù)中所做的改進(jìn)也可以應(yīng)用于穩(wěn)定樹(shù),那么在開(kāi)發(fā)樹(shù)中經(jīng)過(guò)測(cè)試以后,在穩(wěn)定樹(shù)中將 進(jìn)行相同的改進(jìn)。一旦開(kāi)發(fā)樹(shù)經(jīng)過(guò)了足夠的發(fā)展,開(kāi)發(fā)樹(shù)就會(huì)成為新的穩(wěn)定樹(shù)。開(kāi)發(fā)數(shù)就體現(xiàn)在源程序的版本號(hào)中;源程序版本號(hào)的形式為x.y.z:對(duì)于穩(wěn)定樹(shù) 來(lái)說(shuō),y是偶數(shù);對(duì)于開(kāi)發(fā)樹(shù)來(lái)說(shuō),y比相應(yīng)的穩(wěn)定樹(shù)大一(因此,是奇數(shù))。確定是以″ root ″的身份簽入,然后cd 到 /usr/src 。uname -r 這個(gè)指令將會(huì)顯示版本。內(nèi)核版本的更新可以訪問(wèn)<http://www.kernel.org/>。

          第三節(jié) 編譯原因

            Linux作為一個(gè)自由軟件,在廣大愛(ài)好者的支持下,內(nèi)核版本不斷更新。新的內(nèi)核修訂了舊內(nèi)核的bug,并增加了許多新的特性。如果用戶想要使用這些新特性,或想根據(jù)自己的系統(tǒng)度身定制一個(gè)更高效,更穩(wěn)定的內(nèi)核,就需要重新編譯內(nèi)核。

            通常,更新的內(nèi)核會(huì)支持更多的硬件,具備更好的進(jìn)程管理能力,運(yùn)行速度更快、更穩(wěn)定,并且一般會(huì)修復(fù)老版本中發(fā)現(xiàn)的許多漏洞等,經(jīng)常性地選擇升級(jí)更新的系統(tǒng)內(nèi)核是Linux使用者的必要操作內(nèi)容。

            為了正確的合理地設(shè)置內(nèi)核編譯配置選項(xiàng),從而只編譯系統(tǒng)需要的功能的代碼,一般主要有下面四個(gè)考慮:

            ---自己定制編譯的內(nèi)核運(yùn)行更快(具有更少的代碼)

            ---系統(tǒng)將擁有更多的內(nèi)存(內(nèi)核部分將不會(huì)被交換到虛擬內(nèi)存中)

            ---不需要的功能編譯進(jìn)入內(nèi)核可能會(huì)增加被系統(tǒng)攻擊者利用的漏洞

            ---將某種功能編譯為模塊方式會(huì)比編譯到內(nèi)核內(nèi)的方式速度要慢一些

            以上是針對(duì)成熟的Linux套件如Redhat Linux而言,我的目的是為建造嵌入式Linux操作系統(tǒng)做準(zhǔn)備,也是必由之路。

          第四節(jié) 準(zhǔn)備工作

          第一部分 新版本內(nèi)核的獲取和更新

            Linux內(nèi)核版本發(fā)布的官方網(wǎng)站是<http://www.kernel.org/>, 國(guó)內(nèi)各大ftp上一般都可以找到某些版本的內(nèi)核。新版本的內(nèi)核的發(fā)布有兩種形式,一種是完整的內(nèi)核版本,另外一種是patch文件,即補(bǔ)丁。完整的內(nèi)核版 本比較大,比如linux-2.4.0-test8.tar.bz2就有18M之多。完整內(nèi)核版本一般是.tar.gz(.tgz)文件或者是.bz2文 件,二者分別是使用gzip或者bzip2進(jìn)行壓縮的文件,使用時(shí)需要解壓縮。patch文件則比較小,一般只有幾十K到幾百K,極少的會(huì)超過(guò)1M。但是 patch文件是針對(duì)于特定的版本的,需要找到自己對(duì)應(yīng)的版本才能使用。

            編譯內(nèi)核需要root權(quán)限。把需要升級(jí)的內(nèi)核拷貝到/usr/src/下(下文中以2.2.16的內(nèi)核的linux-2.2.16tar.gz為例)

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


            先查看當(dāng)前/usr/src的內(nèi)容,注意到有一個(gè)linux的符號(hào)鏈接,它指向一個(gè)類似于linux-2.2.14(對(duì)應(yīng)于現(xiàn)在使用的內(nèi)核版本號(hào))的目錄。首先刪除這個(gè)鏈接:


                                  #cd /usr/src

          #rm -f linux


            現(xiàn)在解壓下載的源程序文件。如果所下載的是.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


            現(xiàn)在再來(lái)看一下/usr/src下的內(nèi)容,發(fā)現(xiàn)現(xiàn)在有了一個(gè)名為linux的目錄,里面就是需要升級(jí)到的版本的內(nèi)核的源程序。還記得那 個(gè)名為linux的鏈接么?之所以使用那個(gè)鏈接就是防止在升級(jí)內(nèi)核的時(shí)候會(huì)不慎把原來(lái)版本內(nèi)核的源程序給覆蓋掉了。現(xiàn)在也需要同樣處理:




          #mv linux linux-2.2.16

          #ln -s linux-2.2.16 linux


            如果還下載了patch文件,比如patch-2.2.16,就可以進(jìn)行patch操作(下面假設(shè)patch-2.2.16已經(jīng)位于/usr/src目錄下了,否則需要先把該文件拷貝到/usr/src下):




          #patch -p0 < patch-2.2.16


          第二部分 準(zhǔn)備主機(jī)板和相關(guān)硬件的說(shuō)明手冊(cè)

            其實(shí)也不用太詳細(xì),只要知道您的硬件是屬于哪一類型就行了。例如:有一張SCSI卡,那就要知道這張卡的名字,有一臺(tái)cd-rom,就 要知道這臺(tái)光驅(qū)是哪一種牌子的,是否為標(biāo)準(zhǔn)的IDE/ATAPI界面,還是另有專屬接口卡呢?或者,主機(jī)版是否有支持Triton芯片(通常586以上的 電腦常有),這些信息能幫助我們,使得設(shè)定變得清楚且容易。

            因此,不管您有什么使用手冊(cè),準(zhǔn)備好吧。即使現(xiàn)在不用,將來(lái)還是會(huì)用到的(設(shè)X-window system時(shí)要顯示卡的手冊(cè))。

          第三部分 檢查聲卡的IRQ設(shè)定和其種類

            如果配有一張聲卡,除了要知道卡的種類外(例如 Sound Blaster)還需要知道這張卡的IRQ地址。一般來(lái)說(shuō),盧卡的IRQ地址是5或7而IO地址則為220。DMA則l,不過(guò),有時(shí)不同的聲卡可能會(huì)有不同的設(shè)定。因?yàn)樯院蟮倪x項(xiàng)里,就會(huì)要填入這些數(shù)字。

          第四部分 編譯核心的硬件需求

            在編譯核心時(shí),確定您的RAM最好在8MB以上, 否則可能會(huì)很慢而且問(wèn)題會(huì)很多,記得查看swap有沒(méi)有打開(kāi)(用free指令)。此外,最好不要超頻,不然很有可能會(huì)發(fā)生signal 11的錯(cuò)誤,使得編到一半的核心停了下來(lái),其實(shí)編譯核心就好比編譯程序一樣,只是因?yàn)闃?gòu)成核心的程序太多了,因此我們能小心盡量小心。


          第二章 內(nèi)核編譯的流程

            概述編譯的流程:

            編譯開(kāi)始----- make mrproper;檢查所需的連接

            配置核心

            編譯核心

            編輯/etc/lilo.conf

            重新啟動(dòng)新核心

            重新啟動(dòng)機(jī)器

            發(fā)現(xiàn)并修理故障(仔細(xì)看我的文章,應(yīng)該沒(méi)多少問(wèn)題了)

          第一節(jié) 編譯開(kāi)始

            通常要運(yùn)行的第一個(gè)命令是:




          #cd /usr/src/linux

          #make mrproper


            該命令確保源代碼目錄下沒(méi)有不正確的目標(biāo).o文件以及文件的互相依賴。如使用剛下載的完整的源程序包進(jìn)行編譯,本步可以省略。而如果多次使用了這些源程序編譯內(nèi)核,那么最好要先運(yùn)行一下這個(gè)命令。

            確保/usr/include/目錄下的asm、linux和scsi等鏈接是指向要升級(jí)的內(nèi)核源代碼的。它們分別鏈向源代碼目錄下的 真正的、該計(jì)算機(jī)體系結(jié)構(gòu)(對(duì)于PC機(jī)來(lái)說(shuō),使用的體系結(jié)構(gòu)是i386)所需要的真正的include子目錄。如:asm指向 /usr/src/linux/include/asm-i386等。若沒(méi)有這些鏈接,就需要手工創(chuàng)建,按照下面的步驟進(jìn)行:




          # 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鏈接后,再創(chuàng)建新的鏈接指向新內(nèi)核源代碼 目錄下的同名的目錄。這些頭文件目錄包含著保證內(nèi)核在系統(tǒng)上正確編譯所需要的重要的頭文件。也是上面又在/usr/src下"多余"地創(chuàng)建了個(gè)名為 linux的鏈接的原因之一.

            一旦萬(wàn)事俱備,轉(zhuǎn)到/usr/src/linux。現(xiàn)在你也許想停下細(xì)讀一下文檔文件,實(shí)際上如果你有些特別的硬件,或幾種光驅(qū)驅(qū)動(dòng)程 需要自己動(dòng)手設(shè)置,他們通常這樣做,當(dāng)引導(dǎo)時(shí)這些驅(qū)動(dòng)程序?qū)⒔o出警告,這并不礙事他們照常工作少,閱讀擴(kuò)展名為.txt .h.c的文件。通常我發(fā)現(xiàn)他們具有共性且易于配置。如果你不想冒險(xiǎn),你沒(méi)必要做。記住你照樣可以解開(kāi)tar文件(或再次安裝.rpm文件)恢復(fù)前的文 件。


          第二節(jié) 配置內(nèi)核 核心內(nèi)容

            接下來(lái)的內(nèi)核配置過(guò)程比較煩瑣,但是配置的適當(dāng)與否與日后Linux的運(yùn)行直接相關(guān),有必要了解一下選項(xiàng)的設(shè)置。

            配置內(nèi)核可以根據(jù)需要與愛(ài)好使用下面命令中的一個(gè):

            #make config(基于文本的最為傳統(tǒng)的配置界面,不推薦使用)

            #make menuconfig(基于文本選單的配置界面,字符終端下推薦使用,必須安裝ncurses-dev和tk4-dev庫(kù))

            #make xconfig(基于圖形窗口模式的配置界面,Xwindow下推薦使用)

            #make oldconfig(如果只想在原來(lái)內(nèi)核配置的基礎(chǔ)上修改一些小地方,會(huì)省去不少麻煩)

            如果不能使用Xwindow,那么就使用make menuconfig好了。界面雖然比上面一個(gè)差點(diǎn),總比make config的要好多了。

            選擇相應(yīng)的配置時(shí),有三種選擇,它們分別代表的含義如下:

            Y--將該功能編譯進(jìn)內(nèi)核

            N--不將該功能編譯進(jìn)內(nèi)核

            M--將該功能編譯成可以在需要時(shí)動(dòng)態(tài)插入到內(nèi)核中的模塊

            在每一個(gè)選項(xiàng)前都有個(gè)括號(hào), 但有的是中括號(hào)有的是尖括號(hào),還有一種圓括號(hào)。 用空格鍵選擇時(shí)可以發(fā)現(xiàn),中括號(hào)里要么是空,要么是"*",而尖括號(hào)里可以是空,"*"和"M"。這表示前者對(duì)應(yīng)的項(xiàng)要么不要,要么編譯到內(nèi)核里;后者則 多一樣選擇,可以編譯成模塊。而圓括號(hào)的內(nèi)容是要在所提供的幾個(gè)選項(xiàng)中選擇一項(xiàng)。

            在編譯內(nèi)核的過(guò)程中,最煩雜的事情就是這步配置工作了,不清楚到底該如何選取這些選項(xiàng)。實(shí)際上在配置時(shí),大部分選項(xiàng)可以使用其缺省值, 只有小部分需要根據(jù)用戶不同的需要選擇。選擇的原則是將與內(nèi)核其它部分關(guān)系較遠(yuǎn)且不經(jīng)常使用的部分功能代碼編譯成為可加載模塊,有利于減小內(nèi)核的長(zhǎng)度,減 小內(nèi)核消耗的內(nèi)存,簡(jiǎn)化該功能相應(yīng)的環(huán)境改變時(shí)對(duì)內(nèi)核的影響;不需要的功能就不要選;與內(nèi)核關(guān)心緊密而且經(jīng)常使用的部分功能代碼直接編譯到內(nèi)核中。下面對(duì) 選項(xiàng)分別加以介紹


            1.Code maturity level options代碼成熟等級(jí)

            此處只有一項(xiàng):prompt for development and/or incomplete code/drivers,如果要試驗(yàn)現(xiàn)在仍處于實(shí)驗(yàn)階段的功能,比如khttpd、IPv6等,就必須把該項(xiàng)選擇為Y了;否則可以把它選擇為N。 在Linux的世界里,每天都有許多人為它發(fā)展支持的driver和加強(qiáng)它的核心。但是有些driver還沒(méi)進(jìn)入穩(wěn)定的階段。但其作者很歡迎其他人去測(cè)試 這些driver并提出一些bugs。這個(gè)問(wèn)題是說(shuō),有一些drive還在做測(cè)試中,問(wèn)您是否要選擇這些drive或支持的程序碼。

            如果鍵入Y,往后將會(huì)出現(xiàn)一些還在測(cè)試中的東西給您做選擇。(像Java的程序碼和PCI bridge),臺(tái)則就鍵入N。

            2. Processor type and features處理器類型和特色

            #Processor family (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC,PPro/6x86MX) [PPro/6x86MX] ------選擇處理器類型,缺省為Ppro/6x86MX。它會(huì)對(duì)每種CPU做最佳化,讓它跑得快又好。一般來(lái)說(shuō),沒(méi)有選擇正確的CPU并不會(huì)有重大的 影響(特別是選擇386 ,這樣編譯出來(lái)的核心也許會(huì)比較小但它的速度可能就會(huì)變慢了)。所以,最好要知道您的CPU是哪一種。不過(guò),如果您的gCC編譯器是2.7.0版以前的。 那么只能選擇386或是486。

            #High Memory Support------內(nèi)核支持的最大內(nèi)存數(shù),缺省為1G。可以支持到4G、6.4G,一般可以不選.

            #Math emulation------這項(xiàng)詢問(wèn)是否需L1nux核心模擬數(shù)學(xué)浮點(diǎn)運(yùn)算器。如果有486Dx、AMD以及Pentium機(jī)器的話,這個(gè)選項(xiàng)就不必 選了,因?yàn)樗鼈兌加袃?nèi)建的浮點(diǎn)運(yùn)算器。協(xié)處理器是在386時(shí)代的寵兒,現(xiàn)在早已不用了。不過(guò),對(duì)于有內(nèi)建浮點(diǎn)運(yùn)算器的人來(lái)說(shuō),選了這個(gè)選項(xiàng)并不會(huì)因此讓內(nèi) 建的浮點(diǎn)運(yùn)算器失效。但它會(huì)增大核心約45KB。

            #MTTR (memory type range register)support------選擇該選項(xiàng),系統(tǒng)將生成/proc/mtrr文件對(duì)MTRR進(jìn)行管理,供X server使用。同時(shí)用來(lái)啟動(dòng)pentinum pro和pentinum II 的特殊功能,如果你用的不是這類CPU就選N,否則也僅僅是使內(nèi)核變大而已。

            #Symmetric multi-processing support------對(duì)稱多處理支持。除非有多個(gè)CPU,否則就不用選了。


            3. Loadable module support對(duì)模塊的支持.

            首先,了解一點(diǎn)關(guān)于模塊的知識(shí)。模塊就像你特意插入核心中的某些東西,如果辦公室有一個(gè)小網(wǎng)絡(luò)并且有時(shí)想用一下(但并不經(jīng)常),也許你 想把網(wǎng)卡編譯成一個(gè)模塊。使用這個(gè)模塊,機(jī)器必運(yùn)行和存取/libs下的模塊,意思是驅(qū)動(dòng)程序(IDE,SCSI等但必須是NFS支持的網(wǎng)卡),文件系統(tǒng) (通常是ext2但也可以是nfs)和核心類型(最好是elf)必須編譯在內(nèi)核并且不能是模塊,模塊只有核心引導(dǎo)時(shí)才起作用,驅(qū)動(dòng)程序(來(lái)網(wǎng)絡(luò))的存取, 和文件系統(tǒng)安裝。這些文件必須編譯在核心內(nèi)否則將能安裝啟動(dòng)分區(qū)。如果安裝啟動(dòng)分區(qū)和網(wǎng)絡(luò),你需要網(wǎng)絡(luò)系統(tǒng)文件,和己經(jīng)編譯的網(wǎng)卡。為什么要使用模塊? 模塊化使核心變的更簡(jiǎn)捷,它減少核心釋放大量的受保護(hù)的空間。模塊的安裝和卸載使用的空間是可重復(fù)分配利用的。如果你打開(kāi)機(jī)器有90%以上的時(shí)間用到一個(gè) 模塊,編譯它。運(yùn)用這類模塊是浪費(fèi)內(nèi)存的,原因是一旦你編譯了模塊它們同樣將占用大量的內(nèi)存,核心需要一些代碼來(lái)掛上模塊。記住,核心在保護(hù)空間運(yùn)行,但 模塊并不是。這么說(shuō),并不經(jīng)常使用我的設(shè)備,把它編譯成只支持ext2,ide和elf。而一直使用的網(wǎng)卡,把其它的編譯成模塊:如a.out, java, floppy, iso9960, msdos, minix, vfat,smb,nfs,smcultra(ethernetcard),serial,printer,sound,ppp,等等。它們?cè)S多只是在這 或那用上那么幾分鐘。嚴(yán)格的說(shuō),這樣做會(huì)使核心增大許多而降低它的執(zhí)行速度。這時(shí)我們就可以把這些可能會(huì)用的驅(qū)動(dòng)程序編譯成一個(gè)—個(gè)的模塊,在需要用的時(shí) 候才用insmod這個(gè)指令加入核心,不用的時(shí)候也能rmmod把它從核心移除,或是用lsmod察看目前所載入的模塊。這里面有三項(xiàng):

            #Enable loadable module support------除非準(zhǔn)備把所有需要的內(nèi)容都編譯到內(nèi)核里面,否則該項(xiàng)應(yīng)該是必選的。

            #Set version information on all module symbols------通常,我們更新核心版本之后,模塊耍重新的編譯。這個(gè)選項(xiàng)使您不必更新編譯模塊而能使用以前的模塊。可以不選它。但如果您選 y,則按照它的說(shuō)明,您必須有g(shù)enksyms這個(gè)程序(可用whereis指令查看有無(wú)此程序)。

            #Kernel module loader------讓內(nèi)核在啟動(dòng)時(shí)有自己裝入必需模塊的能力,建議選上。

            注意:在開(kāi)機(jī)就會(huì) mount 上來(lái)的 partition 的 FS 、device driver 記得要 compiler 進(jìn) kernel,不能把它弄成 modules。請(qǐng)不要夸張到為了完全模組化而忘了把ext2fs和IDE dirver compiler 進(jìn) kernel 里。


            4. General setup普通的屬性設(shè)置

            這部分內(nèi)容非常多,一般使用缺省設(shè)置就可以了。下面介紹一下經(jīng)常使用的一些選項(xiàng):

            #Networking support------網(wǎng)絡(luò)支持。因?yàn)樵贚inux里面,有虛擬的網(wǎng)絡(luò)設(shè)備(1ookback),可以模擬整個(gè)網(wǎng)絡(luò)。而且,—些程序需要它。必須,沒(méi) 有網(wǎng)卡也建議你選上。注意:選N,則7.(Networking options 網(wǎng)絡(luò)選項(xiàng))和11.(Network device support網(wǎng)絡(luò)設(shè)備支持) 不會(huì)出現(xiàn)。


            #Limit memory to low 16MB ------大部分的人這一選項(xiàng) N。除了主機(jī)板沒(méi)有辦法處理16MB以上的內(nèi)存,或者有超過(guò)16MB以上的內(nèi)存但卻常常發(fā)生一些很奇怪的問(wèn)題。這時(shí),您可以試試這個(gè)選項(xiàng)。有些主機(jī)板對(duì)超 16MB內(nèi)存的處理并不是很好,通常這些都是舊型的主機(jī)板。還有,在說(shuō)明文件中有提到,如果內(nèi)存超過(guò)64MB的話,用LILO加一些參數(shù)給Linux核心 (例:mem=80M),并且把您主機(jī)板上的Cache加到512K。這樣,整體效率才能提升。

            #PCI support ------PCI支持。如果使用了PCI的卡,當(dāng)然必選。

            #PCI bios support ------主機(jī)板是否有PCI界面。如果有,則您必須回答y。

            PCI是586電腦的主要界面(一些486主機(jī)板上也有),這個(gè)界面能讓您插入所謂的PCI顯示卡,或是PCI的網(wǎng)絡(luò)卡等。這種界面是 現(xiàn)在電腦的主要趨勢(shì),因此如果有PCI的插槽。您就可以選Y。除了一些很舊很舊但有支持PCI的主機(jī)板外(這些有bugs的舊型主機(jī)板可能會(huì)因?yàn)檫@個(gè)選項(xiàng) 而讓核心掛掉)。


            #PCI access mode (BIOS, Direct, Any) [Any] ------設(shè)置Linux探測(cè)PCI設(shè)備的方式。選擇“BIOS”,Linux將使用BIOS;選擇“Direct”,Linux將不通過(guò)BIOS;選 擇“Any”,Linux將直接探測(cè)PCI設(shè)備,如果失敗,再使用BIOS。

            #Support for hot-pluggabel devices ------熱插拔設(shè)備支持。支持的不是太好,可不選。

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

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

            #Backward-compatible /proc/pci------設(shè)備兼容,自己看help。

            #System V IPC 如果將來(lái)想編譯dosemu(DOS模擬器),則這個(gè)選項(xiàng)一定要選,它是一個(gè)讓各個(gè)程序(process)同步且能彼此交換數(shù)據(jù)的函數(shù)庫(kù)和一些系統(tǒng)的調(diào)用,沒(méi)它,很多的程序?qū)?huì)無(wú)法執(zhí)行。


            #BSD Process Accounting------

            #Sysctl support------除非你的內(nèi)存少的可憐,否則你應(yīng)該啟動(dòng)這個(gè)功能,啟用該選項(xiàng)后內(nèi)核會(huì)大8K,但能讓你直接改變內(nèi)核的參數(shù)而不必重新開(kāi)機(jī)。

            #Kernel support for A.OUT binaries ------a.out的執(zhí)行文件是比較古老的可執(zhí)行碼,用在比較早期的UNIX系統(tǒng)上。Linux最初也是使用這種碼來(lái)執(zhí)行程序,一直到ELF格式的可 執(zhí)行碼出來(lái)后,有愈來(lái)俞多的程序碼隨著ELF格式的優(yōu)點(diǎn)而變成了ELF的可執(zhí)碼。將來(lái)勢(shì)必完全取代a.out格式的可執(zhí)行碼。但目前由于沿有許多的程序還 沒(méi)有取代過(guò)來(lái),所以只好選擇Y,等將來(lái)有一天,全部的程序都變成了ELF的天下時(shí),那時(shí)再disable掉。

            #Kernel support for Linux/Intel ELF binaries ------由上所述,這個(gè)當(dāng)然y哩,因?yàn)槟壳癵cc-2.7.0以上的都有支持ELF了,如果沒(méi)有選擇這一項(xiàng),可能會(huì)使用相當(dāng)多的程序因此無(wú)法執(zhí)行。

            注意:編譯模塊成ELF和編譯支持ELF二進(jìn)制。不編譯適當(dāng)?shù)闹С?#8217;’gotcha’’是明智的,如果機(jī)器結(jié)構(gòu)是Pentium或 486你將得到高效的代碼,但一個(gè)386的核心將運(yùn)行在32-bit compatible clone;一個(gè)Pentium核心將不。為大多機(jī)器制作一張緊急啟動(dòng)盤,最好在386下編譯,而386并不能運(yùn)行在Pentium下編譯的核心。


            另外一點(diǎn)要注意的,你不能同時(shí)把 a.out 和 ELF 支援編譯成 modules,否則當(dāng)你為了能夠使用 insmod 而用 insmod 來(lái)載入 a.out/ELF modules 時(shí)會(huì)有 Catch/22 狀況發(fā)生。如果你的系統(tǒng)主要是 ELF 而你偶爾會(huì)需要用到a.out,你可以把 a.out 支援編譯為 modules,否則你最好把它直接放入 kernel 之中。如果你還沒(méi)進(jìn)入 ELF 的世紀(jì),在 compiler kernel 時(shí)可以直接把 ELF 支援去掉。

            #Kernel support for JAVA binaries ------ 這一項(xiàng)是正在做測(cè)試中的產(chǎn)品,但是如果想寫有關(guān)Java的程序,希望它能在Linux的機(jī)器上跑。那么,可以選擇把它編成一個(gè)模塊或是直接把它編進(jìn)核心里。


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

            ##Advanced Power Management BIOS support------高級(jí)電源管理BIOS支持。這通常是用在筆記本電腦上的東西,如果您有APM的BIOS,支持省電的設(shè)備的(有電池的那種), 那么您可以選上這項(xiàng),一般人這一項(xiàng)是選n,以避免一些可能會(huì)發(fā)生的問(wèn)題。后有8個(gè)選項(xiàng)。


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

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

            Linux對(duì)即插即用目前支持的不如Windows,好有些情況下會(huì)和其他設(shè)備產(chǎn)生沖突(I/O,DMA,IRQ等)。這個(gè)選項(xiàng)對(duì)PCI設(shè)備沒(méi)有影響,因?yàn)樗麄兲焐褪荘NP設(shè)備。。

            #Plug and Play support (CONFIG_PNP) ------ 選擇“y”,內(nèi)核將自動(dòng)配置即插即用設(shè)備。原來(lái)PNP還有這個(gè)意思。

            # ISA Plug and Play support ------ 選擇“y”,內(nèi)核將自動(dòng)配置基于ISA總線的即插即用設(shè)備。


            6. Block devices塊設(shè)備支持

            這個(gè)就得針對(duì)自己的設(shè)備情況來(lái)選了:

            #Normal PC floppy disk support (CONFIG_BLK_DEV_FD) [Y/m/n/?]------普通PC軟盤支持。

            #Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support ------選擇“y”,內(nèi)核將提供對(duì)增強(qiáng)IDE硬盤、CDROM和磁帶機(jī)的支持。在硬盤沒(méi)有做得很大的時(shí)候,一般的 IDE卡和 BIOS只能支持小于 540 MB的硬盤。不但如此,那時(shí)也只能支持二顆硬盤。但現(xiàn)今的硬盤動(dòng)不動(dòng)就是1GB以上,今年主流是30~50G,而且常常都會(huì)超過(guò)一二顆硬盤。如此一來(lái),新 的主機(jī)板就開(kāi)始支持加強(qiáng)型的IDE界而(Enhanced IDE),以支持到540MB以上的硬盤。所以,如果您的IDE界面是Enhanced的,請(qǐng)您選Y,底下就會(huì)出現(xiàn)八部分IDE界面的選項(xiàng),這些選項(xiàng)能加 快您的IDE界面的速度和對(duì)某些芯片做一些最佳化。但如果您的硬盤或光盤全都是SCSI界面的,那么選N以跳過(guò)下面選項(xiàng)。

            #use old disk-only driver on primary interface------通常是選擇N。因?yàn)槲覀冇衅渌碌膁rivers可用。這個(gè)選項(xiàng)的意思是說(shuō),如果您的IDE界面是很舊很舊的那種的。那 么,就可以使用這個(gè)drives 驅(qū)動(dòng)那個(gè)舊型的IDE界面(可裝二臺(tái)硬盤;或是一臺(tái)硬盤,一臺(tái)光盤)。而現(xiàn)今流行的 Enhanced IDE則有兩個(gè)界面,共可以接四臺(tái)硬盤。我們稍后會(huì)有 driver支持它。

            #Include IDE/ATAPI CDROM support------如果希望核心支持IDE/ATAPI界而的光驅(qū),選擇Y。如果有光驅(qū),但它附有一張接口卡,必須把排線接到那張專屬接口卡上; 或者是接到聲卡上的,則這個(gè)選項(xiàng)也需要選N,稍后我們會(huì)有非IDE的光驅(qū)廠牌讓我們挑選。現(xiàn)今的光驅(qū)通常是IDE/ATAPI界而的,所以這個(gè)選項(xiàng)通常是 Y。


            #Support removable IDE interfaces(PCMCIA)------這個(gè)選項(xiàng)對(duì)大部分的人全選n,除非您有PCMCIA的東西,這通常是筆記本電腦上看得到的東西。 PCMCIA是一個(gè)組織,在以前是設(shè)計(jì)內(nèi)存條的。但現(xiàn)在他們對(duì)于PC CARDS定了一個(gè)標(biāo)排,并很廣泛的應(yīng)用在1aptap的電腦上。不但有所謂的PCMCIA的硬盤,甚至有網(wǎng)絡(luò)卡、SCSI卡等,不過(guò),大部分的人并不需 要這個(gè)選項(xiàng)。

            這個(gè)選項(xiàng)選完后,以下則是Linux核心對(duì)幾種芯片的IDE界面做修正或是加強(qiáng)它。  

            #CMD640 chipset bugfix/support------ 很多 486和 586的主機(jī)板都是用 CMD640的芯片,它是Neptune芯片和 SIS芯片的結(jié)合。不過(guò),這種芯片有它的缺點(diǎn),在許多的情形下,它會(huì)造成數(shù)據(jù)的流失和錯(cuò)誤。如果您選了這一項(xiàng),則Linux核心會(huì)為您小心的尋找這些錯(cuò)誤 并修正它。而且,它會(huì)打開(kāi)對(duì)二個(gè)IDE界面的支持。不過(guò),在它的說(shuō)明文件中提到,如果您的主機(jī)板沒(méi)有PCI界面只有VESA總線界面卻希望有這項(xiàng)功能的 話,則您必須傳一些參數(shù)給核心(ideo=cmd640_vlb)。如果不確定上面所說(shuō)的,選擇Y。

            #CMD640 enhanced support------一般來(lái)說(shuō),對(duì)于硬盤的存取速度來(lái)說(shuō),有所謂的 PIO MODES值設(shè)定,現(xiàn)今的 IDE界面及 BIOS應(yīng)該都能偵測(cè)到正確的硬盤PIO MODE值了。此值愈高表示硬盤的存取的速度愈快。可是,有些主機(jī)板的B10S還是舊式的,不能抓到比較高的 PIO MODE值,如此一來(lái),便不能發(fā)揮整臺(tái)硬盤的效率。這個(gè)設(shè)定告訴讀者說(shuō):如果您的IDE界面是CMD640為基礎(chǔ)的界面,但是您的BIOS并不能抓到正確 的PIO MODE值,那么,這個(gè)選項(xiàng)可以自動(dòng)的找到硬盤正確的PIO MODE值。

            #RZ1000 chipset bugfix/support------這個(gè)選項(xiàng)如同前面的CMD640一樣。不過(guò),它的芯片是RZ1000的芯片,這種芯片是以Neptune芯片為 主的一種芯片,而目、有很多的486和 586的主機(jī)板都在使用它。可以查查主機(jī)板的說(shuō)明書或是 IDE接口卡的說(shuō)明書做確定。文件上提到,選擇這個(gè)將會(huì)降低一些速度,但是數(shù)據(jù)能百分之百的正確。


            #Intel 82371 PIIX(Triton I/II) DMA support------對(duì)于586的Pentium電腦來(lái)說(shuō),有相當(dāng)多的主機(jī)板都是用Intel的Triton芯片,使用這種芯片的最大好處是支持直 接內(nèi)存存取DMA,而節(jié)省您的CPU時(shí)間。在以往還沒(méi)有DMA這個(gè)東西時(shí),讀取硬盤需要耗用許多的CPU時(shí)間。如此一來(lái),CPU被占用,就不能充分的發(fā)揮 它的功效。后來(lái),DMA出來(lái)后,硬盤的讀取便靠Triton或其他有支持DMA的IDE界面的芯片,直接與它們做溝通,而節(jié)省了大量的 CPU時(shí)間,但這必須您的硬盤和主機(jī)板有同時(shí)支持 DMA的 IDE界面的芯片,直接與它們做溝通而節(jié)省了大量的 CPU時(shí)間。但這必須您的硬盤和主機(jī)板有同時(shí)支持DMA MODE才行。


            ##other IDE chipset support------如果這上選項(xiàng)選y,則會(huì)出現(xiàn)下列六種其他的芯片或廠牌供您選擇。




          * 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


            上面這六種廠牌的芯片依硬件配備而使用,但它們有共同的特點(diǎn)就是必須傳一些參數(shù)給核心。如果找不到您的芯片,那么也沒(méi)關(guān)系。上這些選項(xiàng)只不過(guò)對(duì)這些芯片做最佳化罷了。


            ## Additional Block Devices其他的塊設(shè)備


            #Loopback device support------大部分的人這一個(gè)選項(xiàng)都選N,因?yàn)闆](méi)有必要。這個(gè)選項(xiàng)的意思是說(shuō),可以將一個(gè)文件掛成一個(gè)文件系統(tǒng)。如果要燒光盤片的,那么您 很有可能在把一個(gè)文件燒進(jìn)去之前,看看這個(gè)文件是否符合IS09660的文件系統(tǒng)的內(nèi)容,是否符合您的需求。而且,可以對(duì)這個(gè)文件系統(tǒng)加以保護(hù)。不過(guò),如 果您 想做到這點(diǎn)的話,您必須有最新的mount程序,版本是在2.5X版以上的。而且如果您希望對(duì)這個(gè)文件系統(tǒng)加上保護(hù),則您必須有des.1.tar.gz 這個(gè)程序。注意:此處與網(wǎng)絡(luò)無(wú)關(guān)。


            #Multlnle devices driver support------這個(gè)選項(xiàng)可以讓把整個(gè)硬盤分區(qū)變成一個(gè)單獨(dú)的區(qū)塊設(shè)備,您必須有md035.tgz這個(gè)程序。而且在做這件事之前請(qǐng)將您的硬盤備份,因?yàn)樗性跍y(cè)試階段。一般人對(duì)這個(gè)選項(xiàng)是選N。


            #RAM disk support------如果使用過(guò)DOS下的ramdrive程序,應(yīng)該能了解這個(gè)選項(xiàng)的意義。它可以把內(nèi)存當(dāng)成硬盤來(lái)做存取就如同一般的硬盤一樣, 可以format它,或是放一些文件在里頭。然后,當(dāng)您關(guān)機(jī)這些數(shù)據(jù)也隨著之而去了。如果的RAM夠大,可以考慮玩玩這選項(xiàng),但一般人都不需要。


            #XT hard disk support------支持XT的古董硬盤,這是IBM電腦時(shí)代的東西,如果您還有這種很舊很舊的硬盤。那么,您可以把它編進(jìn)核心或是編成一個(gè)模塊。大部分的人這個(gè)選項(xiàng)都是選擇N的。


            #Compaq SMART2 support------


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


            #Logical volume manager(LVM)support------邏輯卷管理支持。


            #Multiple devices driver support------多設(shè)備驅(qū)動(dòng)支持。


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


            7. Networking options  網(wǎng)絡(luò)選項(xiàng)


            這里配置的是網(wǎng)絡(luò)協(xié)議。 


            #Packet socket ------ 選擇“Y”,一些應(yīng)用程序?qū)⑹褂肞acket協(xié)議直接同網(wǎng)絡(luò)設(shè)備通訊,而不通過(guò)內(nèi)核中的其它中介協(xié)議。


            #Kernel/User Network link driver------這個(gè)是在測(cè)試中的程序碼,一般人不需要用。依它的說(shuō)明,它允許在核心、模塊或程序間的某些部分間,彼此做雙向的溝通。如果想使用arpd,則這個(gè)程序碼就要加進(jìn)核心里。


            #TCP/IP networking------選擇“Y”,內(nèi)核將支持TCP/IP協(xié)議。這個(gè)選項(xiàng)無(wú)論如何請(qǐng)您選擇Y,即使沒(méi)有網(wǎng)絡(luò)卡,或是沒(méi)有連到網(wǎng)絡(luò)上的設(shè)備,在 linux上仍有所謂的lookback設(shè)備而且有些程序需要這個(gè)選項(xiàng)。在說(shuō)明文件中提到,如果您沒(méi)有打開(kāi)這個(gè)設(shè)定,則X-window system可能會(huì)有問(wèn)題(回為它也需要 TCP/IP)。 


            #Network firewalls------選擇“Y”,內(nèi)核將支持防火墻。Firewalls依英文看是防火墻。在網(wǎng)絡(luò)愈來(lái)愈發(fā)達(dá)的今天,網(wǎng)絡(luò)安全的考慮也愈來(lái)愈重 要了。在局域網(wǎng)上找一臺(tái)電腦來(lái)保護(hù)自己的考慮也愈來(lái)愈多了。可以在一局域網(wǎng)上找一臺(tái)電腦來(lái)保護(hù)自己區(qū)域內(nèi)的電腦。這樣的結(jié)果是,所有外部的電腦如果要連進(jìn) 內(nèi)部的電腦就必須通過(guò)這臺(tái)裝有Firewalls電腦的同意。所以,如果您希望這臺(tái)電腦有著過(guò)濾網(wǎng)絡(luò)的功能的話,那么這個(gè)選項(xiàng)要選 Y。而且,等一下有個(gè)IP firewalling的選項(xiàng)也要選y;但下面的forwarding/gatewaying要選n,如此才能讓它正常動(dòng)作。大部分的人這個(gè)選項(xiàng)選N。


            #Network alasing------允許有多個(gè)IP地址。


            #IP:forwarding/gatewaying ------ 和 Firewall相反,這個(gè)選項(xiàng)是用來(lái)疏導(dǎo)網(wǎng)絡(luò)的。一個(gè)gateway(也就是router),要幫忙疏導(dǎo)兩個(gè)網(wǎng)絡(luò)間的數(shù)據(jù)傳送。這臺(tái)機(jī)器必須要有兩張網(wǎng) 絡(luò)卡,連接兩個(gè)個(gè)同的網(wǎng)絡(luò),做疏導(dǎo)網(wǎng)絡(luò)的工作。如果選擇了這個(gè)選項(xiàng),則表示想讓這臺(tái)負(fù)責(zé)做router。那么,就必須有兩張網(wǎng)絡(luò)卡了。另外有一種情形是, 如果您有MODEM(通過(guò)串列界面以 SLIP和 PPP協(xié)議)和網(wǎng)絡(luò)卡,并用它們來(lái)連上Internet。這時(shí)您也一樣可以執(zhí)行IP-routing服務(wù),也需把這個(gè)選項(xiàng)打開(kāi)。


            #IP:multicasting------所謂的multicasting是群組廣播,它是用在視頻會(huì)議上的協(xié)議,如果想送一個(gè)網(wǎng) 絡(luò)封包(網(wǎng)絡(luò)的數(shù)據(jù)),同樣的一份數(shù)據(jù)將送往十部機(jī)器上。您可以連續(xù)送十次給十臺(tái)機(jī)器(點(diǎn)對(duì)點(diǎn)的傳送),也可以同時(shí)送一次,然后讓十臺(tái)機(jī)器同時(shí)接收到。當(dāng) 然后者比前者好,由于視頻會(huì)議要求是最好每個(gè)人都能同時(shí)收到同一份信息,所以如果您有類似的需要,這個(gè)選項(xiàng)就要打開(kāi)。同時(shí)您還必須去找相關(guān)的軟件。


            #IP: accounting------如果您打開(kāi)這個(gè)選項(xiàng),您就可以在/proc/net下看到系統(tǒng)對(duì)于整個(gè)網(wǎng)絡(luò)狀況的紀(jì)錄。所以一般的人這個(gè)選項(xiàng)都是選y。 而且,如果您設(shè)計(jì)把這臺(tái)Linux機(jī)器當(dāng)router用,那么讀者可以因?yàn)檫@個(gè)選項(xiàng)而獲得許多有關(guān)于網(wǎng)絡(luò)lP控制的信息和它的輸送情形。不過(guò),您必須在底 下的選擇中選擇proc系統(tǒng)(其實(shí)proc文件系統(tǒng)一定要選,不選很多程序會(huì)不能用!)


            #IP:aliasing support------也許您只有一張網(wǎng)絡(luò)卡,但經(jīng)由這個(gè)設(shè)定,您可以擁有數(shù)個(gè)IP地址。假設(shè)您已經(jīng)有一個(gè)lP地址了,您還想再加入其他的IP地址,這時(shí),您可以依下面的程序來(lái)做。


            在 shell下鍵入:


            sunlyy:/#ifconfig eth0:0其他的IP地址(這個(gè)IP地址不能與其他機(jī)器重復(fù))


            sunlyy:/# route-add-h(huán)ost其他的IP地址 dev eth0: 0


            如此您就可以同時(shí)擁有兩個(gè)IP地址了。當(dāng)然,如果想把這個(gè)IP地址去除,那么可以鍵人:


            sunslyy:/# ifconfig eth0:0- IP地址


            這樣您就可以把加入的IP地址去除。不過(guò)在使用此選項(xiàng)前,前面的那一個(gè)aliasing Network選項(xiàng)也要選上去。


            #IP: PC/TCP compatibility mode------大部分人都選n。除非在使用DOS下的NCSA-TCP/IP軟件連進(jìn)Linux機(jī)器時(shí)遇到了困難,或者有不相容的情形出現(xiàn)。這時(shí),您可以試著把這個(gè)選項(xiàng)打開(kāi),看看是否能解決這個(gè)問(wèn)題。


            #IP Reverse ARP------如果您的Linux希望提供bootd的服務(wù),就是讓沒(méi)有硬盤或軟盤也能夠開(kāi)機(jī)并且上網(wǎng)絡(luò),只要它們有網(wǎng)絡(luò)卡有連接到網(wǎng)絡(luò)的話。此時(shí), 您必須執(zhí)行一個(gè)指令叫rarp來(lái)設(shè)定哪些電腦的網(wǎng)絡(luò)卡可以如此。不過(guò)一般人都沒(méi)有這個(gè)需要,所以答n。


            #IP:Disable Path MTU Discovery (normall yenable)------ 大部分的人這個(gè)選項(xiàng)是選擇N。除非發(fā)現(xiàn)用DOS下的ncsa的telnet程序連到Linux機(jī)器上出問(wèn)題。這是很多人的問(wèn)題,如果發(fā)生了DOS下的 telnet程序不能連進(jìn)Linux時(shí),除了可以改用Nsysutel的telnet程序來(lái)解決外,還可以在編譯核心的時(shí)候,把這一項(xiàng)選 Y。 MTU(Maximal Transfer Unit)叫做最大的傳輸單位,是說(shuō)我們一次送往網(wǎng)絡(luò)的信息大小。而Path MTUD iscovery的意思是,當(dāng)Linux發(fā)現(xiàn)一些機(jī)器的傳輸量比較小時(shí),我們會(huì)分送網(wǎng)絡(luò)信息給它。如此可以增加網(wǎng)絡(luò)的速度,所以我們大部分都選N,也就是 Enable。


            #Ip:Dorp source routed frames------通常我們一個(gè)網(wǎng)絡(luò)的封包在丟出去后就不管它了,不過(guò),在TCP/IP協(xié)議里,您可以設(shè)定讓那些幫您繞路的機(jī)器回送一個(gè)是否這個(gè)封 包已經(jīng)送達(dá)了的消息。不過(guò),這會(huì)導(dǎo)至網(wǎng)絡(luò)安全上的問(wèn)題,所以很少用,一般來(lái)說(shuō)我們選擇Y。


            #IP:Allow large windows(not recommended if<16Mb of memory=)------如果有超過(guò)16MB以上的內(nèi)存,那么建議打開(kāi)這個(gè)選項(xiàng),可以增加傳輸?shù)乃俣取T谝话汩L(zhǎng)距離的網(wǎng)絡(luò)傳輸下要預(yù)備傳輸?shù)臄?shù)據(jù)可以 先儲(chǔ)存在緩沖區(qū),等到對(duì)方的回應(yīng)時(shí)再一次會(huì)過(guò)去。因此,您必須有內(nèi)存來(lái)作為緩沖區(qū)。


            #The IPX Protocol------IPX是一種傳輸協(xié)議,它是Novell的一種網(wǎng)絡(luò)協(xié)議,通常用在區(qū)域或是Windows的網(wǎng)絡(luò)下。如果您希望Novell 的機(jī)器資源共享(例如用他們的打印機(jī)或是硬盤),那么這個(gè)選項(xiàng)則要選y。至于存取文件的格式是NCPFS的格式,稍后把這個(gè)文件系統(tǒng)選上來(lái),以便支援這個(gè) 文件系統(tǒng)。 如此一來(lái),您就可以通過(guò)Novell的IPX通訊協(xié)議去存取它們的數(shù)據(jù)了。或者,您希望從dosemu(DOS的模擬器)里用IPX協(xié)議,這時(shí)也要把它選 進(jìn)來(lái)。


            #Full internal IPX network------提供了一個(gè)完整的內(nèi)部IPX網(wǎng)絡(luò),預(yù)設(shè)選項(xiàng)是N,因?yàn)樗赡軙?huì)讓一些應(yīng)用的服務(wù)程序(RIP/SAP)當(dāng)?shù)簟?/p>

            #Appletalk DDP------AppleTalk是存在于蘋果機(jī)上的一種通訊協(xié)議,用來(lái)蘋果電腦之間的網(wǎng)絡(luò)通迅,通過(guò)AppleTalk,彼此的電腦間可以打印和分 享文件。如果您需要連上這樣的網(wǎng)絡(luò),可以把這個(gè)選項(xiàng)打開(kāi),如此就能加入他們與這些電腦做溝通了,或者把這項(xiàng)編成一個(gè)模塊亦可。


            #Amateur Radio AX.25 Level2------


            #Bridging(EXPERIMENTAL)------選這兩個(gè)可以讓Linux變成一個(gè)網(wǎng)絡(luò)上的網(wǎng)橋,用來(lái)做不同網(wǎng)絡(luò)間的溝通,通常一般人不需要。


            #Qos and/or fair queueing(服務(wù)質(zhì)量公平調(diào)度)也支持了,還有kHTTPd,不過(guò)這些都還在實(shí)驗(yàn)階段。


            8. Telephony Support電話支持


            原來(lái)是Linux下可以支持電話卡,這樣你就可以在IP上使用普通的電話提供語(yǔ)音服務(wù)了。記住,電話卡可和modem沒(méi)有任何關(guān)系。


            9. SCSI support SCSI設(shè)備支持


            如果有 SCSI 設(shè)備,就回答 Y 。現(xiàn)在一般PC機(jī)不會(huì)有SCSI。接著會(huì)有提示要求更進(jìn)一步的資訊,像是你是否要支援光驅(qū),硬盤,還有你使用的是那一種 SCSI 界面卡。這部份請(qǐng)參閱SCSI-HOWTO ,有更詳細(xì)的說(shuō)明。如果你的啟動(dòng)分區(qū)是SCSI設(shè)備,不要選擇SCSI模塊支持。在一般的SCSI后是SCSI低級(jí)設(shè)備驅(qū)動(dòng)程序。再次重申,模塊僅僅是用 在不在啟動(dòng)分區(qū)的設(shè)備。


            #SCSI disk support------指硬盤而言,如果有SCSI硬盤,那么就要選這個(gè)選項(xiàng)。


            #SCSI tape support------指磁帶機(jī)而言,如果您有SCSI的磁帶機(jī),那么就要選這個(gè)選項(xiàng)。


            #SCSI CDROM support------指CDROM,如果您有SCSI光驅(qū),這一項(xiàng)一定要選。


            #SCSI generic support------指其他有關(guān)SCSI的東西,也許您有一臺(tái)SCSI的掃描器或是燒錄機(jī),或是其他有關(guān)SCSI的配備,您就要選這一項(xiàng)。而且,除此之外,您還必須準(zhǔn)備關(guān)于這些配備的軟件。


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


            #Probe a11 LUNs on each SCSI device------通常這個(gè)選項(xiàng)大部分的人都不會(huì)選。我們舉個(gè)例子來(lái)說(shuō),如果您的SCSI光驅(qū)是那種多片裝的,就是一臺(tái)光驅(qū),但可以一次放好幾片光盤片的那種。這種我們叫做Lun。


            #Verbose SCSI error reporting(kernel size+=12K)------如果認(rèn)為您的SCSI硬件配備有些問(wèn)題,想了解一下它出現(xiàn)的錯(cuò)誤信息。那么您可以把這個(gè)選項(xiàng)選y,Linux核心會(huì)告訴 您有關(guān)于您的SCSI配備的問(wèn)題(如果有的話)。不過(guò),它會(huì)增加核心約 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

            這個(gè)也不清楚,幫助里說(shuō)是這個(gè)需要I2O接口適配器才能支持的,在智能Input/Output(I2O)體系接口中使用,又是要硬件,不選了。


            11. Network device support網(wǎng)絡(luò)設(shè)備支持

            上面選好協(xié)議了,現(xiàn)在該選設(shè)備了,內(nèi)容多得很。還好里面大概分類了,有ARCnet設(shè)備、Ethernet(10 or 100 Mbit)、Ethernet(1000Mbit)、Wireless LAN(non-hamradio)、Token Ring device、Wan interfaces、PCMCIA network device support幾大類。耐心點(diǎn),一般說(shuō)來(lái)都能找到自己用的網(wǎng)卡。如果沒(méi)有,你只好自己到廠商那里去要驅(qū)動(dòng)了。 如果這個(gè)選項(xiàng)沒(méi)有打開(kāi)的話,那么以下的選項(xiàng)將不會(huì)出現(xiàn)。它是在選擇網(wǎng)絡(luò)卡或是網(wǎng)絡(luò)的設(shè)備。例如,PLIP,PPP,SLIP,還有各式各樣的網(wǎng)絡(luò)卡,所以 這個(gè)選項(xiàng)通常是選y。


            #Dummy net driver support------如果有SLIP或PPP的傳輸協(xié)議,那么要把這一項(xiàng)打開(kāi)。因?yàn)橐粊?lái)它不會(huì)讓您的Linux核心增大。二來(lái),對(duì)某些應(yīng)用程序來(lái) 說(shuō),它可以讓我們模擬出來(lái)的TCP/IP環(huán)境更像TCP/IP環(huán)境。如果您沒(méi)有SLIP或PPP協(xié)議,就不用打開(kāi)了。


            #EQL(serial line load balancing) support------如果有兩個(gè)MODEM,兩條電話線,而且用SLIP或PPP協(xié)議,可以用這個(gè)Driver以便讓您的MODEM有兩倍的速度。當(dāng)然,在網(wǎng)絡(luò)的另一端也要有同樣的設(shè)備。


            #PLIP(parallel port) support------依字面上看,它是一種利用打印機(jī)的接口(平行接口),然后利用點(diǎn)對(duì)點(diǎn)來(lái)模擬TCP/IP的環(huán)境。它和 SLIP/PPP全都屬于點(diǎn)對(duì)點(diǎn)通訊,您可以把兩臺(tái)電腦利用打印機(jī)的連接接口串聯(lián)起來(lái),然后,加入此通訊協(xié)議。如此一來(lái),這兩部電腦就等于一個(gè)小小的網(wǎng)絡(luò) 了。不過(guò),如果電腦有提供打印服務(wù)的話,這個(gè)選項(xiàng)最好不要打開(kāi),不然可能會(huì)有問(wèn)題(因?yàn)槎际怯闷叫薪涌冢?/p>

            #PPP(point-to-point)support------點(diǎn)對(duì)點(diǎn)協(xié)議,近年來(lái),PPP協(xié)議已經(jīng)慢慢的取代SLIP的規(guī)定了,原因是PPP協(xié)議可以獲取相同的IP地址,而SLIP則一直在改變IP地址,在許多的方面,PPP都勝過(guò)SLIP協(xié)議。


            #SLIP(serial line) support------這是MODEM族常用的一種通訊協(xié)議,必須通過(guò)一臺(tái)Server(叫ISP)獲取一個(gè)IP地址,然后利用這個(gè)IP地址,可以模擬以太網(wǎng)絡(luò),使用有關(guān)TCP/IP的程序。


            ##Ethernet(10 or 100Mbit)


            如果您在學(xué)校接了校園網(wǎng)絡(luò)并且使用網(wǎng)絡(luò)卡,那么這個(gè)選項(xiàng)一定要選y,否則以下對(duì)網(wǎng)絡(luò)卡的選擇將不會(huì)出現(xiàn)。或是您有網(wǎng)絡(luò)卡,這時(shí)您同樣的也要選y。之后,下面會(huì)列出許多網(wǎng)絡(luò)卡讓您選擇。像我們平常用的都是NE2000相容卡。




          #3COM cards

          #AMD LANCE and PCnet(AT1500 and NE2100) support

          #Western Digital/SMC cards

          ##other ISA Cards(CONFIG.ISA)------

          選y,以下才會(huì)列出有關(guān)ISA的網(wǎng)絡(luò)卡。包括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 ------選擇網(wǎng)絡(luò)卡,包括直接附在主機(jī)板上的那種。如果選擇y,則底下會(huì)列出其他的網(wǎng)絡(luò)卡讓您做選擇,這些卡對(duì)于一般人來(lái)說(shuō)很少會(huì)去用到。所以大部分的人這項(xiàng)是選N的。


            #Pocket and portable adaptors------通常用在可攜式的電腦上,這類型的網(wǎng)絡(luò)卡(口袋型的),由于體積很小在安裝和取下方面很方便,因此筆記本相關(guān)電腦上便常常采用這種網(wǎng)絡(luò)卡。


            #Token Ring driver support------Token Ring是 IBM電腦上的網(wǎng)絡(luò)。它叫令牌環(huán)網(wǎng)絡(luò),和以太網(wǎng)絡(luò)是很類似的東西。如果您希望使用的Token Ring網(wǎng)絡(luò)卡以便連接到這種網(wǎng)絡(luò),那么選Y,一般人都選N。


            #ARCnet support------這也是一種網(wǎng)絡(luò)卡,通常一般人用不到,所以選n。如果您有這樣的網(wǎng)絡(luò)卡,請(qǐng)看Documentation/networking/arcnet.txt的說(shuō)明。

           

            12. Amateur Radio support 業(yè)余無(wú)線廣播


            可以用來(lái)啟動(dòng)無(wú)線網(wǎng)絡(luò)的基本支持,目前的無(wú)線網(wǎng)絡(luò)可以通過(guò)公眾頻率傳輸數(shù)據(jù),如果你有此類設(shè)備就可以啟用,具體請(qǐng)參考AX25和HAM HOWTO 文檔。


            13. IrDA(infrared)support紅外支持


            14. ISDN subsystem


            如果使用ISDN上網(wǎng),這個(gè)就必不可少了。ISDN(Integrated Services Digital Network),它的中文名稱是綜合數(shù)字服務(wù)網(wǎng)絡(luò),是一個(gè)利用電話線,把聲音,影片信息以數(shù)字的方式傳送的數(shù)字網(wǎng)絡(luò),它需要電話交換機(jī)設(shè)備有支持 ISDN,這通常需要電信局來(lái)做安裝,對(duì)于在家工作的人來(lái)說(shuō),ISDN可能是最舒適最便宜的一種方式,因此有愈來(lái)愈多的人使用它。不過(guò),除非是公司,不然 一般人很少會(huì)使用到ISDN的,所以這部分的選項(xiàng)大都選N。如果您選擇Y,則下面會(huì)出現(xiàn)一些有關(guān)ISDN的問(wèn)題。如果需要用到ISDN,可以去看看雜志的 介紹。只要是有關(guān)網(wǎng)絡(luò)的雜志應(yīng)該都會(huì)有介紹。還需要啟用Support synchronous PPP選項(xiàng)(參考PPP over ISDN)。


            15. Old CD-ROM drivers(not SCSI、 IDE)非SCSI/IDE口的光驅(qū)


            如用IDE的CD-ROM,不選。


            以下是選擇非 IDE/ATAPI和 SCSI界面的光驅(qū),這些光驅(qū)通常有自己專屬的接口卡也是比較舊型的光驅(qū)類型。如果有這些光驅(qū),則這個(gè)選項(xiàng)要選y,否則選n。如果您選擇n,則會(huì)跳過(guò)以下光驅(qū)的選項(xiàng)。




          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-h(huán)94A CDROM sunnort

          Soft configurable CDROM interface card support

          Sony CDU3lA CDROM sunnort

          Sony CDU535 CDROM support


            16. Character devices字符設(shè)備


            所謂字符設(shè)備通常是指以字符為單位做處理的設(shè)備,例如終端機(jī)就是其中一項(xiàng)。原則上,我們對(duì)于這些選項(xiàng)的選擇也是以預(yù)設(shè)為主。這個(gè)內(nèi)容又太多了,先使用缺省設(shè)置,需要的話自己就修改。把大類介紹一下吧:


            #Virtual terminal ------ 選擇“y”,內(nèi)核將支持虛擬終端。


            #Support for console on virtual terminal------選擇“y”,內(nèi)核可將一個(gè)虛擬終端用作系統(tǒng)控制臺(tái)。


            #Standard/generic (dumb) serial support-------選擇“y”,內(nèi)核將支持串行口。標(biāo)準(zhǔn)序列接口的選定。如果您是用serial的鼠標(biāo)(大部分的人都是用這個(gè)),或是 MODEM的話,則這一項(xiàng)一定要選。大部分的人這一項(xiàng)都選y。


            #Support for console on serial port------選擇“y”,內(nèi)核可將一個(gè)串行口用作系統(tǒng)控制臺(tái)。


            ##I2C support------I2C是Philips極力推動(dòng)的微控制應(yīng)用中使用的低速串行總線協(xié)議。如果你要選擇下面的Video For Linux,該項(xiàng)必選。


            #Mice鼠標(biāo)。現(xiàn)在可以支持總線、串口、PS/2、C&T 82C710 mouse port、PC110 digitizer pad------根據(jù)需要選擇。非串行的鼠標(biāo),支持象PS/2。看一看你鼠標(biāo)的鍵。許多雙鍵鼠標(biāo)是PS/2,即使它們的連接看起來(lái)象串行的.。


            #PS/2 mouse (aka "auxiliary device") support ------- 如果用戶使用的是PS/2鼠標(biāo),則該選項(xiàng)應(yīng)該選擇“y”。


            #Joysticks------手柄。即使在Linux下把手柄驅(qū)動(dòng)起來(lái)意義也不是太大,游戲太少了。


            #Watchdog Cards:雖然稱為Cards,這個(gè)可以用純軟件來(lái)實(shí)現(xiàn),當(dāng)然也有硬件的。如果你把這個(gè)選中,那么就會(huì)在你的/dev下創(chuàng)建一個(gè)名為watchdog的 文件,它可以記錄你的系統(tǒng)的運(yùn)行情況,一直到系統(tǒng)重新啟動(dòng)的1分鐘左右。有了這個(gè)文件,你就可以恢復(fù)系統(tǒng)到重啟前的狀態(tài)了。


            #Video For Linux------支持有關(guān)的音頻/視頻卡。


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


            #Digiboard PC/Xx Support------這是一張叫 Digiboard PC/XX卡的 driver,這種卡上面有很多個(gè) serial port的插槽(一般來(lái)說(shuō)只有兩個(gè)),可以用來(lái)連接很多個(gè)MODEM,在民間的BBS站很常用到,如果您有這樣的東西,您必須選這項(xiàng)為y。有興趣的讀者可 以讀讀Documentation/digiboard.txt的內(nèi)容。


            #Cyclades async mux support------同上,這也是一種能接很多個(gè)serial port插槽的卡的驅(qū)動(dòng)程序。


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


            #SDL RISCom/8 card support------這也是其中的一個(gè)支持muti-serial卡的driver。


            #Parallel printer support------有打印機(jī)的或是使用到并行接口的人這一項(xiàng)一定要選。除非是用serial的打印機(jī)。還有如果您有使用PLIP,那么這項(xiàng)也請(qǐng)選上。


            #Mouse support------大部分的人這一項(xiàng)并不用選y。因?yàn)榇蟛糠值娜耸怯胹erial的鼠標(biāo),除非有些人是用一種附有接口卡的鼠標(biāo),這時(shí)這個(gè)選項(xiàng)才要選上,如果您選y,則底下會(huì)列出您的BUS鼠標(biāo)所用的接口卡。


            #support for user misc device modules------除非您有所謂的觸摸式顯示器或是光筆等東西,否則這一項(xiàng)選n。


            #QIC-02 tape support------非 SCSI界面的磁帶機(jī),除非您有,否則選 n。


            #Ftape(QIC-80/Travan)support------如果有磁帶機(jī),而這個(gè)磁帶機(jī)是接在軟盤控制卡上,這個(gè)選項(xiàng)才要選y。


            #Watchdog Timer support------一般人不需要這個(gè)選項(xiàng),如果您選上這個(gè)選項(xiàng),則您要用mknod在/dev下建一個(gè)watchdog的文件。請(qǐng)看Documentation/watchlog.txt的解釋。


            #Enhanced Real Time Clock Support------關(guān)于系統(tǒng)上Clock的東西,您必須自己用mknod在/dev/下建立一個(gè)文件叫rtc。如此一來(lái),在/proc/下將可以 看到rtc的信息。有關(guān)于rtc的內(nèi)容請(qǐng)看Documentation/rtc.txt。一般是選n。


            17. USB supprot USB支持  


            很多USB設(shè)備,比如鼠標(biāo)、調(diào)制解調(diào)器、打印機(jī)、掃描儀等,在Linux都可以得到支持,根據(jù)需要自行選擇。


            18. File systems文件系統(tǒng)


            Linux上有支持約二十幾種的文件系統(tǒng),有支持某個(gè)文件系統(tǒng)的意思是,可以存取某個(gè)文件系統(tǒng)的數(shù)據(jù)或是做拷貝動(dòng)作。在這些文件系統(tǒng) 中,通常的選擇方法是按照原來(lái)預(yù)設(shè)的方式,不過(guò),在其中,EXT2FS那個(gè)選項(xiàng)無(wú)論如何一定要選,因?yàn)槟鞘荓inux系統(tǒng)所使用的文件系統(tǒng)。其他的則依需 求做選擇。


            通常是ext2而讓其余的使用模塊。


            #Kernel automounter support------選擇“y”,內(nèi)核將提供對(duì)automounter的支持,使系統(tǒng)在啟動(dòng)時(shí)自動(dòng) mount遠(yuǎn)程文件系統(tǒng)。


            #Standard( minix )------新的套件不再建立 minix 文件系統(tǒng),而且很多人不使用它,但是把它配置在核心里仍然是個(gè)好主意。某些″rescue-disk ″ 程序會(huì)用到它,而且仍然有許多磁片可能用 minix 文件系統(tǒng),因?yàn)?minix 文件系統(tǒng)對(duì)于處理磁片方面是最好的。當(dāng)初Linus是因?yàn)閷?duì)Minix這個(gè)小型的操作系統(tǒng)有很深的經(jīng)驗(yàn),所以才寫出Linux這個(gè)操作系統(tǒng)。Minix文 件系統(tǒng)通常用在磁盤上,有時(shí)會(huì)用到它。


            #Extended fs ------ 這是擴(kuò)充文件系統(tǒng)的第一版,現(xiàn)在已經(jīng)不再使用。


            #Second extented fs------這是現(xiàn)在新發(fā)行的套件所廣泛采用的文件系統(tǒng),你可能會(huì)有其中一種。這個(gè)是linux文件系統(tǒng),請(qǐng)務(wù)必選y,如果問(wèn)我說(shuō)選n會(huì)有什么后果,我也不知道。除非您能把 Linux裝在 DOS的目錄下。


            #xiafs filesystem-----這個(gè)文件系統(tǒng)曾經(jīng)一度很普遍,但是在寫這份文件時(shí),我已經(jīng)不知道有任何人在使用它了。


            #DOS FAT fs ------DOS FAT文件格式的支持,可以支持FAT16、FAT32。這個(gè)選項(xiàng)是DOS的文件系統(tǒng),如果您沒(méi)有選y,則下面的MSDOS,VFAT,umsdos將不會(huì)出現(xiàn)。


            #msdos------DOS文件系統(tǒng)的格式。如果你想要在 linux 下使用你硬盤中的 MS-DOS 分割區(qū),或是想將用 MS-DOS 格式化的磁盤掛進(jìn)來(lái)的話,回答y 。


            #VFAT(Windows95) fs ------windows95所支持的文件系統(tǒng),是我們常說(shuō)的vfat文件系統(tǒng),如果您的系統(tǒng)中裝有windows95,那么選擇這個(gè)文件系統(tǒng)將對(duì)以讓您看到windows95的長(zhǎng)文件名。


            #umsdos: UNIX like fs on top of std MSDOS FAT fs ------ 如果把Linux裝進(jìn)DOS的一個(gè)目錄下那么您則要選擇這一項(xiàng)。不建議這樣做,因?yàn)槿绱艘粊?lái),就不能看到長(zhǎng)文件名了。而且效率上,井不是很好。


            #ums-dos------相當(dāng) slick 的文件系統(tǒng),它能使 MS-DOS 文件系統(tǒng)擁有更多的特性,像是長(zhǎng)檔名等等。這對(duì)那些不使用 MS-DOS 的人(像我)并不是很有用。


            #/proc------這是最 slick 的文件系統(tǒng)之一。它不是你硬盤分割區(qū)里的任何東西,不占用硬盤的空間,而是核心與程序之間的文件系統(tǒng)介面,它表示的只是內(nèi)存里頭的狀況和各個(gè)程序執(zhí)行的情 形,它也記錄了您硬件上配備。。許多程序工具(像″ps ″)都會(huì)用到它。如果已經(jīng)將它安裝好了,有空不妨試試看″cat /proc/meminfo ″或者是″ cat /proc/devices ″。有些 shells ,像是 rc ,會(huì)用 proc/self/fd(在其它系統(tǒng)上為 /dev/fd )來(lái)處理輸出入。幾乎可以確定你在這里得要回答y ,有許多重要的 Linux 標(biāo)準(zhǔn)工具是靠它來(lái)運(yùn)作的,否則有些指令會(huì)出問(wèn)題。


            #Root file system on NFS------一般不選,除非您的電腦上沒(méi)有硬盤,希望通過(guò)網(wǎng)絡(luò)由別人的硬盤開(kāi)機(jī)過(guò)Linux如此一來(lái)才有需要選這項(xiàng)。同時(shí)對(duì)方也要執(zhí)行rarp的服務(wù)。


            #System V and Coherent------這是為 System V 以及 Coherent 的分割區(qū)而設(shè)的。如果希望支持System V或Xenix的相關(guān)UNIX系統(tǒng)的FS并讀取它們的數(shù)據(jù),那么才有必要選這個(gè),否則一般來(lái)說(shuō)這個(gè)選項(xiàng)是選n的。


            #Quota support ------Quota可以限制每個(gè)用戶可以使用的硬盤空間的上限,在多用戶共同使用一臺(tái)主機(jī)的情況中十分有效。


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


            #Mandatory lock support------有些很特殊的database應(yīng)用軟件會(huì)用到它,一般人這個(gè)選項(xiàng)是選n。而且,如果選y的話,必須有最新版的NFS軟件,最新版的samba軟件等。


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


            #UFS filesystem support-----這是BSD,SunoS,F(xiàn)reeBSD,NetBSD或Nextstep所使用的文件系統(tǒng)。如果您在電腦上有這些操作系統(tǒng)的話,那么可以選這一項(xiàng)。否則一般人都選n。


            ##Network File Systems------網(wǎng)絡(luò)文件系統(tǒng)


            # NFS------如果你在網(wǎng)絡(luò)環(huán)境下而且想要分享檔案,回答 y 。如果希望掛上別的電腦的文件系統(tǒng),那么這個(gè)選項(xiàng)一定要選進(jìn)去。它可以讓您利用網(wǎng)絡(luò)把別人的硬盤當(dāng)成自己的來(lái)使用(把它變成一個(gè)目錄)。對(duì)于一般人來(lái)說(shuō),這個(gè)選項(xiàng)是選y。


            #SMB filesystem support------這個(gè)文件系統(tǒng)讓您可以掛上windows95或windowsNT的文件系統(tǒng),也就是您也可以抓到在windows下,網(wǎng)上鄰居上的電腦。


            #SMB long filename support------支持windows95的長(zhǎng)文件名。


            #NCP filesystem support------NCP是一種網(wǎng)絡(luò)的通訊協(xié)議,用在跑IPX協(xié)議上,它可以利用IPX協(xié)議讓兩臺(tái)電腦之間的文件共享,并做溝通。如果您想掛上有關(guān)Novell的Netware文件系統(tǒng),那么這個(gè)選項(xiàng)就選上去吧。


            ##Partition Types-----分區(qū)類型,該選項(xiàng)支持一些不太常用的分區(qū)類型,用戶如果需要,在相應(yīng)的選項(xiàng)上選擇“y”即可。


            ##Native Language Support------本地語(yǔ)言支持


            附:不知道需要那些文件系統(tǒng)怎末辦?


            鍵入″ mount ″它看起來(lái)會(huì)像這樣:




          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)


            仔細(xì)看看每一行;在” type ”后面的那個(gè)字就是文件系統(tǒng)的格式。在這個(gè)例子中,我的 / 和 /usr 分割區(qū)是 second extended 格式,我使用 /proc ,而且掛有一張以msdos (bleah) 為文件系統(tǒng)格式的磁片。如果你有使用 /proc ,可以試試″cat /proc/filesystems ″。它會(huì)給你一份目前使用的核心所支援的文件系統(tǒng)列表。


            19. Console drivers 控制臺(tái)驅(qū)動(dòng)


            #VGA text console ------ 選擇“y”,用戶就可以在標(biāo)準(zhǔn)的VGA顯示方式下使用Linux了。一般使用VGA text console就可以了,標(biāo)準(zhǔn)的80*25的文本控制臺(tái)。


            #Video mode selection support


            20. Sound sound聲卡驅(qū)動(dòng)


            如果你能在列表中找到聲卡驅(qū)動(dòng)那自然最好,否則就試試OSS了。閱讀幫助文件從列表中小心的選取。確信為你聲卡真確的選擇了I/O和 IRQ。聲卡的MPU I/O是0選項(xiàng)。一般是330,如果不對(duì)不必?fù)?dān)心。模塊的好處就是在核心編譯以后你還能重新編譯、安裝模塊并掛上核心。


            如果有聲卡,請(qǐng)去了解一下聲卡的 IRQ和 DMA等信息,并了解是屬于哪一種的。現(xiàn)在大部分的人使用的都是Sound Blaster或是它的相容卡。有關(guān)這類的信息請(qǐng)看各個(gè)聲卡的說(shuō)明書。當(dāng)選Y時(shí),出現(xiàn)下面的畫面。就依您的聲卡來(lái)做選擇吧!




          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_M(jìn)AX)

          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------ 這個(gè)選項(xiàng)通常是必要的。因此大部分的人選y,如果沒(méi)有這選項(xiàng),則很多的游戲?qū)](méi)有聲音效果。


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


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


            #I/O base for SB Check from manual of the card------聲卡的I/O地址。括號(hào)是常用的選項(xiàng)。


            #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------如有其他種類的聲卡,則這項(xiàng)要選上去,以下會(huì)列出其他的聲卡供選擇。


            21. Kernel hacking安全模式


            通俗的說(shuō),這是windows安全模式,找不到明確解釋,就引用這個(gè)說(shuō)法。>這是從 Linus 的 README 里摘錄的:


            ″kernel hacking ″配置的細(xì)節(jié)通常會(huì)產(chǎn)生一個(gè)更大或是更慢的核心(或者是又大又慢),而且可能因?yàn)閷⒁恍┏J脚渲贸珊芑钴S地去嘗試中斷一些不良的程序碼以便找出核心里的問(wèn) 題,而使得核心變得比較不穩(wěn)定。所以要產(chǎn)生一個(gè)核心″產(chǎn)品 ″的話,你在這里應(yīng)該回答n 。


            配置了這個(gè),即使在系統(tǒng)崩潰時(shí),你也可以進(jìn)行一定的工作了。


            如果對(duì)Linux核心很熟,想了解這個(gè)操作系統(tǒng)上的很深的信息,則這個(gè)選項(xiàng)才打開(kāi),將會(huì)在/proc下看到profile這個(gè)文件,記錄著相當(dāng)多的信息。這些信息是供除錯(cuò)用的,對(duì)一般人來(lái)說(shuō),這個(gè)選項(xiàng)是選n,以免造成系統(tǒng)不穩(wěn)固,或是引起其他的問(wèn)題。


            總算配置完了,現(xiàn)在存盤退出,當(dāng)然你也可以把現(xiàn)在的配置文件保存起來(lái),這樣下次再配置的時(shí)候就省力氣了。存盤退出的文件是一個(gè)可以編輯 的文本文件。你可以用你的文本編輯器如:Emacs,vi,CrispLite,joe,等等。配置文件在/usr/src/linux目錄名字是. config。前面的點(diǎn)使普通的.(ls)無(wú)法顯示,加上-a選項(xiàng)就能看見(jiàn)。編輯文件中在配置時(shí)遇到麻煩的數(shù)字。然后,make dep 把你的配置信息從.config傳送到特定的子目錄完成安裝。最后,make clean 準(zhǔn)備最后的核心編譯。


            第三節(jié)編譯內(nèi)核


            編譯有關(guān)的命令有如下幾個(gè):




          #make dep

          #make clean

          #make zImage

          #make bzImage /make zdisk

          #make modules

          #make modules_install

          #depmod -a


            第一個(gè)命令make dep實(shí)際上讀取配置過(guò)程生成的配置文件,來(lái)創(chuàng)建對(duì)應(yīng)于配置的依賴關(guān)系樹(shù),從而決定哪些需要編譯而那些不需要;


            第二命令make clean完成刪除前面步驟留下的文件,以避免出現(xiàn)一些錯(cuò)誤;


            第三個(gè)命令make zImage和第四個(gè)命令make bzImage實(shí)現(xiàn)完全編譯內(nèi)核,二者生成的內(nèi)核都是使用gzip壓縮的,只要使用一個(gè)就夠了,它們的區(qū)別在于使用make bzImage可以生成小一點(diǎn)的內(nèi)核,比如在編譯2.2.16版本的內(nèi)核時(shí)如果使用make zImage命令,那么就會(huì)出現(xiàn)system too big的錯(cuò)誤提示。建議使用make bzImage命令,壓縮的核心它將留在/usr/src/linux/arch/i386/boot目錄名為zImage。make zdisk寫zImage到軟盤在/dev/fd0(就是DOS中第一軟驅(qū)A:)。在開(kāi)始之前你必須有張盤在軟驅(qū)中。你可以同樣用make zImage 然后把它拷貝到軟盤cp /usr/src/linux/arch/i386/boot/zImage /dev/fd0 記住是高密度的,底密度的720k磁盤將不能啟動(dòng)核心。 zdisk 對(duì)于測(cè)試新核心很方便;如果它完全不行,只要把磁盤拿掉再用舊的核心啟動(dòng)即可。如果你意外地刪除了核心或是什么的,它也是個(gè)方便的啟動(dòng)辦法。當(dāng)你把一臺(tái)硬 盤的內(nèi)容傾倒到另外一臺(tái)去時(shí),你也可以用它來(lái)安裝新的系統(tǒng)(除了這些之外還有更多用途)(我不清楚,請(qǐng)指教)。所有近來(lái)的核心都是壓縮過(guò)的,所以有個(gè) z 在名字前面。核心是壓縮過(guò)的,當(dāng)它執(zhí)行的時(shí)候會(huì)自動(dòng)將自己解壓縮(一個(gè)節(jié)省磁盤空間的好方法)。


            后面三個(gè)命令只有在你進(jìn)行配置的過(guò)程中,在回答Enable loadable module support時(shí)選了"Y"才是必要的,make modules和make modules_install分別生成相應(yīng)的模塊和把模塊拷貝到需要的目錄中。


            嚴(yán)格說(shuō)來(lái),第七個(gè)命令和編譯過(guò)程并沒(méi)有關(guān)系,它是生成模塊間的依賴關(guān)系,這樣你啟動(dòng)新內(nèi)核之后,使用modprobe命令加載模塊時(shí)就能正確地定位模


            第四節(jié) 啟用內(nèi)核


            通常,核心安裝叫做vmlinuz。過(guò)去Unix使用者共同起了這名字。"z"表示壓縮,"v"和"m"意思是"virtual"(虛擬)和"sticky(粘性的)",各自屬于內(nèi)存和磁盤管理。建議保留vmlinuz核心,直到知道它工作。


            為了能夠使用新版本的內(nèi)核,還需要做一些改動(dòng):




          #cp /usr/src/linux/System.map /boot/System.map-2.2.16

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


            以上這兩個(gè)文件是剛才編譯時(shí)新生成的。下面修改/boot下的兩個(gè)鏈接System.map和vmlinuz,使其指向新內(nèi)核的文件:




          #cd /boot

          #rm -f System.map vmlinuz

          #ln -s vmlinuz-2.2.16 vmlinuz

          #ln -s System.map-2.2..16 System.map


            注意:要保留vmlinuz核心,以下列步驟進(jìn)行




          #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


            現(xiàn)在#vi /etc/lilo.conf,增加如下一段:


            image=/boot/vmlinuz-2.2.16 是設(shè)定為已經(jīng)安裝的核心


            label=linux2.2.16 則是由 lilo 用來(lái)告訴你現(xiàn)在要啟動(dòng)的是那個(gè)核心或作業(yè)系統(tǒng),


            read-only


            root=/dev/hda2 則是這個(gè)特別的作業(yè)系統(tǒng)的根目錄 /


            其中root=/dev/hda2一行要根據(jù)需要自行加以修改。


            運(yùn)行:#/sbin/lilo -v 保存執(zhí)行命令:lilo你將看到核心標(biāo)簽,第一個(gè)是星號(hào)。如果你沒(méi)有看到新核心的標(biāo)簽或LILO出現(xiàn)錯(cuò)誤,你需要重新對(duì)/etc/lilo.conf工作(看下面的LILO分析)。


            確認(rèn)對(duì)/etc/lilo.conf的編輯無(wú)誤,現(xiàn)在重新啟動(dòng)系統(tǒng):




          #shutdown -r now


            不建議使用熱啟動(dòng)或ctrl+Alt+del鍵。在一些情況下,文件系統(tǒng)不完全卸栽會(huì)損壞打開(kāi)的文件。在LILO提示時(shí),如果你需要啟 動(dòng)舊的核心或使用一些參數(shù)啟動(dòng),如果你沒(méi)看見(jiàn)啟動(dòng)提示,你可以試用shift或ctrl鍵,這樣啟動(dòng)提示就出現(xiàn)了。一旦出現(xiàn),按tab看核心標(biāo)簽。輸入標(biāo) 簽和可選參數(shù)啟動(dòng)。通常,在/etc/lilo.conf文件指定的時(shí)間后自動(dòng)啟動(dòng)核心。啟動(dòng)時(shí),你可能看見(jiàn)一些出錯(cuò)信息就象SIOCADDR。這常常顯 示模塊(一般是網(wǎng)絡(luò)模塊)沒(méi)有引導(dǎo)。處理這事很簡(jiǎn)單,如果有此一錯(cuò),"VFS,cannotmount root",你就不要在核心中編譯適當(dāng)?shù)拇疟P或文件系統(tǒng)支持。


            在機(jī)器重啟后出現(xiàn)LILO時(shí)按TAB鍵,輸入linux2.1.16,新內(nèi)核發(fā)揮作用了。


            附錄:LILO分析(技術(shù)性強(qiáng),僅供參考)


            第一部分 LILO介紹


            LILO(Linux Loader)是Linux自帶的一個(gè)優(yōu)秀的引導(dǎo)管理器,使用它可以很方便地引導(dǎo)一臺(tái)機(jī)器上的多個(gè)操作系統(tǒng)。與其他常用的引導(dǎo)加載程序相比,LILO引導(dǎo) 方式顯得更具有藝術(shù)性,對(duì)其深入的理解,將有助于我們方便地處理多操作系統(tǒng)、網(wǎng)絡(luò)引導(dǎo)、大硬盤及大內(nèi)存等諸多棘手的問(wèn)題。


            LILO的引導(dǎo)機(jī)制------眾所周知,計(jì)算機(jī)的最初啟動(dòng)是由BIOS控制的,在對(duì)一些硬件(如:內(nèi)存、鍵盤等)初始化之后,它會(huì)試 圖加載硬盤的主引導(dǎo)記錄(MBR)或軟盤的引導(dǎo)扇區(qū)。MBR可通過(guò)兩種方式運(yùn)行,其一是定位到活動(dòng)分區(qū)并加載相應(yīng)的引導(dǎo)扇區(qū),然后由引導(dǎo)扇區(qū)完成該分區(qū)內(nèi) 操作系統(tǒng)的基本組件的加載;其二是直接從一指定分區(qū)中加載信息,并通過(guò)它裝入任一分區(qū)的操作系統(tǒng),諸如LILO、OS/2 boot loader及Partition Magic等引導(dǎo)加載程序都可以配置成這種方式。軟盤的引導(dǎo)扇區(qū)相當(dāng)于硬盤活動(dòng)分區(qū)的引導(dǎo)扇區(qū),它通常用于裝入軟盤上的操作系統(tǒng)。由此可見(jiàn),只要把 LILO安裝在MBR、活動(dòng)分區(qū)或者引導(dǎo)軟盤上,就能接管計(jì)算機(jī)的控制權(quán),然后由LILO完成后繼的引導(dǎo)過(guò)程。LILO中建有一個(gè)引導(dǎo)表地址編碼,借此它 的引導(dǎo)程序就能定位到Linux的內(nèi)核文件,這種地址編碼既可以按照柱面/磁頭/扇區(qū)(CHS)模式,又可以采用LBA的線性塊號(hào)模式,因此,即使對(duì)某些 SCSI控制程序LILO也能運(yùn)轉(zhuǎn)良好。


            當(dāng)LILO定位到配置文件后,經(jīng)過(guò)預(yù)引導(dǎo)過(guò)程,就顯示提示符: LILO boot:   


            此時(shí),系統(tǒng)允許選擇引導(dǎo)不同的操作系統(tǒng)或者不同的內(nèi)核配置,按Tab鍵顯示可選項(xiàng)列表,然后輸入可選項(xiàng)或者直接回車選擇缺省配置,如果選擇了引導(dǎo)Linux,還可以直接傳遞參數(shù)到系統(tǒng)內(nèi)核。  


            和其他系統(tǒng)的引導(dǎo)加載程序相比,LILO具有更大的靈活性,其引導(dǎo)方式也更豐富多彩。


            ●當(dāng)LILO被安裝在硬盤的MBR、活動(dòng)分區(qū)或引導(dǎo)軟盤上時(shí),作為原引導(dǎo)程序的替身,它能引導(dǎo)任一硬盤任一分區(qū)上的Linux和其他操 作系統(tǒng);除了引導(dǎo)扇區(qū),它沒(méi)有任何隱含文件,也不需要使用特定的分區(qū),它的配置文件可以在任何分區(qū)、甚至是存放在與Linux毫不相干的DOS分區(qū)的某個(gè) 子目錄下;它能引導(dǎo)幾個(gè)不同的內(nèi)核配置,甚至是幾個(gè)不同的內(nèi)核; 它能引導(dǎo)同一機(jī)程序上的多個(gè)Linux版本;可達(dá)16個(gè)。 


            ●它能從網(wǎng)絡(luò)上引導(dǎo)Linux。


            ●LILO的靈活性使得其配置變得相當(dāng)復(fù)雜,當(dāng)有多個(gè)系統(tǒng)共存時(shí),建議先安裝其他操作系統(tǒng),最后再裝Linux,這樣,設(shè)置LILO對(duì)其他系統(tǒng)的引導(dǎo)會(huì)相對(duì)簡(jiǎn)單一些。 


            第二部分 LILO參數(shù)


            通常我們談到LILO,會(huì)涉及到兩個(gè)方面——LILO引導(dǎo)程序和LILO安裝命令/sbin/lilo。


            為了不至于混淆這兩個(gè)概念,本文將用LILO表示LILO引導(dǎo)程序,而lilo表示/sbin/lilo。一般地,LILO使用一個(gè)文 本文件/etc/lilo.conf作為其配置文件。lilo讀取lilo.conf,按照其中的參數(shù)將特定的LILO寫入系統(tǒng)引導(dǎo)區(qū)。任何時(shí)候,修改了 /etc/lilo.conf,都必須重新運(yùn)行l(wèi)ilo命令,以保證LILO正常運(yùn)lilo.conf使用的配置參數(shù)很多,配置起來(lái)也相當(dāng)復(fù)雜。下面以 RedHat Linux為例作一些初步探討,RedHat的lilo程序包版本為0.20,別的Linux發(fā)行版本可能會(huì)有所出入,但不會(huì)太大。


            lilo.conf文件中的配置參數(shù)分為兩部分,一部分是全局參數(shù),另一部分是引導(dǎo)映像參數(shù)。引導(dǎo)映像參數(shù)作用于每一個(gè)引導(dǎo)映像區(qū)。如 果某一引導(dǎo)映像參數(shù)(例如:password與全局參數(shù)的定義相抵觸,則以該引導(dǎo)映像參數(shù)的定義為準(zhǔn),但僅限于該引導(dǎo)映像區(qū)。LILO的引導(dǎo)參數(shù)有很多, 在此只對(duì)一些比較重要的參數(shù)作一介紹。與Linux系統(tǒng)其他的配置文件一樣,“#”號(hào)后的一行文字表示注釋。


            1.“boot=”此參數(shù)指明包含引導(dǎo)扇區(qū)的設(shè)備名(如:/dev/had),若此項(xiàng)忽略,則從當(dāng)前的根分區(qū)中讀取引導(dǎo)扇區(qū)。 


            2.“root=”此參數(shù)告訴內(nèi)核啟動(dòng)時(shí)以哪個(gè)設(shè)備作為根文件系統(tǒng)使用,其設(shè)定值為構(gòu)造內(nèi)核時(shí)根文件系統(tǒng)的設(shè)備名,可用的設(shè)備名有:


            (1)/dev/hdaN~/dev/hddN:ST-506兼容硬盤,a到d上的N個(gè)分區(qū)


            (2)/dev/sdaN~/dev/sdeN:SCSI兼容硬盤,a到e上的N個(gè)分區(qū)


            (3)/dev/xdaN~/dev/xdbN:XT兼容硬盤,a到b上的N個(gè)分區(qū)  


            (4)/dev/fdN:軟盤,A:(N=0)或B:(N=1)


            (5)/dev/nfs:由網(wǎng)絡(luò)取得根文件系統(tǒng)的標(biāo)志 


            3.“nfsroot=”若需通過(guò)NFS提供根文件系統(tǒng)來(lái)引導(dǎo)無(wú)盤工作站,此參數(shù)為內(nèi)核指定了網(wǎng)絡(luò)根文件系統(tǒng)所在的機(jī)程序、目錄及NFS,其格式為:nfsroot=(〈server_ip〉:)〈root_dir〉(,nfs_options))


            4.“nfsaddrs=”設(shè)定網(wǎng)絡(luò)通訊所需的各種網(wǎng)絡(luò)界面地址,如無(wú)此參數(shù),則內(nèi)核會(huì)試圖用反向地址解析協(xié)定(RARP)或啟動(dòng)協(xié)定 (BOOTP)找出這些參數(shù),其格式為:nfsaddrs=〈客戶端IP〉:〈服務(wù)端IP〉:〈網(wǎng)關(guān)IP〉:〈子網(wǎng)屏蔽〉:〈客戶端名稱〉:〈網(wǎng)絡(luò)設(shè)備名 〉:〈auto〉 


            5.“image=”指定Linux的內(nèi)核文件。


            6.“delay=”設(shè)定引導(dǎo)第一個(gè)映像前的等待時(shí)間。 


            7.“disk=”此參數(shù)為某一特殊的硬盤定義非標(biāo)準(zhǔn)參數(shù)。


            8.“append=”為內(nèi)核傳遞一個(gè)可選的參數(shù)行,其典型的應(yīng)用是為不能完全由系統(tǒng)自動(dòng)識(shí)別的硬盤指定參數(shù),如:append = "hd=64,32,202"   


            9.“label=”此參數(shù)為每個(gè)映像指定一個(gè)名字,以供引導(dǎo)時(shí)選擇。  


            10.“read-only”設(shè)定以只讀方式掛入根文件系統(tǒng),用于文件系統(tǒng)一致性檢查(fsck)。


            11.“install=”安裝一個(gè)指定文件作為新的引導(dǎo)扇區(qū),缺省為/boot/boot.b。 


            12.“loader=”說(shuō)明所使用的鏈加載程序(chain loader),缺省為/boot/chain.b,如果不是從首硬盤或軟盤啟動(dòng),那么,此選項(xiàng)必須說(shuō)明。 


            13.“table=”說(shuō)明包含分區(qū)表的設(shè)備名,如果此參數(shù)忽略,引導(dǎo)加載程序?qū)⒉荒軅鬟f分區(qū)信息到已引導(dǎo)的操作系統(tǒng)。當(dāng)此參數(shù)指向的分區(qū)表被修改時(shí),必須重新運(yùn)行/sbin/lilo。


            14.“init=”內(nèi)核初始化時(shí)執(zhí)行的程序,通常過(guò)程為init、getty、rc和sh,版本1.3.43以來(lái)的Linux內(nèi)核能夠執(zhí)行/sbin/init說(shuō)明的命令行,若在引導(dǎo)過(guò)程中出現(xiàn)問(wèn)題,則可設(shè)置init=/bin/sh直接跳到Shell。


            15.“ramdisk_start=”由于內(nèi)核不能放在壓縮的內(nèi)存文件系統(tǒng)映像內(nèi),為使內(nèi)核映像能夠和壓縮的內(nèi)存映像放在一張軟盤內(nèi),加入“ramdisk_start=〈offset〉”,這樣內(nèi)核才能開(kāi)始執(zhí)行。


            16.“mem=”此參數(shù)的目的之一是為L(zhǎng)inux指定使用的內(nèi)存數(shù)量:如mem=96MB,目的之二是指定mem=nopentium告訴內(nèi)核不要使用4MB分頁(yè)表。


            17.“vga=”設(shè)置顯示模式,如80×50、132×44等。


            18.“linear” 產(chǎn)生用于替換硬盤sector/head/cylinder地址(硬盤幾何參數(shù))的linear扇區(qū)地址。linear地址在運(yùn)行時(shí)產(chǎn)生并且不依賴于硬盤 幾何參數(shù)。某些SCSI硬盤和一些以LBA方式使用的IDE硬盤可能會(huì)需要使用這個(gè)參數(shù)。注意:在將LILO安裝到軟盤上時(shí)不能使用“linear”參 數(shù)。


            19.“prompt” 給出“boot:”提示,強(qiáng)制LILO等待用戶的鍵盤輸入,按下回車鍵則立即引導(dǎo)默認(rèn)的操作系統(tǒng),而按下Tab鍵則打印可供選擇的操作系統(tǒng)。當(dāng) “prompt”被設(shè)置而“timeout”沒(méi)有被設(shè)置時(shí),系統(tǒng)會(huì)一直處于等待狀態(tài)而不引導(dǎo)任何操作系統(tǒng)。不設(shè)置該參數(shù)時(shí),LILO不給出“boot:” 提示而直接引導(dǎo)默認(rèn)操作系統(tǒng),除非用戶按下了Shift、Ctrl、Alt三鍵中的任何一個(gè)。大多數(shù)情況下,如果你的硬盤上有多個(gè)操作系統(tǒng),建議使用參 數(shù),它留給用戶一個(gè)選擇的余地。  


            20.“timeout=” 設(shè)置等待鍵盤輸入的時(shí)長(zhǎng),單位是0.1秒。超過(guò)這段時(shí)間沒(méi)有輸入則為超時(shí),系統(tǒng)將自動(dòng)引導(dǎo)缺省的操作系統(tǒng)。如果不設(shè)置本參數(shù),缺省的超時(shí)時(shí)間長(zhǎng)度為無(wú)窮大。  


            21.“other=” 設(shè)置包含非Linux操作系統(tǒng),如DOS、SCO UNIX、Windows 95等系統(tǒng)引導(dǎo)映像的文件或設(shè)備。  


            22.a(chǎn)lias=name 給當(dāng)前操作系統(tǒng)起一別名。


            第三部分 LILO典型配置方法 


            通常情況下,Linux的安裝程序自身就可以完成LILO的安裝配置,從而較好地解決多重系統(tǒng)的引導(dǎo)問(wèn)題,如果系統(tǒng)不能自動(dòng)完成這種配置,則可以通過(guò)手工修改配置文件/etc/lilo.conf來(lái)實(shí)現(xiàn)不同條件下的引導(dǎo)。  


            1.當(dāng)系統(tǒng)能自動(dòng)完成配置時(shí)


            對(duì)于這種情況只有一個(gè)建議:將LILO安裝到Linux分區(qū)的根上,而不是MBR這個(gè)多事地帶。假設(shè)當(dāng)前hda1中裝有DOS/Windows,hda2中安裝了Linux,則/etc/lilo.conf的內(nèi)容大致如下: 




          boot=/dev/hda2#指定引導(dǎo)位置

          compact

          delay=50#延時(shí)5秒

          root=current#根在當(dāng)前分區(qū)

          image=/boot/vmlinuz#指定linux的內(nèi)核文件  

          label=linux#用linux為代表名稱 

          other=/dev/hda1#其他操作系統(tǒng)所在的分區(qū)

          table=/dev/hda#指定包含分區(qū)表的硬盤

          label=dos#用dos為代表名稱  


            2. 當(dāng)系統(tǒng)無(wú)法自動(dòng)完成配置時(shí) 


            系統(tǒng)無(wú)法自動(dòng)完成配置的情況不外乎兩種:


            (1) BIOS不能直接看到Linux的根分區(qū);


            (2) BIOS只能讀寫標(biāo)準(zhǔn)IDE硬盤的前504MB。


            這時(shí),必須遵循一個(gè)最基本的原則:建立一個(gè)BIOS能存取的較小的Linux分區(qū),其中包含內(nèi)核文件、映射文件及鏈加載程序等必要內(nèi)容,而根則可以是另外一個(gè)獨(dú)立的分區(qū)。至于配置上的其他細(xì)節(jié),我們通過(guò)以下實(shí)例來(lái)進(jìn)行說(shuō)明。


            第四部分 lilo.conf配置實(shí)例


            有了這些基礎(chǔ)知識(shí),我們可以很容易地按照自己的意圖配置LILO。


            例一.lilo.conf文件  




          boot=/dev/hda #將LILO安裝在MBR。LILO作為主引導(dǎo)管理器   

          message=/boot/message #注釋為/boot/message

          compact #產(chǎn)生一個(gè)更小的“map”文件  

          map=/boot/map #指定“map”文件為/boot/map   

          install=/boot/boot.b  

          password=zhoudi #設(shè)置口令

          vga=normal #80x25文本模式  

          linear #使用“linear”地址

          prompt #提示用戶鍵盤輸入  

          timeout=50 #超時(shí)時(shí)長(zhǎng)為5秒

          default=dos #缺省引導(dǎo)label為dos的操作系統(tǒng)

          image=/boot/vmlinuz-2.0.34-1#設(shè)定Linux所用核心

          #設(shè)置Linux核心引導(dǎo)映像  

          label=linux #標(biāo)識(shí)為linux  

          root=/dev/hda1 #設(shè)置根文件系統(tǒng)   

          read-only #LILO以只讀方式載入根文件系統(tǒng)   

          #設(shè)定MS-DOS或Windows 95

          other=/dev/hda2 #DOS分區(qū)為第一個(gè)IDE硬盤的第二分區(qū)  

          label=dos #標(biāo)識(shí)為dos   

          table=/dev/hda #主設(shè)備為第一個(gè)IDE硬盤  

          #設(shè)定SCO UNIX 注意:SCO分區(qū)必須設(shè)為活動(dòng)(active)分區(qū)并將LILO安裝在MBR上。

          other=/dev/hda3   

          label=sco   

          table=/dev/had


            這個(gè)例子中,LILO是作為主引導(dǎo)管理器來(lái)管理機(jī)器上所有操作系統(tǒng)的。LILO也可作為二級(jí)引導(dǎo)管理器,這只要將“boot”參數(shù)改為 根分區(qū)就可做到。例如:   boot=/dev/hda1 以這種方式使用LILO時(shí),Linux根分區(qū)必須用DOS或Linux的fdisk程序?qū)⑵湓O(shè)置為活動(dòng)分區(qū),并且這種方式只對(duì)硬盤主分區(qū)(不是擴(kuò)展或邏輯 分區(qū))有效。


            例二.一個(gè)標(biāo)準(zhǔn)的IDE大硬盤需安裝Linux和DOS/Windows。 


            對(duì)于大硬盤問(wèn)題,很多人只知道低于1024個(gè)柱面的限制,而不知為什么標(biāo)準(zhǔn)的IDE硬盤只能認(rèn)前504MB。其實(shí),BIOS的 int13調(diào)用是采用三個(gè)位元組的CHS編碼,10位為柱面號(hào),8位為磁頭號(hào),6位為扇區(qū)號(hào)。可能的柱面號(hào)碼是0~1023,可能的磁頭號(hào)碼是 0~255,而磁道上可能的扇區(qū)號(hào)碼是1~63,以這24位最多可以定址8455716864個(gè)位元組(7.875GB)。但不幸的是,標(biāo)準(zhǔn)的IDE介面 容許256個(gè)扇區(qū)/磁道、65536個(gè)柱面及16個(gè)磁頭。它自己本身可以存取237= 137438953472(128 GB),但是加上BIOS方面63個(gè)扇區(qū)與1024個(gè)柱面的限制后只剩528482304(504MB)可以定址得到。


            對(duì)策:在硬盤的前500MB中劃分350MB(/dev/hda1)給DOS,150MB(/dev/hda2)給Linux,在相應(yīng)的配置文件中應(yīng)說(shuō)明硬盤的參數(shù)。




          boot=/dev/hda  

          ... ...  

          disk=/dev/hda  

          bios=0x80  

          sectors=63  

          heads=16

          cylinders=2100   

          image=/vmlunuz   

          append="hd=2100,16,23"

          root=/dev/hda2  

          label=linux


            例三.如果你有一塊超過(guò) 8 G 的大硬盤, 并且需要把 Linux 安裝在比較靠后的位置,可以在安裝的時(shí)候, 選擇 linear 模式, 并且給它加上硬盤參數(shù).


            安裝時(shí)候的硬盤參數(shù)可以這樣寫: hd?=CYLs, HEADs, SECs 其中的大寫字母需要用實(shí)際的硬盤參數(shù)來(lái)替換, 這些參數(shù)可以從硬盤的標(biāo)簽上查到, 也可以看看 BIOS 設(shè)置里硬盤參數(shù)對(duì)應(yīng) LBA 模式的那一行. 問(wèn)號(hào)是根據(jù)硬盤確定的, 實(shí)際使用時(shí), 它可以是 a, b, c, d 四個(gè)字母中的一個(gè). 比如: hda=1869,63,255 這是 IBM 15.2G 硬盤的參數(shù).


            當(dāng)然進(jìn)入了 Linux 以后, 可以通過(guò)編輯 /etc/lilo.conf 加上這個(gè)文件, 然后運(yùn)行一遍 lilo 達(dá)到同樣的目的. 下面是本人未加參數(shù)前的 lilo.conf的內(nèi)容:




          boot = /dev/hda

          map = /boot/map

          install = /boot/boot.b

          prompt

          timeout = 50

          image = /boot/vmlinuz

          label = linux

          root = /dev/hda1

          initrd = /boot/initrd-2.2.12-20.img

          read-only


            按照 linear 方式加入?yún)?shù)以后是如下格式:




          boot = /dev/hda

          map = /boot/map

          install = /boot/boot.b

          prompt

          linear <-----加進(jìn)了這一行

          timeout = 50

          image = /boot/vmlinuz

          label = linux

          root = /dev/hda1

          initrd = /boot/initrd-2.2.12-20.img

          read-only

          append = "hda=1869,63,255"

          <------加進(jìn)了這一行 注意,

          append參數(shù)是針對(duì)每個(gè)系統(tǒng)引導(dǎo)記錄的,

          一定要放在 image 的下面或者是 other 的下面,

          這樣它才可以發(fā)揮作用.


            當(dāng)再次起動(dòng) Linux系統(tǒng)的時(shí)候, LILO 就按照線性模式對(duì)系統(tǒng)進(jìn)行引導(dǎo).除了在硬盤上尋址定位的方式不同以外, 對(duì)其他方面沒(méi)有什么影響.


            第三章內(nèi)核編譯的應(yīng)用


            第一節(jié)嵌入式Linux技術(shù)


            第二節(jié)你的Linux有多大?(及實(shí)踐結(jié)果)


            這可不是我寫的,只是用來(lái)參考制造small kernel,效果還可以。


            最小的 Linux kernel


            我使用的是 Mandrake 內(nèi)核的 2.2.15,我沒(méi)有修改任何一行程序碼,完全只靠修改組態(tài)檔得到這些數(shù)據(jù)。


            首先,使用 make xconfig 把所有可以拿掉的選項(xiàng)都拿得。


            不要 floppy


            不要 SMP,MTRR


            不要 networking,SCSI


            把所有的 block device 移除,只留下 old IDE device


            把所有的 character device 移除


            把所有的 filesystem 移除,只留下 minix


            不要 sound 支援


            相信我,我己經(jīng)把所有的選項(xiàng)都移除了。這樣做之后,我得到了一個(gè) 188K 的核心。不過(guò)這個(gè)核心恐怕很難發(fā)揮 Linux 的功能,因此我決定把網(wǎng)絡(luò)加回去。把 General中的 network support 加回去,重新編譯,核心變成 189 K。10K 換個(gè) TCP/IP stack,似乎是很上算的生意。


            不過(guò)有 stack 沒(méi)有 driver 也是惘然,所以我把 embedded board 常用的RTL8139 的 driver 加回去,195K。如果你需要 DOS 檔案系統(tǒng),那大小成為 213K。如果 minix 用 ext2 換代,則大小成長(zhǎng)至 222K。


            不過(guò)大家要注意,那里的大小指的是核心檔的大小。那和所需要的隨取記憶體是二回事。這個(gè)數(shù)字代表的意義是你需要多小的 ROM 來(lái)存放你的核心。


            Linux 所需的記憶體大約在 600~800 K 之間。1MB 可能可以開(kāi)機(jī)了,但可能不太有用。因?yàn)榭赡苓B載入 C 程序庫(kù)都有困難。2MB 應(yīng)該就可以做點(diǎn)事了,但可能要到4MB 以上才可以執(zhí)行一個(gè)比較完整的系統(tǒng)。


            看到這里,是不是覺(jué)得 Linux 真的有點(diǎn)大。好吧! 那我們就來(lái)看看誰(shuí)占用了這些空間,下面這個(gè)列表是從 222K 這個(gè)核心做出來(lái)的。




          # wc

          arch/i386/kernel/kernel.o

          arch/i386/mm/mm.o

          kernel/kernel.o

          mm/mm.o fs/fs.o

          ipc/ipc.o

          fs/filesystems.a

          net/network.a

          drivers/block/block.a

          drivers/char/char.a

          drivers/misc/misc.a

          drivers/net/net.a drivers/pnp/pnp.a

          /usr/src/smalllinux/arch/i386/lib/lib.a

          /usr/src/smalllinux/lib/lib.a

          /usr/src/smalllinux/arch/i386/lib/lib.a


            結(jié)果如下 :




          243 2250 81946 arch/i386/kernel/kernel.o

          42 316 10569 arch/i386/mm/mm.o

          173 1541 74660 kernel/kernel.o

          266 2307 68053 mm/mm.o

          222 3139 123193 fs/fs.o

          49 602 21600 ipc/ipc.o

          263 2940 106504 fs/filesystems.a

          137 1510 65512 net/network.a

          92 719 39178 drivers/block/block.a

          230 2308 87556 drivers/char/char.a

          1 1 8 drivers/misc/misc.a

          83 721 25680 drivers/net/net.a

          1 1 8 drivers/pnp/pnp.a

          20 187 9526 /usr/src/smalllinux/arch/i386/lib/lib.a

          23 150 7714 /usr/src/smalllinux/lib/lib.a

          20 187 9526 /usr/src/smalllinux/arch/i386/lib/lib.a

          1865 18879 731233 total


            先說(shuō)明一下,這里的大小和最終的大小有點(diǎn)差別,但大致還是可以做個(gè)參考。這邊顯示 730K 實(shí)際上大約在 600K 左右。很顯然的,filesystem 相當(dāng)?shù)拇蟆4蠹s在 230K 左右,占了 1/3 的體積。記憶體管理占了80K,和核心其它部份的總合差不多。TCP/IP stack 占了 65K,驅(qū)動(dòng)程序占了 120K。SysV IPC 占了 21K,必要的話可以拿掉,核心檔應(yīng)該可以再小個(gè) 10K 左右。 所以如果要減核心大小,應(yīng)該動(dòng)那里呢? 答案應(yīng)該很明顯,當(dāng)然是檔案系統(tǒng)。Linux 的 VFS 減化了檔案系統(tǒng)的設(shè)計(jì),buffer cache, directory cache 增加了系統(tǒng)的效率。但這些對(duì)整個(gè)系統(tǒng)都在flash 上的 embedded 系統(tǒng)而言根本就用處不大。如果可以把它們對(duì)拿掉,核心可以馬上縮小 20K 左右。如果跳過(guò)整個(gè) VFS,直接將檔案系統(tǒng)寫成一個(gè) driver 的型式,應(yīng)該可以將 230K 縮減至 50K左右。整個(gè)核心縮到 100K 左右。


            從上面的數(shù)據(jù)來(lái)看,ucLinux 所減小的 mm 部份反到省的不多,主要是 mm 除了 virtual memory 之外,也要處理 memory allocation 的部份,這部份是省不得的。如果二者齊做,則 100K 以下的 Linux 核心不是不可能的事。


            實(shí)踐:成功編譯196k的核心,但不能用來(lái)啟動(dòng)redhat,它太龐大了。280k可以啟動(dòng),正在向更小努力。


            結(jié)束語(yǔ)


            論文終于寫完了,有必要回顧一下我的畢業(yè)設(shè)計(jì)過(guò)程。


            對(duì)于一個(gè)非計(jì)算機(jī)專業(yè)的學(xué)生來(lái)說(shuō),這個(gè)課題更具有挑戰(zhàn)性。在Linux大行其道的今天,系統(tǒng)及網(wǎng)管方面的資料隨處可見(jiàn),但內(nèi)核資料匱 乏,讓人不知所措。開(kāi)始只要是Linux的書籍就看,一個(gè)月后覺(jué)得視野大開(kāi),逐漸明確了方向。搜集翻譯資料成了重要內(nèi)容,有時(shí)通宵在網(wǎng)上找資料,再在系統(tǒng) 上不斷檢驗(yàn)。論文核心------編譯流程開(kāi)始就得到老師指導(dǎo),配置內(nèi)核21大項(xiàng)數(shù)百個(gè)知識(shí)點(diǎn)可以說(shuō)是一條一條積累起來(lái)的,讓我很有成就感。


            論文除了詳細(xì)敘述怎么做,也說(shuō)明了原因,甚至還有附錄。我在突出重點(diǎn)的同時(shí),又聯(lián)系了我課題以外的內(nèi)容------嵌入式Linux操 作系統(tǒng),因?yàn)槲抑牢业恼n題是綜合課題-----設(shè)計(jì)具有嵌入式操作系統(tǒng)的器件(理論)------的前期工作。論文集網(wǎng)絡(luò)文章之大成,內(nèi)容豐富,希望能 為繼續(xù)深入研究Linux操作系統(tǒng)的同仁有所幫助。


            參考文獻(xiàn)


            【1】Kernel-HOWTO


            【2】Documentation


            【3】Configure.help


            【4】kernel-2.2.16-i686-smp.config


            【5】Lilo.conf 手冊(cè)文檔中的 USER.TEX (thank ZEO)


            【6】Linux 核心安裝 by David A. Bandel


            【7】嵌入式Linux技術(shù) ---Traveller


            【8】嵌入式系統(tǒng)以及如何構(gòu)造一個(gè)嵌入式系統(tǒng)概覽 JoelR.Williams


            【9】relevant READMEs and HOWTOs in the help text


            【10】http://www.pocketix.com/


            【11】中國(guó)Linux論壇 <http://www.linuxforum.net/>


            【12】www.linuxaid.com


            【13】清華大學(xué)大學(xué)bbs.net.tsinghua.edu.cn


            【14】交通大學(xué)思源學(xué)


            【15】西電科大BBS


          posted on 2007-10-18 11:31 MEYE 閱讀(2786) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 阿拉尔市| 股票| 贺州市| 萝北县| 定安县| 当阳市| 福州市| 平凉市| 河曲县| 陆丰市| 玉林市| 禄丰县| 云林县| 铁岭市| 安达市| 苍南县| 颍上县| 界首市| 吉林市| 乡宁县| 鄂尔多斯市| 镇雄县| 潮安县| 永安市| 闸北区| 伊宁市| 普安县| 崇州市| 长兴县| 恭城| 蓬莱市| 建昌县| 乌什县| 蓬安县| 克什克腾旗| 娄烦县| 青冈县| 德格县| 南江县| 泸水县| 临沧市|