以前にAdafruitのイメージで動かしたあと放置気味だったが、yoctoでPiTFT3.5を動作させたのでメモ。
ドライバについて
今回はmeta-pitft35-rpiというレイヤを作成した。 このレイヤはHX8357Dサポートのパッチをmeta-raspberrypiのカーネルへバックポートして、dtoverlayなど必要な設定をしたもの。
HX8357Dのパッチはそのままでは適用できなかったので手パッチをあてた。
環境の作成
meta-pitft35-rpiを使用した環境を作成する。
yoctoの基本環境およびmeta-raspberrypi
まいどお馴染みの基本環境のダウンロード
$ mkdir ~/work/rpi2 $ cd ~/work/rpi2 $ git clone git://git.yoctoproject.org/poky.git $ 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"
「KERNEL_DEVICETREE_append = " pitft35-resistive-overlay.dtb"」で、 pitft35のdtoverlayをビルド対象に含め、 「RPI_PITFT35 = "1"」でこれを有効化している。
動作確認
ビルド
今回はRPi向け最小構成(おそらく)のrpi-basic-imageをbitbakeする。
$ cd ~/work/rpi2/build_pitft35 $ bitbake rpi-basic-image
焼きこみ
$ sudo dd if=./tmp/deploy/images/raspberrypi2/rpi-basic-image-raspberrypi2.rpi-sdimg of=/dev/sdb bs=40M
RPi2での確認
PiTFT3.5を装着して起動すると、しばらくしてログイン画面になる。