みつきんのメモ

組み込みエンジニアです。Interface誌で「Yocto Projectではじめる 組み込みLinux開発入門」連載中

yocto raspberrypi3でmorty

ちょっと時間が経ってしまったが、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カードのデバイス。環境により変更が必要な場合がある。

実行

f:id:mickey_happygolucky:20161115235426j:plain

無事起動した。