Build and Bitbake Tips

dynamis edited this page Apr 17, 2018 · 1 revision

Yocto (Open Embedded) で Gecko などをビルドする HowTo と Tips

はじめに

Yocto のビルド (bitbake) を行う時にはビルド対象のレイヤを読み込むディレクトリを <builddir>/conf/bblayers.conf ファイルで指定、ビルド対象とするものや設定などは <builddir>/conf/local.conf ファイルで指定する。基本的には必要なリポジトリをクローン、チェックアウトもしくはダウンロードして展開やパッチの適用を済ませた上で、bblayers.conf と local.conf の設定を書き換えてビルドするだけ。

bblayers.conf と local.conf のテンプレートは開発ボード毎に、meta-renesas リポジトリに用意されている のでそれを元に書き換えることになる。

Gecko を追加したい

ビルドするためのレシピは meta-browser リポジトリに入っている。 手順についてもボードごとにそちらの Wiki に説明があるのでそれを参照する。

ビルドするときに気をつけるポイント:

  • SoC、ボード、BSP (Yocto ver.) など毎に分けてビルドするので適切にディレクトリ管理
  • ターゲットとする BSP やブラウザバージョンのブランチ、コミットになっていることを確認
  • ドライバは別途配布されているバイナリをダウンロードして入れる必要があることが多い

Firefox を起動したい

実機上のターミナルなら単に firefox として起動できる。SSH などリモートコンソールで操作しているときは環境変数を指定して起動する必要があることに注意:

# WAYLAND_DISPLAY=wayland-0 firefox

コマンドラインオプションは MDN のドキュメントを参照

Node.js を追加したい

meta-nodejs リポジトリをクローン:

git clone https://github.com/imyller/meta-nodejs.git

build/conf/bblayers.conf に先ほど clone した meta-nodejs を追加する:

BBLAYERS += " ${TOPDIR}/../meta-nodejs "

build/conf/local.conf に nodejs を追加しその設定も指定する:

# Install Node.js
IMAGE_INSTALL_append = " nodejs nodejs-npm "
PACKAGECONFIG_append_pn-nodejs = " zlib openssl "
PREFERRED_VERSION_nodejs = "6%"

curl, git などのコマンドを追加したい

build/conf/local.conf に追加するだけで良い:

IMAGE_INSTALL_append = " packagegroup-core-buildessential "
IMAGE_INSTALL_append = " curl git "

ビルドする

bblayers.conf や local.conf を書き換えたらビルドする:

# シェル環境をセットアップしてビルドディレクトリに移動:
source poky/oe-init-build-env
# ビルド開始
bitbake core-image-webton

Bitbake Tips

パッケージビルド時の環境変数一覧を見る

$ bitbake -e package-name

タスク一覧を見る

$ bitbake -c listtasks package-name

ソースコードを直接編集してテスト用のパッケージを作成する

変更点を管理しづらくなるので多用は禁物だが、ちょっとした実験には便利。

$ bitbake -c devshell package-name
 (自動的にソースディレクトリに入るので編集する)
$ exit
$ bitbake -f -c compile package-name
$ bitbake package-name

tmp/deply/ 以下にできるパッケージを実機にインストールする。

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.