Intel Edison release 2.1 のイメージをビルドする
基本的な流れは 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