みつきんのメモ

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

raspberrypi3でyocto

技適取得済みのRPi3が入手できた。

f:id:mickey_happygolucky:20160323001355j:plainf:id:mickey_happygolucky:20160323001404j:plain

箱に技適マークが確認できる。

f:id:mickey_happygolucky:20160323001430j:plain

基板はこんな感じ。

meta-raspberrypiもmasterであればRPi3に対応しているようなので動かしてみる。

作業ディレクトリの作成

作業ディレクトリは~/rpi3とする。

$ mkdir ~/rpi3 && cd ~/rpi3

ベース環境の取得

$ git clone git://git.yoctoproject.org/poky.git
$ cd poky
$ git clone git://git.yoctoproject.org/meta-raspberrypi

先述の通り、現時点ではmasterブランチで作業。

oe-init-build-envの読み込み

下記を実行する。

$ cd ~/rpi3
$ source poky/oe-init-build-env

次のことが行われる。

  • ロスコンパイルに必要な環境変数の読み込み
  • buildディレクトリの作成とカレントディレクトリの移動
  • conf/bblayers.confの生成
  • conf/local.confの生成
  • conf/templateconf.cfgの生成

templateconf.cfgは特に存在を意識する必要はない。

conf/bblayers.confの修正

bblayers.confを修正し、meta-raspberrypiをbitbakeのビルド対象に追加する。

BBLAYERS ?= " \
  /home/mickey/rpi3/poky/meta \
  /home/mickey/rpi3/poky/meta-poky \
  /home/mickey/rpi3/poky/meta-yocto-bsp \
  /home/mickey/rpi3/poky/meta-raspberrypi \
  "

conf/local.confの修正

RPi3向けのイメージをビルドするための設定をlocal.confの上の方に記述する。

MACHINE ?= "raspberrypi3"
BB_NUMBER_THREADS = "8"
PARALLEL_MAKE = "-j 8"
GPU_MEM = "128"
DL_DIR ?= "${TOPDIR}/../downloads"

DL_DIRは特に必要ないが、ダウンロードしたファイルを格納するdownloadsディレクトリが buildの1つ上の階層にできるように指定している。

bitbake実行

bitbakeを実行し、RPi3向けのイメージを作成する。

$ bitbake rpi-basic-image

動作確認

ddで書き込んで、実機で動作確認。

$ sudo dd if=./tmp/deploy/images/raspberrypi3/rpi-basic-image-raspberrypi3.rpi-sdimg of=/dev/sdb bs=4M

無事起動した。

f:id:mickey_happygolucky:20160323001518j:plain