今更のPandaBoard ESをmortyで試してみる。 手元にあるのは悪名高きRev.B3。
Rev.B3はElpidaのDDRを搭載しており、タイミングなどの設定が他のリビジョンと異なるため、 Pandaboard ESの他のリビジョンで動作するOSイメージをそのまま使用することができない。
ここをベースにYocotProjectで動くようにしてみた。
morty環境の作成
pokyを取得
~/panda
で作業する。
$ mkdir ~/panda $ cd ~/panda $ git clone git://git.yoctoproject.org/poky.git -b morty
meta-tiを取得
meta-tiには現時点でmortyブランチがないためmasterを取得する。
$ cd poky $ git clone http://git.yoctoproject.org/git/meta-ti
meta-panda-es-rev-b3
Rev.B3のイメージを作成するためにmeta-panda-es-rev-b3
を取得する。
$ git clone https://github.com/mickey-happygolucky/meta-panda-es-rev-b3.git
環境変数の設定
bitbakeの実行に必要な環境変数を読み込む。
$ cd ../ $ source poky/oe-init-build-env
レイヤの設定
ビルド対象にmeta-tiとmeta-panda-es-rev-b3を追加する。
$ bitbake-layers add-layer ../poky/meta-ti $ bitbake-layers add-layer ../poky/meta-panda-es-rev-b3
local.confの設定
MACHINEをpandaboradに設定するため、local.confの頭の方に次を追加する。
MACHINE ?= "panda-es-rev-b3"
bitbakeの実行
core-image-minimalを生成する。
$ bitbake core-image-minimal
SDカードの作成
Pandaboardを起動するためにはSDカードの決まった場所にブートローダ(MLO,u-boot)を書き込む必要がある。 作業手順が複雑なため、スクリプトを作成した。
このスクリプトを使用してSDカードを作成する。
スクリプトのダウンロード
まずはスクリプトを取得し実行権限をつける。
$ wget https://gist.githubusercontent.com/mickey-happygolucky/40385889e3d013f00e1f97eb5ae04f95/raw/df99f41c760dcbed29340075cea49c749f9f6934/mksd_panda.sh $ chmod +x ./mksd_panda.sh
スクリプトの実行
PCにSDカードをマウントした状態でスクリプトを実行する。
引数にはbitbakeで作成されたイメージの.tar.gzファイルを指定する。
実際には.tar.gzと同じディレクトリにあるカーネルやブートローダもSDカードに書き込むため、 .tar.gz単体を他のディレクトリに移動して使用することはできないので注意。
$ ./mksd_panda.sh ./tmp/deploy/images/panda-es-rev-b3/core-image-minimal-panda-es-rev-b3.tar.gz
Pandaboard起動
作成したSDカードを挿入し、電源を投入する。
Poky (Yocto Project Reference Distro) 2.2 panda-es-rev-b3 /dev/ttyS2 panda-es-rev-b3 login: root root@panda-es-rev-b3:~# uname -a Linux panda-es-rev-b3 4.9.0+ #1 SMP Wed Jan 11 21:07:22 JST 2017 armv7l GNU/Linux root@panda-es-rev-b3:~#
無事、起動した。 今回はRS-232CでPCと接続しシリアルコンソールでログインしている。