みつきんのメモ

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

raspberrypi2 yoctoでPiTFT3.5 (Console編)

以前に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を装着して起動すると、しばらくしてログイン画面になる。

f:id:mickey_happygolucky:20150726184645j:plain