みつきんのメモ

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

raspberrypi2 yoctoでPiTFT3.5 (X11編)

以前にyocto + PiTFT3.5でコンソールを動作させたが、今回はcore-image-satoでX11ベースのGUIを動作させたのでメモ。

meta-pitft35-rpiについて

以前作成したmeta-pitft35-rpiをcore-image-satoに対応し、pitft3.5を装着した状態でこのイメージを書き込むと、自動的にX11が起動するようにした。 その際、タッチスクリーンも有効化されるので、マウスやキーボードなどを接続しなくてもRPi2を操作できるようになる。

このレイヤはHX8357Dサポートのパッチを、meta-raspberrypiのカーネルへバックポートして、dtoverlayなど、必要な設定をしたもの。

環境の作成

meta-pitft35-rpiを使用した環境の作成を記載する。

yoctoの基本環境およびmeta-raspberrypi

まいどお馴染みの基本環境のダウンロード

$ mkdir ~/work/rpi2
$ cd ~/work/rpi2
$ git clone git://git.yoctoproject.org/poky.git
$ git checkout -b fido origin/fido
$ cd ~/work/rpi2/poky
$ git clone git://git.yoctoproject.org/meta-raspberrypi

meta-pitft35-rpi

今回作成したレイヤのダウンロード

$ cd ~/work/rpi2/poky
$ git clone https://github.com/mickey-happygolucky/meta-pitft35-rpi.git

ビルド環境の設定

ビルドのための環境変数の設定とビルドディレクトリの作成。 このコマンド実行後は自動的にビルドディレクトリに移動される。

$ cd ~/work/rpi2
$ source poky/oe-init-build-env build_pitft35

今回はビルドディレクトリを、build_pitft35とする。

conf/bblayers.conf

レイヤーの設定。

BBLAYERS ?= " \
  /home/mickey/work/rpi2/poky/meta \
  /home/mickey/work/rpi2/poky/meta-yocto \
  /home/mickey/work/rpi2/poky/meta-yocto-bsp \
  /home/mickey/work/rpi2/poky/meta-raspberrypi \
  /home/mickey/work/rpi2/poky/meta-pitft35-rpi \
  "

今回は、meta-raspberrypiとmeta-pitft35-rpiを追加している。

conf/local.conf

MACHINE ?= "raspberrypi2"
BB_NUMBER_THREADS = "6"
PARALLEL_MAKE = "-j 6"
VIDEO_CAMERA = "1"
GPU_MEM = "128"
LICENSE_FLAGS_WHITELIST += "commercial"
DL_DIR ?= "${TOPDIR}/../downloads"

KERNEL_DEVICETREE_append = " pitft35-resistive-overlay.dtb"

RPI_PITFT35 = "1"

PREFERRED_PROVIDER_virtual/egl = "vc-graphics-hardfp"
PREFERRED_PROVIDER_virtual/libgles2 = "vc-graphics-hardfp"

「KERNEL_DEVICETREE_append = " pitft35-resistive-overlay.dtb"」で、 pitft35のdtoverlayをビルド対象に含め、 「RPI_PITFT35 = "1"」でこれを有効化している。

「PREFERRED_PROVIDER_virtual/egl」と「PREFERRED_PROVIDER_virtual/libgles2」の行は、meta-raspberrypiでcore-image-satoをbitbakeする際に発生するエラーを回避している。

動作確認

ビルド

今回はX11を動作させるためにcore-image-satoをビルドする。

$ cd ~/work/rpi2/build_pitft35
$ bitbake core-image-sato

焼きこみ

$ sudo dd if=./tmp/deploy/images/raspberrypi2/core-image-sato-raspberrypi2.rpi-sdimg of=/dev/sdb bs=40M

RPi2での確認

PiTFT3.5を装着して起動すると、しばらくしてGUIが表示される。 タッチパネルで操作することができる。

f:id:mickey_happygolucky:20151006021201j:plain