三、對Linux係統內核進行配置與裁剪
Linux係統在內核裁剪上主要有兩種方法:一是通過配置工具來實現對配置文件.config和autoconf.h的修改,而對原內核代碼不修改;二是直接對配置信息保存到.config和autoconf.h兩個配置文件中,編譯後自動修配置文件。我們以第一種方法為例來探討對Linux係統內核進行模塊功能配置的過程及裁剪方法。一是利用tar指令來解壓內核源碼到製定目錄,並利用make rmproper指令來清除製定目錄下的配置文件及其他中間文件;二是對Linux內核進行配置,利用配置構建來實現對相關指令的執行。如$make old config,對原有內核配置文件進行直接修改;$make config基於文本方式來進行配置;$make xconfig基於窗口方式來進行配置;在make xconfig交互配置中,主要有三種選擇,Y表示將該功能編譯進內核;N表示不將該功能編譯進內核;M表示為將該功能編譯成可以在需要時動態插入到內核中的模塊。因此在使用配置工具進行內核配置時,對於大多數指令都可以使用缺省值,隻有部分指令需要指定參數選擇。在具體內涵配置中,對於不需要的功能盡量不要,對於與內核相關的緊密功能代碼需要直接編譯到內核中;對於與內核核心關係較遠且不經常使用的功能代碼編譯成可加載模塊,從而實現對係統內核的有效簡化。
以Linux2.4係統來配置PDA嵌入式內核為例來探討其具體裁剪方法。對於PDA係統內核來說,在無線傳輸上有紅外及藍牙接口,需要通過Wi-Fi與GPS進行通信,而對於進程調度及文件係統的支持相對單一,因此在配置中需要把握以下幾點:一是在網絡配置上要支持網絡更新功能,即利用[Y]Networking support以滿足對網絡設備的直接支持;[Y]TCP/IP networking直接對TCP/IP協議的支持;[Y]Bluetooth subsystem support對藍牙的支持;二是在可執行文件格式配置上,[Y]Kernel support for ELF binaries[Y]Compile as ELF –if your GCC is ELF-GCC可以支持ELF文件係統;[Y]Advanced Power Manager Bios support支持電源管理BIOS;Block devices支持對硬件等設備驅動程序;三是在係統內核的編譯上,利用make chean對前麵文件進行刪除;利用make dep指令讀取配置文件,並創建對應的依賴關係樹;利用make modules進行模塊編譯;利用make zImage來實現完全編譯內核;四是通過安裝新內核來實現對目標平台內核的安裝,如利用RS-232接口或USB接口將內核映像傳送給目標機器。
參考文獻
[1] 石秀民,魏紅興.嵌入式係統原理與應用[M].北京:北京航空航天大學出版社,2007.
[2] 冷玉林,鍾將.基於ARM的嵌入式Linux係統構建[J]. 計算機係統應用. 2010(11).
[3] 林繼民,吳怡,林蕭.基於Linux嵌入式係統開發平台的構建及應用[J]. 現代電子技術. 2010(18).