以前に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が表示される。 タッチパネルで操作することができる。