はじめに
Edisonがリリースされてそろそろ2年となるようです。結構な月日が経ったなぁ。と感慨なのですが、最近のIntelのSDKでEdisonのイメージ(yocto-linuxベースです)をビルドしたので、その際の情報をまとめておきます。
環境について
ここではdockerの上にUbuntuを走らせ、その上で構築します。もちろん通常のUbuntuの方でも大丈夫です。docker特有の手順についてはその旨を付記することにします。
手順概要
手順としては以下のようになります。
- 作業ディレクトリの作成
- (dockerのみ)dockerイメージのDownload,コンテナの起動
- 必要なソフトのインストール
- (dockerのみ)ユーザーの作成, /dev/consoleの修正
- Intel SDKのダウンロード、展開
- SDKの設定
- ビルド(1回目)
- カーネルコンフィグの変更
- ビルド(2回目)
- イメージの作成
また作業ディレクトリとして"~/edison"を作成し、使用します。dockerのみ、作業用ユーザとしてedisonを作成します。
作業手順
作業ディレクトリの作成
まず作業用のディレクトリを作成します。ディレクトリにEdisonに必要なファイルがコピーされ、またソフトのビルドも行なわれます。ですので40G程度の容量が必要です。
$ mkdir ~/edison
(dockerのみ)dockerイメージのDownload,コンテナの起動
$ docker pull ubuntu
$ docker run -i -t -v ~/edison:/work:rw --privileged ubuntu /bin/bash
必要なソフトのインストール
$ apt-get update
$ apt-get install build-essential git diffstat gawk chrpath texinfo libtool gcc-multilib u-boot-tools unzip python wget cpio
(dockerのみ)ユーザーの作成, /dev/consoleの修正
non-rootのユーザーでビルドする必要があるのでdockerの際には別のユーザーを作成します。またそのユーザーから/dev/consoleにアクセスする必要があるのでその設定を修正します。
$ chmod 777 /work
$ chmod 777 /dev/console
$ useradd -m edison
$ su edison
Intel SDKのダウンロード、展開、設定
以下のURLに最新版のSDKがありますので、それをディレクトリに保存して下さい。
Https://software.intel.com/en-us/iot/hardware/edison/downloads
2017/7時点では"iot-devkit-yp-poky-edison-20160606.zip"が最新版のようです。
以下のコマンドで保存したファイルを展開し、ビルドの設定を行ないます。
$ unzip iot-devkit-yp-poky-edison-20160606.zip
$ cd iot-devkit-yp-poky-edison-20160606/poky/
$ source oe-init-build-env ../build_edison/
"./conf/local.conf" の中の "BB_NUMBER_THREADS" と "PARALLEL_MAKE"の値をCPUコアの値よりやや多めにすることでビルド時間が短縮できま
ビルド(1回目)
最初にイメージのビルドを行ないます。最初のビルドはかなり時間がかかります。
$ bitbake edison-image
カーネルコンフィグの変更
以下のコマンドでカーネルコンフィグの設定を変更します。
$ bitbake virtual/kernel -c menuconfig
ビルド(2回目)
その後再度イメージのビルドを行ないます。
$ bitbake edison-image
イメージの作成
以下のコマンドでEdison実機向けのイメージを作成します。
$ ../poky/meta-intel-edison/utils/flash/postBuild.sh .
以下のコマンドでEdison実機にイメージを焼くことが可能です。
$ sudo ./flushall.sh