Yocto Project開發(二):快速構建

這篇簡短的文檔將引導您完成使用Yocto Project進行典型鏡像構建的過程。你將使用Yocto Project構建一個名爲Poky的參考嵌入式操作系統。

構建主機配置

構建主機要符合如下要求:

  • 50 GB的磁盤空間
  • 運行一個主流的Linux發行版(Fedora, openSUSE, CentOS, 或者 Ubuntu),我們這裏運行Ubuntu 16.04
  • Git 1.8.3.1或者更高版本
  • tar 1.27或者更高版本
  • Python 3.4.0或者更高版本

另外還需要按照如下軟件包:

 $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
 build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
 xz-utils debianutils iputils-ping libsdl1.2-dev xterm

使用Git下載Poky

使用下面的命令克隆Poky倉庫

     $ git clone git://git.yoctoproject.org/poky
     Cloning into 'poky'...
     remote: Counting objects: 428632, done.
     remote: Compressing objects: 100% (101203/101203), done.
     remote: Total 428632 (delta 320463), reused 428532 (delta 320363)
     Receiving objects: 100% (428632/428632), 153.01 MiB | 12.40 MiB/s, done.
     Resolving deltas: 100% (320463/320463), done.
     Checking connectivity... done.

進入poky目錄,看一下所有的tags

$ cd poky
$ git fetch --tags
$ git tag
1.1_M1.final
1.1_M1.rc1
.
.
.
yocto-2.5.2
yocto-2.6
yocto-2.6.1
yocto_1.5_M5.rc8

基於yocto-2.6.1版本創建分支:

 $ git checkout tags/yocto-2.6.1 -b my-yocto-2.6.1
Switched to a new branch 'my-yocto-2.6.1'

構建鏡像

使用以下步驟構建鏡像,構建過程創建整個Linux發行版,包括工具鏈。

  1. 初始化構建環境:在poky目錄中,運行 oe-init-build-env 環境設置腳本以在構建主機上定義Yocto Project的構建環境。
$ cd ~/poky
$ source oe-init-build-env 

### Shell environment set up for builds. ###

You can now run 'bitbake <target>'

Common targets are:
    core-image-minimal
    core-image-sato
    meta-toolchain
    meta-ide-support

You can also run generated qemu images with a command like 'runqemu qemux86'

除此之外,該腳本還創建了 構建目錄build,它位於源目錄poky中。腳本運行後,您當前的工作目錄將設置爲構建目錄。稍後,當構建完成時,構建目錄包含構建期間創建的所有文件。

  1. 檢查本地配置文件:在新設置的構建環境裏面,該腳本增加了一個conf並且把一個名爲local.conf的配置文件放在裏面,他是構建環境的主要配置文件。
  2. 啓動構建:繼續使用以下命令爲目標構建操作系統鏡像,在此示例中使用core-image-sato
$ bitbake core-image-sato
  1. 使用QEMU模擬鏡像:構建此特定鏡像後,您可以啓動QEMU,它是Yocto項目附帶的Quick EMUlator
$ runqemu qemux86
  1. 退出QEMU: 通過單擊關閉圖標或鍵入Ctrl-C退出QEMU

爲特定硬件定製化構建

到目前爲止,我們只是快速構建一個僅適用於仿真的鏡像。本節介紹如何通過在Yocto Project開發環境中添加硬件層來自定義特定硬件的構建。

通常,圖層(layer)是包含相關指令集和配置的存儲庫,這些指令和配置告訴Yocto Project要執行的操作。將相關元數據隔離到功能特定的層中有助於模塊化開發,並且更容易重用層元數據。

注意
按照慣例,圖層名稱以字符串“meta-”開頭。

請按照以下步驟添加硬件層:

  • 查找圖層:Yocto項目源存儲庫有許多硬件層。此示例添加了 meta-altera 硬件層。
  • 克隆圖層: 使用Git在您的計算機上製作圖層的本地副本。
$ cd ~/poky
$ git clone https://github.com/kraj/meta-altera.git
Cloning into 'meta-altera'...
remote: Enumerating objects: 92, done.
remote: Counting objects: 100% (92/92), done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 1225 (delta 48), reused 56 (delta 23), pack-reused 1133
Receiving objects: 100% (1225/1225), 170.46 KiB | 0 bytes/s, done.
Resolving deltas: 100% (576/576), done.
Checking connectivity... done.
  • 將配置更改爲特定硬件平臺的構建:local.conf文件中的MACHINE變量指定構建的硬件平臺,將MACHINE變量設置爲"cyclone5",使用的配置是:https://github.com/kraj/meta-altera/blob/master/conf/machine/cyclone5.conf.

  • 將圖層添加到圖層配置文件: 在使用圖層之前,必須將其添加到bblayers.conf文件中,該文件位於構建目錄的conf目錄中。使用bitbake-layers add-layer命令將圖層添加到配置文件:

$ cd ~/poky/build
$ bitbake-layers add-layer ../meta-altera
NOTE: Starting bitbake server...
Parsing recipes: 100% |##################################################################| Time: 0:00:32
Parsing of 918 .bb files complete (0 cached, 918 parsed). 1401 targets, 123 skipped, 0 masked, 0 errors.

完成這些步驟後,meta-altera層已添加 到Yocto Project開發環境中,可以查看bblayers.conf文件查看:

POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  /home/h310588/yocto_project/poky/meta \
  /home/h310588/yocto_project/poky/meta-poky \
  /home/h310588/yocto_project/poky/meta-yocto-bsp \
  /home/h310588/yocto_project/poky/meta-altera \
  "

創建自己的通用圖層

您可以使用該bitbake-layers create-layer命令創建自己的常規圖層 。

$ cd ~/poky
$ bitbake-layers create-layer meta-mylayer
NOTE: Starting bitbake server...
Add your new layer with 'bitbake-layers add-layer meta-mylayer'

該命令自動創建瞭如下圖層目錄結構:

$ tree meta-mylayer 
meta-mylayer
├── conf
│   └── layer.conf
├── COPYING.MIT
├── README
└── recipes-example
    └── example
        └── example_0.1.bb

3 directories, 4 files

參考鏈接:Yocto Project Quick Build

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章