開放嵌入式(OELinux)Linux系統(tǒng)開發(fā)指南(下)_第1頁
開放嵌入式(OELinux)Linux系統(tǒng)開發(fā)指南(下)_第2頁
開放嵌入式(OELinux)Linux系統(tǒng)開發(fā)指南(下)_第3頁
開放嵌入式(OELinux)Linux系統(tǒng)開發(fā)指南(下)_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、開放嵌入式(0E Linux)Linux系統(tǒng)開發(fā)指南(下)在本文中,德州儀器(TI) Nick Lethaby 和Denys Dmytriyenko 概括介紹了 開放嵌入式(OE,Open Embedded) Linux構(gòu)建環(huán)境的重要元素,并展示了如何使用它們構(gòu)建和定制Linux發(fā)行版。隨著嵌入式處理器的功能日益強(qiáng)大,特性不斷豐富,Linux操作系統(tǒng)在嵌入式應(yīng)用中得到了迅速普及。盡管Linux的開源性與免許可證費(fèi)用這一事實(shí)是其迅速普及的一個(gè)主要推動(dòng)力,但另一個(gè)重要推動(dòng)因素則是來自Linux在臺(tái)式機(jī)與服務(wù)器領(lǐng)域廣泛使用所提供的豐富應(yīng)用軟件與驅(qū)動(dòng)。0E配置文件配置文件主要分為兩類:設(shè)備配置與發(fā)行版

2、(distro)配置。另外還有本地配置文件以及名為“ bitbake.conf的文件。Bitbake.conf是BitBake讀取的第一個(gè)文件,包含所有其它配置文件。此外,它還可定義許多全局變量,并稱之為bitbake.conf。不建議直接修改bitbake.conf ,建議在distro配置文件或本地配置文件中進(jìn)行覆蓋。設(shè)備配置文件可定義特定目標(biāo)電路板。 發(fā)行版配置文件可為一臺(tái)以上的設(shè)備定義特定的Linux發(fā)行版(比如各種數(shù)據(jù)包版本)。發(fā)行版配置文件是進(jìn)行全局設(shè)置的最佳場(chǎng)合,該設(shè)置可應(yīng)用于發(fā)行版生成的所有鏡像。 可幫助開發(fā)人員根據(jù)具體鏡像或數(shù)據(jù)包覆蓋這些設(shè)置,從而高度靈活地處理特殊情況。本地

3、配置(local.conf)文件往往用于放置用戶專用配置,以適度修改默認(rèn)發(fā)行版配置的設(shè)置。 在完成對(duì)發(fā)行版配置文件和設(shè)備配置文件的更詳細(xì)討論后,我們將從總體上了解在 local.conf文件中所做的其它配置設(shè)置。OE例如,Arago該發(fā)行版配置文件可設(shè)定各種基本件和存儲(chǔ)所構(gòu)建數(shù)據(jù)包的目錄以及內(nèi)務(wù)處理”參數(shù)(見列表5),如發(fā)行版本名稱、下載源文 uImage的支持文件格式等。列表5 :配置文件摘要# For now Arago is not big eno ugh to warra nt a sep arate distributi on.# reuse An gstrom, but set t

4、he n ame to AragoDISTRO = "an gstrom-2008.1"# Set the distro n ame and version, since we now p roduce own SDKDISTRO_NAME = "Arago"DISTRO_VERSION = "2010.05"BUILDNAME = "$DISTRO_NAME $DISTRO_VERSION"# Use this to sp ecify where BitBake should p lace the dow nl

5、oaded sources intoDL_DIR = "$SCRATCH/dow nioads"# Put result ing images and p ackages in deploy directory outside of temp#DE PLOY_DIR = "$OEBASE/arago-de ploy"# Add the required image file system types below. Valid are # jffs2, tar(.gz|bz2), cpio (.gz), cramfs, ext2(.gz), ext3(.g

6、z) # squashfs, squashfs-lzmaIMAGE_FST YPES = "jffs2 tar.gz ext2.gz"此外,該發(fā)行版配置文件還可指定構(gòu)建發(fā)行版的目標(biāo)設(shè)備,盡管每臺(tái)設(shè)備啟動(dòng) LinUX的詳細(xì)信息都存放在設(shè)備配置文件中。由于發(fā)行版配置文件所處的位置由工具鏈版本決定,因此支持大量設(shè)備可能會(huì)使文件變得更加復(fù)雜。例如,可能需要指定多個(gè)大數(shù)據(jù)包補(bǔ)丁或不同的工具鏈版本來適應(yīng)各種不同的設(shè)備。其它需要在發(fā)行版配置文件中指定的架構(gòu)相關(guān)項(xiàng)包括硬件 與軟件浮點(diǎn)、是否支持不同的指令集(ARM ARM應(yīng)用系統(tǒng)開發(fā)詳解或Thumb Thumb指令集專題)、以及可能不適應(yīng)發(fā)

7、行版中包含的某些數(shù)據(jù)包的各類尋址方式。選擇數(shù)據(jù)包版本是發(fā)行版配置文件中較為重要的常見功能之一,以確保所使用的已知兼容性版本。選擇版本的方法很多。 如果沒有指定版本, 就選擇最新版本。同樣,也可指定某種 從 不落后于”最新版本的版本。對(duì)于需要特定版本的數(shù)據(jù)包,可為發(fā)行版配置文件中的整個(gè)發(fā) 行版指定默認(rèn)首選版本,如列表6的Angstrom發(fā)行版配置文件摘要所示。列表6 :發(fā)行版配置文件摘要ANGSTROM QT VERSION ?= "4.6.2"CE VERSION ?= "latest"P REFERRED_VERSION_autoco nf = &qu

