歡迎您光臨本站 註冊首頁

如何定製2.6內核更容易

←手機掃碼閱讀     火星人 @ 2014-03-26 , reply:0

作為一個積極推進軟體業革新的領頭羊,Linux操作系統已成為開放系統運動的優秀代表。作為各種Linux發行版的共同核心,Linux內核多年來一直不間斷地引進新技術進行革新,逐步提高自身的各種性能,例如可伸縮性、可用性和技術支持等。眾多的改進都是圍繞增加對其它架構、處理器、匯流排、埠和外設的支持而進行的。從Linux 2.2內核開始,因為每個新內核的誕生都要經過嚴格的檢驗和測試,所以其開發周期大約都保持在兩年左右。

除了增加的新功能外,每個新版穩定的Linux內核都會對大量原有功能進行改進,對內部介面進行定製使其更加標準,提高與其它設備的兼容性,並簡化對新設備和子系統的支持過程。這些改進中的一部分只與內核開發人員和硬體驅動程序編寫者有關,而其它的則影響到系統啟動、系統管理和應用軟體設置等方面。

如果用戶正在把現有的應用軟體移植到一個基於2.6內核的Linux套件上,例如TimeSys Linux系統,那麼也許不會花費多少功夫,原因是TimeSys Linux的性能已大大改進。此外還增加了對行業標準的支持,例如對POSIX的支持。然而,如果用戶正在進行硬體驅動、定製系統級的應用軟體或可定製的Linux根文件系統的移植,那麼可以參考內核在內部構件、子系統、系統啟動和系統管理上發生的基本變化。這會為用戶節省許多開發時間,並大大減少用戶在移植過程可能遇到的難題。

這裡主要介紹如何將現有的硬體驅動、應用軟體和嵌入式Linux組件移植到一個基於2.6內核的Linux套件中(我們以TimeSys Linux為例子)。並結合一些軟體工具為用戶提供所需的信息,幫助用戶加快開發進程,控制軟體轉換和改進成本,甚至可以加快基於Linux系統的設備、系統和應用軟體進入市場的速度。這裡所列舉的軟體是TimeStorm Linux工具套件之類的工具軟體。它們可以在開發、移植、調試和驗證周期等方面為用戶提供幫助。

基於2.6內核的設置

內核是Linux操作系統的核心。它管理著所有的系統線程、進程、資源和資源分配。與其它操作系統不同的是,Linux操作系統允許用戶對內核進行重新設置。用戶可以對內核進行「瘦身」,增加或消除對某些特定設備或子系統的支持。在開發嵌入式系統時,開發人員經常會減少系統對一些無用設備的支持,將節省下來的內存分配給各種應用軟體。

Linux內核對各種硬體和埠的支持要靠各種硬體驅動程序來實現。這些驅動程序可以被直接寫入內核,也可以針對某些特定硬體在需要時自動載入。通常情況下,可以被自動載入進內核的內核編碼稱為自動載入內核模塊。

Linux內核的設置是通過內核設置編輯器完成的。內核設置編輯器可對每個內核設置變數進行描述,幫助用戶決定哪些變數需要被清除,哪些需要寫入內核,或者編成一個可載入內核模塊在需要時進行載入。

建立新內核的第一步是對內核進行設置。當用戶對內核進行設置時,必須先對內核和其它可載入內核模塊進行編寫和安裝。如果用戶要對原系統的內核進行構建設置,那麼這一步是十分簡單的。但如果用戶要將原系統內核編譯應用於其它目標系統,那麼這一步就會變得相對困難一些。例如,當用戶修改嵌入式系統的Linux內核時,很可能會先在一個桌面系統上對內核進行設置,然後再通過一套編譯工具將其移植到嵌入式系統中。此類編譯工具被稱為交叉編譯程序。

交叉編譯程序在一類系統運行的同時會生產一系列二進位編碼。這些編碼是專門為另一類系統而設計的。兩種系統有著完全不同的處理器或架構。在對內核或模塊的編譯過程中,用戶必須通過多種多樣的環境變數或Makefile設置來確定具體的交叉編譯程序。用戶還可以直接使用一個諸如TimeSys之類的集成開發環境來實現這一目標。TimeStorm可以幫助用戶很容易地選擇交叉編譯程序。同樣,當用戶對Linux的內核和模塊進行交叉編譯使之應用於嵌入式系統時,如果沒有TimeStorm之類的軟體,那麼用戶必須通過額外的設置和Makefile手工修改,才能確定內核和模塊的安裝過程和安裝位置。

基於Linux 2.6內核的設置較以往已經簡便多了。Linux 2.6內核採用新的圖形設置編輯器使內核的編譯和設置變數的從屬關係確定變得更加簡單。過去基於2.x的內核為用戶提供了四種基本的內核設置編輯器:
◆config 服務於內核設置的一個冗長的命令行界面;
◆oldconfig 一個文本模式的界面,主要包含一個已有設置文件,對用戶所發現的內核資源中的設置變數進行排序;
◆menuconfig 一個基於游標控制庫的終端導向編輯器,可提供文本模式的圖形用戶界面;
◆xconfig 一個圖形內核設置編輯器,需要安裝X-Window系統。

前三種編輯器在設置2.6內核時仍可使用,在運行「make xconfig」后,原有的界面被兩個新的圖形設置編輯器所代替。這需要具體的圖形庫和X-Window系統的支持。另外,用戶還可以通過「make defconfig」命令,利用所有內核設置變數的預設值自動建立一個內核設置文件。

用新圖形編輯器設置內核

