開放嵌入式(OE Linux)Linux系統(tǒng)開發(fā)指南(下)_第1頁
開放嵌入式(OE Linux)Linux系統(tǒng)開發(fā)指南(下)_第2頁
開放嵌入式(OE Linux)Linux系統(tǒng)開發(fā)指南(下)_第3頁
開放嵌入式(OE Linux)Linux系統(tǒng)開發(fā)指南(下)_第4頁
開放嵌入式(OE Linux)Linux系統(tǒng)開發(fā)指南(下)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

開放嵌入式(OELinux)Linux系統(tǒng)開發(fā)指南(下)在本文中,德州儀器(Tl)NickLethaby和DenysDmytriyenko概括介紹了開放嵌入式(OE,OpenEmbedded)Linux構(gòu)建環(huán)境的重要元素,并展示了如何使用它們構(gòu)建和定制Linux發(fā)行版。隨著嵌入式處理器的功能日益強大,特性不斷豐富,Linux操作系統(tǒng)在嵌入式應(yīng)用中得到了迅速普及。盡管Linux的開源性與免許可證費用這一事實是其迅速普及的一個主要推動力,但另一個重要推動因素則是來自Linux在臺式機與服務(wù)器領(lǐng)域廣泛使用所提供的豐富應(yīng)用軟件與驅(qū)動。OE配置文件配置文件主要分為兩類:設(shè)備配置與發(fā)行版(distro)配置。另外還有本地配置文件以及名為"bitbake.conf”的文件。Bitbake.conf是BitBake讀取的第一個文件,包含所有其它配置文件。此外,它還可定義許多全局變量,并稱之為bitbake.conf。不建議直接修改bitbake.conf,建議在distro配置文件或本地配置文件中進行覆蓋。設(shè)備配置文件可定義特定目標電路板。發(fā)行版配置文件可為一臺以上的設(shè)備定義特定的Linux發(fā)行版(比如各種數(shù)據(jù)包版本)。發(fā)行版配置文件是進行全局設(shè)置的最佳場合,該設(shè)置可應(yīng)用于發(fā)行版生成的所有鏡像。OE可幫助開發(fā)人員根據(jù)具體鏡像或數(shù)據(jù)包覆蓋這些設(shè)置,從而高度靈活地處理特殊情況。例如,本地配置(local.conf)文件往往用于放置用戶專用配置,以適度修改默認發(fā)行版配置的設(shè)置。在完成對發(fā)行版配置文件和設(shè)備配置文件的更詳細討論后,我們將從總體上了解在Aragolocal.conf文件中所做的其它配置設(shè)置。該發(fā)行版配置文件可設(shè)定各種基本“內(nèi)務(wù)處理”參數(shù)(見列表5),如發(fā)行版本名稱、下載源文件和存儲所構(gòu)建數(shù)據(jù)包的目錄以及uImage的支持文件格式等。列表5:配置文件摘要FornowAragoisnotbigenoughtowarrantaseparatedistribution,reuseAngstrom,butsetthenametoAragoDISTRO="angstrom-2008.1"Setthedistronameandversion,sincewenowproduceownSDKDISTRO_NAME="Arago"DISTRO_VERSION="2010.05"BUILDNAME="${DISTRO_NAME}${DISTRO_VERSION}"UsethistospecifywhereBitBakeshouldplacethedownloadedsourcesintoDL_DIR="${SCRATCH}/downloads"#Putresultingimagesandpackagesindeploydirectoryoutsideoftemp#DEPLOY_DIR="${OEBASE}/arago-deploy"#Addtherequiredimagefilesystemtypesbelow.Validare#jffs2,tar(.gz|bz2),cpio(.gz),cramfs,ext2(.gz),ext3(.gz)#squashfs,squashfs-lzmaIMAGE_FSTYPES="jffs2tar.gzext2.gz"此外,該發(fā)行版配置文件還可指定構(gòu)建發(fā)行版的目標設(shè)備,盡管每臺設(shè)備啟動Linux的詳細信息都存放在設(shè)備配置文件中。由于發(fā)行版配置文件所處的位置由工具鏈版本決定,因此支持大量設(shè)備可能會使文件變得更加復(fù)雜。例如,可能需要指定多個大數(shù)據(jù)包補丁或不同的工具鏈版本來適應(yīng)各種不同的設(shè)備。其它需要在發(fā)行版配置文件中指定的架構(gòu)相關(guān)項包括硬件與軟件浮點、是否支持不同的指令集(ARMARM應(yīng)用系統(tǒng)開發(fā)詳解或ThumbThumb指令集專題)、以及可能不適應(yīng)發(fā)行版中包含的某些數(shù)據(jù)包的各類尋址方式。選擇數(shù)據(jù)包版本是發(fā)行版配置文件中較為重要的常見功能之一,以確保所使用的已知兼容性版本。選擇版本的方法很多。如果沒有指定版本,就選擇最新版本。同樣,也可指定某種“從不落后于”最新版本的版本。對于需要特定版本的數(shù)據(jù)包,可為發(fā)行版配置文件中的整個發(fā)行版指定默認首選版本,如列表6的Angstrom發(fā)行版配置文件摘要所示。列表6:發(fā)行版配置文件摘要ANGSTROM_QT_VERSION?="4.6.2"CE_VERSION?="latest"PREFERRED_VERSION_autoconf="2.65"PREFERRED_VERSION_autoconf-native="2.65"PREFERRED_VERSION_automake-native="1.10.3"PREFERRED_VERSION_busybox??????="1.13.2"PREFERRED_VERSION_glib-2.0?????="2.24.0"PREFERRED_VERSION_glib-2.0-native="2.24.0"發(fā)行版的另一項重要功能是提供一套源程序,以便訪問預(yù)先構(gòu)建的二進制數(shù)據(jù)包。發(fā)行版一般使用二進制源程序在運行時動態(tài)加載新的數(shù)據(jù)包。為穩(wěn)定可靠的添加數(shù)據(jù)包,發(fā)行版還整合了一個數(shù)據(jù)包管理系統(tǒng)。例如,Angstrom發(fā)行版在開始時使用ipkg軟件包管理器(近期轉(zhuǎn)向opkg),因為與dpkag或RPM等桌面數(shù)據(jù)包管理技術(shù)相比,其在滿足空間有限的嵌入式應(yīng)用需求方面具有一定的優(yōu)勢dpk格式原本建立在deb格式基礎(chǔ)之上,可用ipkg或opkg數(shù)據(jù)包管理器處理。相比之下,opkg更新,因此也更有優(yōu)勢。數(shù)據(jù)包格式會使更多的元數(shù)據(jù)存儲在數(shù)據(jù)包中。這樣能夠避免加載不兼容的數(shù)據(jù)包,并確保帶來正確運行時間的相關(guān)項。Arago可定義其預(yù)先構(gòu)建的IPK源程序(見列表7),但可能不具有最為廣泛的數(shù)據(jù)包。在需要更多數(shù)據(jù)包時,可啟用Angstrom源程序,但是在混合使用不同源程序時需要更加小心謹慎。列表7:發(fā)行版配置文件摘要ANGSTROM_PKG_FORMAT?="ipk"requireconf/distro/include/angstrom-package${ANGSTROM_PKG_FORMAT}.inc#Usethisvariabletoselectwhichrecipeyouwanttouseto#getfeedconfigs(/etc/ipkg/,#/etc/apt/sources.list).Useful#forderivativedistrosandlocaltestingANGSTROM_FEED_CONFIGS="arago-feed-configs"FeedconfigurationARAGO_URI=""ARAGO_FEED_BASEPATH="feeds/live/${ANGSTROM_PKG_FORMAT}"DISTRO_FEED_URI="${ARAGO_URI}/${ARAGO_FEED_BASEPATH}"在發(fā)行版配置文件中可以設(shè)置其它通用構(gòu)建參數(shù)。例如,開發(fā)人員可將具有更多調(diào)試信息或配置文件信息的已完成構(gòu)建流程指定為標準流程。這些代碼行可通過“生產(chǎn)代碼”鏡像方法注釋掉或覆蓋,從而可提高最終生產(chǎn)版本的性能。列表8:發(fā)行版配置文件摘要CommentthesetwooutifyouwantBitBaketobuildproductionimages.DEBUG_BUILD="1"INHIBIT_PACKAGE_STRIP="1"Buildapackagesuchthatyoucanusegproftoprofileit.PROFILE_OPTIMIZATION="-pg"SELECTED_OPTIMIZATION="${PROFILE_OPTIMIZATION}"LDFLAGS=+"-pg設(shè)備配置文件可定義在電路板上引導(dǎo)Linux所需的基本要素。例如,ARM926或ARMCortex-A8等目標CPU的定義,提供了Linux內(nèi)核的優(yōu)先方法提供方以及相應(yīng)引導(dǎo)加載程序,如列表9所示,顯示了TlARM9視頻器件的DM365設(shè)備配置文件。列表9:設(shè)備配置文件#@TYPE:Machine#@NAME:DM365CPUsonaDavinciDM365EVMboard#@DESCRlPTlON:MachineconfigurationfortheTlDavinciDM365EVMboardrequireconf/machine/include/dm365.increquireconf/machine/include/tune-arm926ejs.inc#lncreasethiseverytimeyouchangesomethinginthekernelMACHlNE_KERNEL_PR="r45"TARGET_ARCH="arm"KERNEL_lMAGETYPE="ulmage"PREFERRED_PROVIDER_virtual/kernel="linux-davinci-staging"PREFERRED_PROVlDER_virtual/bootloader="u-boot"UBOOT_MACHINE="davinci_dm365_evm_config"UBOOT_ENTRYPOINT="0x80008000"UBOOT_LOADADDRESS="0x80008000"EXTRA_IMAGEDEPENDS+="u-boot"SERIAL_CONSOLE?="115200ttyS0"EXTRA_IMAGECMD_jffs2="--pad--little-endian--eraseblock=0x20000-n"#ROOT_FLASH_SIZE="29"MACHINE_FEATURES="ke

溫馨提示

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

評論

0/150

提交評論