8、ot;2.65"P REFERRED_VERSION_autoco nf-n ative = "2.65"P REFERRED_VERSION_automake-native = "1.10.3"P REFERRED_VERSION_busybox? = "1.13.2"P REFERRED_VERSION_glib-2.O? = "2.24.0"P REFERRED_VERSION_glib-2.0-native = "2.24.0"發(fā)行版的另一項(xiàng)重要功能是提供一套源程序,以便訪問預(yù)

9、先構(gòu)建的二進(jìn)制數(shù)據(jù)包。發(fā)行版一般使用二進(jìn)制源程序在運(yùn)行時(shí)動(dòng)態(tài)加載新的數(shù)據(jù)包。為穩(wěn)定可靠的添加數(shù)據(jù)包,發(fā)行版還整合了一個(gè)數(shù)據(jù)包管理系統(tǒng)。例如,Angstrom發(fā)行版在開始時(shí)使用 ipkg軟件包管理器(近期轉(zhuǎn)向op kg),因?yàn)榕cdp kag或RPM等桌面數(shù)據(jù)包管理技術(shù)相比,其在滿足空間有限的嵌入 式應(yīng)用需求方面具有一定的優(yōu)勢(shì)。Ipk格式原本建立在 deb格式基礎(chǔ)之上,可用ipkg或opkg 數(shù)據(jù)包管理器處理。相比之下,opkg更新,因此也更有優(yōu)勢(shì)。數(shù)據(jù)包格式會(huì)使更多的元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)包中。 這樣能夠避免加載不兼容的數(shù)據(jù)包, 并確保帶來正確運(yùn)行時(shí)間的相關(guān)項(xiàng)。 Arago 可定義其預(yù)先構(gòu)建的 IPK

10、 源程序 (見列表 7) ,但可能不具有最為廣泛的數(shù)據(jù)包。在需 要更多數(shù)據(jù)包時(shí),可啟用 Angstrom 源程序,但是在混合使用不同源程序時(shí)需要更加小心謹(jǐn) 慎。列表 7 :發(fā)行版配置文件摘要ANGSTROM_PKG_FORMAT ?= "ipk" require conf/distro/include/ angstrom-package$ANGSTROM_PKG_FORMAT.inc #Use this variable to select which recipe you want to use to #get feed configs (/etc/ipkg/, #/et

11、c/apt/sources.list). Useful #for derivative distros and local testingANGSTROM_FEED_CONFIGS = "arago-feed-configs" # Feed configurationARAGO_URI = ""ARAGO_FEED_BASEPATH = "feeds/live/$ANGSTROM_PKG_FORMAT"DISTRO_FEED_URI = "$ARAGO_URI/$AR

12、AGO_FEED_BASEPATH"在發(fā)行版配置文件中可以設(shè)置其它通用構(gòu)建參數(shù)。 配置文件信息的已完成構(gòu)建流程指定為標(biāo)準(zhǔn)流程。 釋掉或覆蓋,從而可提高最終生產(chǎn)版本的性能。例如,開發(fā)人員可將具有更多調(diào)試信息或 這些代碼行可通過 “生產(chǎn)代碼 ”鏡像方法注列表 8 :發(fā)行版配置文件摘要# Comment these two out if you want BitBake to build # production images.DEBUG_BUILD = "1"INHIBIT_PACKAGE_STRIP = "1" # Build a package

13、 such that you can use gprof to profile it.PROFILE_OPTIMIZATION = "-pg"SELECTED_OPTIMIZATION = "$PROFILE_OPTIMIZATION"LDFLAGS =+ "-pg設(shè)備配置文件可定義在電路板上引導(dǎo)Linux所需的基本要素。例如, ARM926或ARMCortex-A8等目標(biāo)CPU的定義,提供了 Linux內(nèi)核的優(yōu)先方法提供方以及相應(yīng)引導(dǎo)加載程 序,如列表9所示,顯示了 TI ARM9視頻器件的DM365設(shè)備配置文件。列表9 :設(shè)備配置文件#T

14、YPE: Machi ne #NAME: DM365 CPUs on a Davi nci DM365 EVM board #DESCR IP TION: Machi ne con figuration for the TI Davi nciDM365 EVM board require con f/mach ine/in clude/dm365.i nc require con f/mach ine/in clude/t un e-arm926ejs.i nc # In crease this everytime you cha nge someth ing in the kernelMAC

15、HINE_KERNEL_ PR = "r45"TARGET ARCH = "arm"KERNEL_IMAGET YPE = "uImage"P REFERRED_ PROVIDER_virtual/kernel = " linux -davi nci-stagi ng"PREFERRED PROVIDER virtual/bootloader = "u-boot"UBOOT_MACHINE = "davi nci_dm365_evm_c on fig"UBOOT_ENTR YPOINT = "0x80008000"UBOOT_LOADADDRESS = "0x80008000"EXTRA_IMAGEDE PENDS += "u-boot"SERIAL_CONSOLE ?= "115200 ttySO"EXTRA_IMAGECMD_jffs2 = "-pad -little-e ndian -eraseblock=0x20000 -n" #ROOT FLASH SIZE = "29"MACHIN

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論