ちょっと時間が経ってしまったが、yocto 2.2(morty)がリリースされたので、raspberrypi3で動かしてみる。
ベース環境の取得
$ git clone git://git.yoctoproject.org/poky.git -b morty $ cd poky $ git clone git://git.yoctoproject.org/meta-raspberrypi
meta-raspberrypiはまだブランチがないのでmasterを使用する。
oe-init-build-envの読み込み
下記を実行する。
$ cd ~/rpi3 $ source poky/oe-init-build-env
これにより、クロスコンパイルに必要な環境変数が設定され、ビルドディレクトリに移動される。
meta-raspberrypiをビルド対象に追加
次のコマンドを実行する。
$ bitbake-layers add-layer ../poky/meta-raspberrypi
local.confの修正
次の行をlocal.confの先頭の方に追加する。
MACHINE ?= "raspberrypi3" DL_DIR ?= "${HOME}/work/yocto/downloads"
動作確認
bitbakeの実行
$ bitbake rpi-basic-image
DISTRO_VERSIONが2.2になっていることがわかる。
Build Configuration: BB_VERSION = "1.32.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "Ubuntu-16.10" TARGET_SYS = "arm-poky-linux-gnueabi" MACHINE = "raspberrypi3" DISTRO = "poky" DISTRO_VERSION = "2.2" TUNE_FEATURES = "arm armv7ve vfp thumb neon vfpv4 callconvention-hard cortexa7" TARGET_FPU = "hard" meta meta-poky meta-yocto-bsp = "morty:dc8508f609974cc99606b9042bfa7f870ce80228" meta-raspberrypi = "master:17a6933adfc7bdf4e7e18dcc9d59e35718620fd4" Initialising tasks: 100% |################################################################################################| Time: 0:00:14 NOTE: Executing SetScene Tasks NOTE: Executing RunQueue Tasks NOTE: Tasks Summary: Attempted 5485 tasks of which 15 didn't need to be rerun and all succeeded. Summary: There was 1 WARNING message shown.
SDカードの作成
$ sudo dd if=tmp/deploy/images/raspberrypi3/rpi-basic-image-raspberrypi3.rpi-sdimg of=/dev/sdb bs=40M
/dev/sdb
はSDカードのデバイス。環境により変更が必要な場合がある。
実行
無事起動した。