當用戶運行「make xconfig」命令后,會產生一個更加健壯的新的圖形編輯器。新的內核設置編輯器使用Trolltech公司的Qt工具套件。許多Linux系統並沒有集成Qt工具套件,但是用戶可以從http://www.trolltech.com的網站上免費下載它。圖1展示了新哪諍松柚媒緱妗?

如圖1所示,內核設置編輯器是一個由三個面板組成的圖形界面,左側面板可展開的樹狀結構顯示有效的內核設置選項,右上面板顯示左側面板選擇項的具體設置信息,右下面板顯示所選設置選項的相關幫助信息。



圖1 2.6內核設置界面



圖2 gconfig內核編輯器界面


當用戶執行命令「make gconfig」時,屏幕會顯示第二個圖形設置編輯器。該設置編輯器最初顯示一個由兩個面板組成的圖形界面,如圖2所示。用戶可以通過滑鼠點擊工具欄上的「Split」按鈕,將gconfig改變成與xconfig界面類似的圖形界面。該內核設置編輯器需要GTK2(GIMP Toolkit, Version 2)工具的支持。大多數桌面Linux都自帶有GTK2工具。

通常情況下,由「make gconfig」命令調出的編輯器界面不如「make xconifg」命令調出的界面詳盡和易用。除非用戶擁有一些諸如TimeSys、 TimeStorm Linux開發套件之類的設置工具,不然建議用戶使用「make xconfig」命令對內核進行設置。

內核設置技巧

內核設置選項內容很多,這裡限於篇幅只列舉幾個通用的技巧和建議。對Linux 2.6內核的設置要比以前版本簡單得多,但是它卻有著更多的設置選項。這意味著對於一個無法在硬體上啟動並運行,或者無法支持現有應用軟體的內核進行設置將變得更加容易。

作為一個常用技巧,在xconfig或gconfig編輯器Options選單下提供了幾種非常有用的內核設置選項。
◆ Show all options選項。系統顯示所有可用的內核設置選項,即使是某選項由於各種原因無法被選取(通常情況下是由於與之相關的選項未被選取)。這一選項可以幫助用戶了解所需要的選項是否存在於內核資源中。
◆ Show debug info選項。系統顯示與幫助窗口中所選選項相關的內核設置變數。這一選項可以幫助用戶了解激活其它內核設置選項所需的前提選項。
◆ Show Name選項。系統顯示與每個內核設置選項相關的內核設置變數的名稱,可以幫助確定內核設置變數間的從屬關係。

如果用戶已經根據需要對內核進行了設置,而且用來對內核進行編譯和安裝的「make」命令與Linux 2.6內核不同,那麼為了方便起見,用戶可以使用「make help」命令來顯示設置2.6內核的所有有效選項。

其它的「make」命令還包括「make dep」。該命令可以提供變數從屬關係信息。此外,「make」命令還可以對內核和其它選擇安裝的驅動程序進行編譯。其中,「make install」和「make modules_install」是兩個基本、常用的「make」命令。

建立新的內核設置文件

對Linux內核進行設置的有效手段之一是使用「make oldconfig」命令。該命令可以在現有內核設置文件的基礎上建立一個新的內核設置文件。如果用戶目前沒有內核設置文件,可以通過執行這條命令或啟動任意一個圖形內核設置編輯器建立一個。

在內核升級設置過程中,「make oldconfig」命令十分有用。「make oldconfig」命令可以使內核設置進程讀取用戶已有的設置信息,從而提示用戶輸入某一內核設置變數的值。這一變數在已有的內核設置文件中是找不到的。

現在進行一個測試,將現有的內核設置從基於2.4內核的Linux套件移植到基於2.6內核的Linux套件中。首先將名為.config的文件複製到Linux 2.6內核源代碼所在的目錄下。例如,這裡要把一個定製設置文件從基於2.4內核的TimeSys Linux 4.1移植到基於2.6內核的TimeSys Linux中,主要步驟如下:

# cd /opt/timesys/linux/4.1/iq80315/src/2.4.21-timesys-4.1/kernel
# cp .config /opt/timesys/linux/5.0/iq80315/src/2.6-timesys-5.0/kernel
# cd /opt/timesys/linux/5.0/iq80315/src/2.6-timesys-5.0/kernel
# make oldconfig



這時,系統會提示用戶輸入表示當前所有未定義內核設置變數的值。輸入完畢后,「make oldconfig」命令會自動生成一個升級的內核設置文件。這時用戶就可以著手建立新內核了。當然用戶也可以繼續使用功能更強大的內核設置編輯器對內核進行設置,例如xconfig。

小結

對於基於2.6內核的Linux發行版而言,簡化系統設置顯得更加重要。新的圖形設置編輯器大大簡化了用戶對2.6內核的設置。目前,TimeSys工具軟體在2.6內核設置中的應用十分廣泛。然而,隨著新技術的不斷湧現,每個新的架構、埠、子系統和其它設備都會增加內核設置變數的數量,這些變數都是用戶需要了解的。

其它軟體工具可為內核設置提供集成支持,例如Target Configurator。作為TimeStorm Linux開發套件中的一個組件,Target Configurator由Open Source Eclipse架構提供動力。為了進一步簡化內核設置,TimeSys Linux包括已定製的內核設置文件,這些文件將帶來良好的性能、常規開發方式和較強的糾錯能力。無論用戶使用哪種工具和套件,對Linux 2.6內核的設置都改進了很多。

[火星人 ] 如何定製2.6內核更容易已經有368次圍觀

http://coctec.com/docs/linux/show-post-190701.html