みつきんのメモ

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

ラズベリーパイ3 pyroでweston

meta-weston-rpiにRPi3対応しないの?というコメントがついたので、一応調べてみた。

すでに、waylandはrpi-backend.soのサポートをやめてしまっているので、実はmeta-weston-rpiは使えない。

もっと言うと、vc4graphicsが使用できることから、これがなくてもwestonは動かせるはず。

なので、ちょっとやってみた。

buildディレクトリはクリーンな状態で作業する必要がある。 DISTRO_FEATURESとか変更するので、ゴミが残っていると謎のエラーが頻発する。

yocto環境の取得

次の3つをcloneする。

  • poky
  • meta-raspberrypi
  • meta-openembedded

meta-openembeddedはmeta-oeを使いたいから(実は不要なのかも。。。)

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

buildディレクトリの作成と環境変数の設定

$ cd ..
$ source poky/oe-init-build-env

自動的にbuildディレクトリに移動される。

layerの設定

$ bitbake-layers add-layer ../poky/meta-raspberrypi
$ bitbake-layers add-layer ../poky/meta-openembedded/meta-oe

local.confの設定

local.confをエディタで編集。下記ではemacsを起動している。

$ emacs ./conf/local.conf

次の内容をlocal.confの上の方に記述する。

MACHINE ?= "raspberrypi3"

DISTRO_FEATURES_append = " wayland opengl"
DISTRO_FEATURES_remove = " x11"
MACHINE_FEATURES += "vc4graphics"

bitbake実行

$ bitbake core-image-weston

SDの作成

下記コマンドでイメージをSDカードに書き込む。

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

/dev/sdbはSDカードのデバイス名。環境によっては/dev/sdcなどになる。

実行画面

f:id:mickey_happygolucky:20170531010930j:plain

無事、動いた。