天天看點

裁剪Ubuntu核心和子產品管理2

準備工作

  通常要運作的第一個指令是:

  #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的連結了吧?

配置

  接下來的核心配置過程比較煩瑣,但是配置的适當與否與日後linux的運作直接相關,有必要了解一下一些主要的且經常用到的選項的設定。

  配置核心可以根據需要與愛好使用下面指令中的一個:

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

#make menuconfig(基于文本選單的配置界面,字元終端下推薦使用)

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

#make oldconfig(如果隻想在原來核心配置的基礎上修改一些小地方,會省去不少麻煩)

  這三個指令中,make xconfig的界面最為友好,如果你可以使用xwindow,那麼就推薦你使用這個指令。

  如果你不能使用xwindow,那麼就使用make menuconfig好了。界面雖然比上面一個差點,總比make config的要好多了。

  選擇相應的配置時,有三種選擇,它們分别代表的含義如下:

  y--将該功能編譯進核心

  n--不将該功能編譯進核心

  m--将該功能編譯成可以在需要時動态插入到核心中的子產品

  如果使用的是make xconfig,使用滑鼠就可以選擇對應的選項。如果使用的是make menuconfig,則需要使用空格鍵進行選取。你會發現在每一個選項前都有個括号, 但有的是中括号有的是尖括号,還有一種圓括号。 用空格鍵選擇時可以發現,中括号裡要麼是空,要麼是"*",而尖括号裡可以是空,"*"和"m"這表示前者對應的項要麼不要,要麼編譯到核心裡;後者則多一樣選擇,可以編譯成子產品。而圓括号的内容是要你在所提供的幾個選項中選擇一項。

  在編譯核心的過程中,最煩雜的事情就是這步配置工作了,很多新手都不清楚到底該如何選取這些選項。實際上在配置時,大部分選項可以使用其預設值,隻有小部分需要根據使用者不同的需要選擇。選擇的原則是将與核心其它部分關系較遠且不經常使用的部分功能代碼編譯成為可加載子產品,有利于減小核心的長度,減小核心消耗的記憶體,簡化該功能相應的環境改變時對核心的影響;不需要的功能就不要選;與核心關心緊密而且經常使用的部分功能代碼直接編譯到核心中。下面就讓我們對常用的選項分别加以介紹。

  1. code maturity level options

  代碼成熟等級。此處隻有一項:prompt for development and/or incomplete code/drivers,如果你要試驗現在仍處于實驗階段的功能,比如khttpd、ipv6等,就必須把該項選擇為y了;否則可以把它選擇為n。

  2. loadable module support

  對子產品的支援。這裡面有三項:

  enable loadable module support:除非你準備把所有需要的内容都編譯到核心裡面,否則該項應該是必選的。

  set version information on all module symbols:可以不選它。

  kernel module loader:讓核心在啟動時有自己裝入必需子產品的能力,建議選上。

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:CD光牒使用的就是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

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

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

繼續閱讀