Intel Edison release 2.1 のイメージをビルドする

Posted Tue May 03 2016

基本的な流れは BSP User Guide と同じです.ただそのまま行うとエラーになってしまうところがあるので少し修正が必要です.Linux Mint 17.3 x64 でビルドしています.

まずビルドに必要なパッケージをインストールしておきます.

$ sudo apt-get install build-essential git diffstat gawk chrpath texinfo libtool gcc-multilib

BSP のソースをダンロード

Iot Developer Kit Installer Files 1.5 から edison-src-ww25.5-15.tgz をダウンロードします.

$ tar xvf edison-src-ww25.5-15.tgz
$ cd edison-src

プロキシ環境下で行う場合

プロキシ環境下で行う場合は,こちらの手順を行ってください.まず git の設定で git プロトコルを https に自動的に読み替える設定をしておきます.

$ git config --global url."https://".insteadOf git://

またデフォルトでは最初のセットアップスクリプト内で git プロトコルでリポジトリをクーロンする設定になっているため修正します.https は存在しないため http に修正します../meta-intel-edison/setup.sh を開き下記の修正を適用します.

--- setup.sh.orig	2016-05-02 13:08:31.162001495 +0900
+++ setup.sh	2016-05-02 13:10:31.533999993 +0900
@@ -156,7 +156,7 @@
     git remote update
   else
     # The repo does not exist. Clone it.
-    git clone --mirror git://git.yoctoproject.org/$1.git $1-mirror.git
+    git clone --mirror http://git.yoctoproject.org/git/$1 $1-mirror.git
   fi
   cd $my_position

イメージのビルド

ダウンロードしたファイルとキャッシュを保存するディレクトリを作成し,セットアップスクリプトを実行します.yocto のリポジトリがダウンロードされます.

$ mkdir bitbake_download_dir
$ mkdir bitbake_sstate_dir
$ ./meta-intel-edison/setup.sh --dl_dir=./bitbake_download_dir \
--sstate_dir=./bitbake_sstate_dir

ダウンロードが終わったら,./poky/out/linux64/poky/meta-intel-iot-middleware/recipes-connectivity/paho-mqtt/paho-mqtt_3.1.bb を開き14行目を編集します.デフォルトのリポジトリが存在しないため,リポジトリを変更します.

--- paho-mqtt_3.1.bb.orig	2016-05-02 14:43:52.281930107 +0900
+++ paho-mqtt_3.1.bb	2016-05-02 14:45:03.873929214 +0900
@@ -11,7 +11,7 @@
 
 PR = "r1"
 
-SRC_URI = "git://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.c.git;protocol=http \
+SRC_URI = "git://github.com/eclipse/paho.mqtt.c.git;protocol=http \
            file://makefile.patch \
 "

ちなみに上記を行わないと実行時に下記のエラーがでます.

ERROR: Fetcher failure: Fetch command failed with exit code 128, output:
Cloning into bare repository '/home/daisuke/intel-edison/kernel/edison-src/bitbake_download_dir/git2/git.eclipse.org.gitroot.paho.org.eclipse.paho.mqtt.c.git'...
fatal: repository 'http://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.c.git/' not found

ERROR: Function failed: Fetcher failure for URL: 'git://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.c.git;protocol=http'. Unable to fetch URL from any source.
ERROR: Logfile of failure stored in: /home/daisuke/intel-edison/kernel/edison-src/out/linux64/build/tmp/work/core2-32-poky-linux/paho-mqtt/3.1-r1/temp/log.do_fetch.121948
ERROR: Task 1052 (/home/daisuke/intel-edison/kernel/edison-src/out/linux64/poky/meta-intel-iot-middleware/recipes-connectivity/paho-mqtt/paho-mqtt_3.1.bb, do_fetch) failed with exit code '1'

上記作業が終了したら,ビルドディレクトリに移動し環境変数を設定後,イメージをビルドします.ビルドには環境にもよると思いますが数時間かかります.またディスクも 30 G 程度消費するので注意です.

$ cd out/linux64
$ source poky/oe-init-build-env
$ bitbake edison-image

ビルドが終了したら下記を実行します.toFlash フォルダに書き込み用のイメージがコピーされます.

$ ../../../meta-intel-edison/utils/flash/postBuild.sh ./

カーネルをカスタマイズする場合には,下記の手順を実行します.

$ bitbake virtual/kernel -c menuconfig
$ cp tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/linux-edison-standard-build/.config ../../../meta-intel-edison/meta-intel-edison-bsp/recipes-kernel/linux/files/defconfig
$ cp tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/linux-edison-standard-build/.config tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/linux/arch/x86/configs/i386_edison_defconfig
$ bitbake virtual/kernel -c configure -f -v
$ bitbake edison-image