Linux作業系統核心編譯詳解(2)(轉)

worldblog發表於2007-08-10
Linux作業系統核心編譯詳解(2)(轉)[@more@]

  3. Processor type and features

  ??CPU型別。內容蠻多的,不一一介紹了,有關的幾個如下:

  ??Processor family:根據你自己的情況選擇CPU型別。

  ??High Memory Support:大容量記憶體的支援。可以支援到4G、64G,一般可以不選。

  ??Math emulation:協處理器模擬。協處理器是在386時代的寵兒,現在早已不用了。

  ??MTTR support:MTTR支援。可不選。

  ??Symmetric multi-processing support:對稱多處理支援。除非你富到有多個CPU,否則就不用選了。

  ??4. General setup

  ??這裡是對最普通的一些屬性進行設定。這部分內容非常多,一般使用預設設定就可以了。下面介紹一下經常使用的一些選項:

  ??Networking support:網路支援。必須,沒有網路卡也建議你選上。

  ??PCI support:PCI支援。如果使用了PCI的卡,當然必選。

  ??PCI access mode:PCI存取模式。可供選擇的有BIOS、Direct和Any,選Any吧。

  ??Support for hot-pluggabel devices:熱插拔裝置支援。支援的不是太好,可不選。

  ??PCMCIA/CardBus support:PCMCIA/CardBus支援。有PCMCIA就必選了。

  ??System V IPC

  ??BSD Process Accounting

  ??Sysctl support:以上三項是有關程式處理/IPC呼叫的,主要就是System V和BSD兩種風格。如果你不是使用BSD,就按照預設吧。

  ??Power Management support:電源管理支援。

  ??Advanced Power Management BIOS support:高階電源管理BIOD支援。

  ??5. Memory Technology Device(MTD)

  ??MTD裝置支援。可不選。

  ??6. Parallel port support

  ??串列埠支援。如果不打算使用串列埠,就別選了。

  ??7. Plug and Play configuration

  ??即插即用支援。雖然Linux對即插即用目前支援的不如Windows好,但是還是選上吧,這樣你可以拔下滑鼠之類的體驗一下Linux下即插即用的感覺。

  ??8. Block devices

  ??塊裝置支援。這個就得針對自己的情況來選了,簡單說明一下吧:

  ??Normal PC floppy disk support:普通PC軟盤支援。這個應該必選。

  ??XT hard disk support:

  ??Compaq SMART2 support:

  ??Mulex DAC960/DAC1100 PCI RAID Controller support:RAID映象用的。

  ??Loopback device support:

  ??Network block device support:網路塊裝置支援。如果想訪問網路上的芳鄰的東西,就選上。

  ??Logical volume manager(LVM)support:邏輯卷管理支援。

  ??Multiple devices driver support:多裝置驅動支援。

  ??RAM disk support:RAM盤支援。

  ??9. Networking options

  ??網路選項。這裡配置的是網路協議。內容太多了,不一一介紹了,自己看吧,如果你對網路協議有所瞭解的話,應該可以看懂的。如果懶得看,使用預設選項(肯定要選中TCP/IP networking哦)就可以了。讓我們看看,TCP/IP、ATM、IPX、DECnet、Appletalk……支援的協議好多哦,IPv6也支援了,Qos and/or fair queueing(服務質量公平排程)也支援了,還有kHTTPd,不過這些都還在實驗階段。

  ??10. Telephony Support

  ??電話支援。這個是什麼東東?讓我查查幫助,原來是Linux下可以支援電話卡,這樣你就可以在IP上使用普通的電話提供語音服務了。記住,電話卡可和modem沒有任何關係哦。

  ??11. ATA/IDE/MFM/RLL support

  ??這個是有關各種介面的硬碟/光碟機/磁帶/軟盤支援的,內容太多了,使用預設的選項吧,如果你使用了比較特殊的裝置,比如PCMCIA等,就到裡面自己找相應的選項吧。

  ??12. SCSI support

  ??SCSI裝置的支援。我沒有SCSI的裝置,所以根本就不用選,如果你用了SCSI的硬碟/光碟機/磁帶等裝置,自己找好了。

  ??13. IEEE 1394(FireWire)support

  ??這個是什麼?低版本的沒有見過,看看幫助再說。原來是要Fireware硬體來提高序列匯流排的效能,我沒有,不選了。

  ??14. I2O device support

  ??這個也不清楚,幫助裡說是這個需要I2O介面介面卡才能支援的,在智慧Input/Output(I2O)體系介面中使用,又是要硬體,不選了。

  ??15. Network device support

  ??網路裝置支援。上面選好協議了,現在該選裝置了,可想而知,內容肯定多得很。還好還好,裡面大概分類了,有ARCnet裝置、Ethernet(10 or 100 Mbit)、Ethernet(1000Mbit)、Wireless LAN(non-hamradio)、Token Ring device、Wan interfaces、PCMCIA network device support幾大類。我用的是10/100M的乙太網,看來只需要選則這個了。還是10/100M的乙太網裝置熟悉,內容雖然多,一眼就可以看到我所用的RealTeck RTL-8139 PCI Fast Ethernet Adapter support,為了免得麻煩,編譯到核心裡面好了,不選M了,選Y。耐心點,一般說來你都能找到自己用的網路卡。如果沒有,你只好自己到廠商那裡去要驅動了。

  ??16. Amateur Radio support

  ??又一個不懂的,應該是配置業餘無線廣播的吧,沒有,不要了。

  ??17. IrDA(infrared)support

  ??這個要紅外支援,免了。

  ??18. ISDN subsystem

  ??如果你使用ISDN上網,這個就必不可少了。自己看著辦好了。

  ??19. Old CD-ROM drivers(not SCSI、not IDE)

  ??做的可真周到,原來那些非SCSI/IDE口的光碟機誰還在用啊,自己選吧,反正我是用的IDE的CD-ROM,不選這個。

  ??20. Character devices

  ??字元裝置。這個內容又太多了,先使用預設設定,需要的話自己就修改。把大類介紹一下吧:

  ??I2C support:I2C是Philips極力推動的微控制應用中使用的低速序列匯流排協議。如果你要選擇下面的Video For Linux,該項必選。

  ??Mice:滑鼠。現在可以支援匯流排、串列埠、PS/2、C&T 82C710 mouse port、PC110 digitizer pad,自己根據需要選擇。

  ??Joysticks:手柄。即使在Linux下把手柄驅動起來意義也不是太大,遊戲太少了。

  ??Watchdog Cards:雖然稱為Cards,這個可以用純軟體來實現,當然也有硬體的。如果你把這個選中,那麼就會在你的/dev下建立一個名為watchdog的檔案,它可以記錄你的系統的執行情況,一直到系統重新啟動的1分鐘左右。有了這個檔案,你就可以恢復系統到重啟前的狀態了。

  ??Video For Linux:支援有關的音訊/影片卡。

  ??Ftape, the floppy tape device driver:

  ??PCMCIA character device support:

  ??21. File systems

  ??檔案系統。內容又太多了,老法子,在預設選項的基礎上進行修改。介紹以下幾項:

  ??Quota support:Quota可以限制每個使用者可以使用的硬碟空間的上限,在多使用者共同使用一臺主機的情況中十分有效。

  ??DOS FAT fs support:DOS FAT檔案格式的支援,可以支援FAT16、FAT32。

  ??ISO 9660 CD-ROM file system support:光碟使用的就是ISO 9660的檔案格式。

  ??NTFS file system support:ntfs是NT使用的檔案格式。

  ??/proc file system support:/proc檔案系統是Linux提供給使用者和系統進行互動的通道,建議選上,否則有些功能沒法正確執行。

  ??還有另外三個大類都規到這兒了:Network File Systems(網路檔案系統)、Partition Types(分割槽型別)、Native Language Support(本地語言支援)。值得一提的是Network File Systems裡面的兩種:NFS和SMB分別是Linux和Windows相互以網路鄰居的形式訪問對方所使用的檔案系統,根據需要加以選擇。

  ??22. Console drivers

  ??控制檯驅動。一般使用VGA text console就可以了,標準的80*25的文字控制檯。

  ??23. Sound

  ??音效卡驅動。如果你能在列表中找到音效卡驅動那自然最好,否則就試試OSS了。

  ??24. USB supprot

  ??USB支援。很多USB裝置,比如滑鼠、調變解調器、印表機、掃描器等,在Linux都可以得到支援,根據需要自行選擇。

  ??25. Kernel hacking

  ??配置了這個,即使在系統崩潰時,你也可以進行一定的工作了。普通使用者是用不著這個功能的。

  ??總算配置完了,現在存檔退出,當然你也可以把現在的配置檔案儲存起來,這樣下次再配置的時候就省力氣了。

  ??編譯

  ??在繁雜的配置工作完成以後,下面你就可以自己到杯茶耐心等候了。與編譯有關的命令有如下幾個:

  #make dep

  #make clean

  #make zImage

  #make bzImage

  #make modules

  #make modules_install

  #depmod -a

  ??第一個命令make dep實際上讀取配置過程生成的配置檔案,來建立對應於配置的依賴關係樹,從而決定哪些需要編譯而那些不需要;第二命令make clean完成刪除前面步驟留下的檔案,以避免出現一些錯誤;第三個命令make zImage和第四個命令make bzImage實現完全編譯核心,二者生成的核心都是使用gzip壓縮的,只要使用一個就夠了,它們的區別在於使用make bzImage可以生成大一點的核心,比如在編譯2.4.0版本的核心時如果使用make zImage命令,那麼就會出現system too big的錯誤提示。建議大家使用make bzImage命令。

  ??後面三個命令只有在你進行配置的過程中,在回答Enable loadable module support (CONFIG_MODULES)時選了"Yes"才是必要的,make modules和make modules_install分別生成相應的模組和把模組複製到需要的目錄中。

  ??嚴格說來,第七個命令和編譯過程並沒有關係,它是生成模組間的依賴關係,這樣你啟動新核心之後,使用modprobe命令載入模組時就能正確地定位模組。

  ??更新

  ??經過以上的步驟,我們終於得到了新版本的核心。為了能夠使用新版本的核心,我們還需要做一些改動:

  #cp /usr/src/linux/System.map /boot/System.map-2.4.0test8

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

  ??以上這兩個檔案是我們剛才編譯時新生成的。下面修改/boot下的兩個連結System.map和vmlinuz,使其指向新核心的檔案:

  #cd /boot;rm -f System.map vmlinuz

  #ln -s vmlinuz-2.4.0test8 vmlinuz

  #ln -s System.map-2.4.0test8 System.map

  ??然後修改/etc/lilo.conf:

  #vi /etc/lilo.conf

  ??增加如下一段:

  image=/boot/vmlinuz-2.4.0test8

  label=linux240

  read-only

  root=/dev/hda2

  ??其中root=/dev/hda2一行要根據需要自行加以修改。

  ??執行:

  #/sbin/lilo -v

  ??確認對/etc/lilo.conf的編輯無誤,現在重新啟動系統:

  #shutdown -r now

  ??在機器重啟後出現LILO時按TAB鍵,輸入linux240,我們的新核心發揮作用了,好好享受吧。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-940301/,如需轉載,請註明出處,否則將追究法律責任。

相關文章