Skip to content
dynamis edited this page Jul 20, 2021 · 22 revisions

RZ/G2 シリーズの FW のビルド

Renesas RZ/G2 シリーズのボード向けのビルド手順をまとめています。

事前準備と注意事項

RZ/G2E 向けの VLP (BSP) のビルドに必要なファイルは Renesas のサイト で入手する。

注意事項:

  • 評価版は即時ダウンロード可能になるが、製品版は Renesas Customer Hub での申請ベースでの提供となっており入手まで数日かかる
  • 評価版の場合は (RZ/G1 の時と同じなら) 起動後 3 時間で画面がフリーズする制限がある
  • 画面出力は LVDS 推奨、HDMI は開発用という扱いであり、HDMI ディスプレイ接続時は HDMI パッチが必要です
  • 従来 Github の meta-renesas から入手していたが変更されている

RZ/G2 + Firefox 68/78 のビルド手順

公式 VLP (for HTML5)VLP 1.0.6 for HTML5 リリースノート で指定の通り Ubuntu 16.04 を用いた場合の Gecko 68 ビルド手順を記載する (Gecko 78 の手順は後述、基本的に同じ)。 VLP 1.0.7-RT 以降では 18.04 でのビルドが推奨となったが同じ手順にてビルド可能。VLP 1.0.8 については現在 Ubuntu 18.04 を用いたビルド環境・手順の準備を進めている。

なお、他ディストリビューションでも依存パッケージを正しく準備できればビルド可能と思われるが、確認はしていない。Gecko 68/78 のインストール対象ボードが RZ/G2 シリーズのいずれであるか (ek874, hihope-rzg2m など) に依らず、同一手順でビルド可能である (RZ/G1 シリーズでも同じ)。

GCC 7 のインストールとデフォルト GCC の切り替え

ビルド環境が Ubuntu 16.04 の場合以下を実行する (Ubuntu 18.04 利用時には以下の手順は不要)。

$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update
$ sudo apt-get install gcc-7 g++-7
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10 \
      --slave /usr/bin/g++ g++ /usr/bin/g++-5
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 20 \
      --slave /usr/bin/g++ g++ /usr/bin/g++-7

meta レイヤのダウンロード

Gecko バージョンに応じたブランチ、リビジョンのレイヤをダウンロードする。これは Docker ビルド環境では以下の違いに相当する:

Gecko 78 の場合

$ cd $WORK
$ git clone -b firefox-78-wip https://github.com/webdino/meta-browser.git
$ git clone https://github.com/meta-rust/meta-rust.git
$ git -C meta-rust checkout be88d857a6ba9134abb795b3a34d3a839196335f
$ git clone -b rocko-again https://github.com/webdino/meta-clang.git

Gecko 68 の場合

$ cd $WORK
$ git clone -b gem-firefox-68.0.0esr https://github.com/webdino/meta-browser.git
$ git clone https://github.com/meta-rust/meta-rust.git
$ git -C meta-rust checkout 9487b089ea4779c2b494b17b9254219226efa539
$ git clone -b rocko-again https://github.com/webdino/meta-clang.git

meta レイヤの追加

$ cd $WORK/build
$ bitbake-layers -F add-layer $(pwd)/../meta-rust
$ bitbake-layers -F add-layer $(pwd)/../meta-clang
$ bitbake-layers -F add-layer $(pwd)/../meta-browser

local.conf の編集

${WORK}/build/conf/local.conf に以下の内容を追加する(meta-rzg2 のdocs/sample/conf/MACHINE/linaro-gcc/local_gecko.conf をコピーしても良い)。

IMAGE_INSTALL_append = " firefox "
IMAGE_INSTALL_append = " ttf-sazanami-gothic ttf-sazanami-mincho "
IMAGE_INSTALL_append = " pulseaudio-server "
PACKAGECONFIG_append_pn-firefox = " openmax "
PACKAGECONFIG_append_pn-firefox = " webgl "
PACKAGECONFIG_append_pn-firefox = " gpu "

TARGET_CXXFLAGS_remove_toolchain-clang = " --stdlib=libc++"
TUNE_CCARGS_remove_toolchain-clang = " --rtlib=compiler-rt --unwindlib=libunwind --stdlib=libc++"
TUNE_FEATURES_remove_toolchain-clang = "cortexa57-cortexa53"

DISTRO_FEATURES_append = " x11"

リンクホバー時のカーソルなどを正しく表示したい場合、以下も追記しておく。

IMAGE_INSTALL_append = " adwaita-icon-theme-cursors "

BB_NO_NETWORK は 0 に設定する。

BB_NO_NETWORK = "0"

Jessie CIP を使用する場合の追加手順

下記はデフォルトの Buster CIP を使う場合は不要なのでスキップして良い。

Jessie CIP を使用する場合、もしくは BSP 1.0.6 より古いバージョンでビルド を行いたい場合には、別途新しい nodejs をインストールする必要がある。

  • https://nodejs.org/ から Linux (x64) 向けのバイナリをダウンロードする (ここでは 14.17.0 をダウンロードしたものとする)。

  • 以下の手順で .mozbuild/node 以下に nodejs をインストールする。

    $ mkdir ~/.mozbuild
    $ cd ~/.mozbuild
    $ tar -xf /path/to/node-v14.17.0-linux-x64.tar.xz
    $ mv node-v14.17.0-linux-x64 node
    

WebViewer (Amethyst) をビルドする場合

Firefox ブラウザビルドではなく、組み込み用に最小化した WebViewer (Amethyst) ビルドを行う場合、amethyst の README 記載の通りパッチファイルを適用、ブランディングファイルをコピーした上で、local.conf にて firefox レシピ用の指定を全て webviewer レシピ用に切り替えてください。Firefox と WebViewer 両方のビルドを行いたい場合は両方併記してください。

IMAGE_INSTALL_append = " webviewer "
PACKAGECONFIG_append_pn-webviewer = " openmax "
PACKAGECONFIG_append_pn-webviewer = " webgl "
PACKAGECONFIG_append_pn-webviewer = " gpu "

ビルドを開始する

$ cd $WORK/build
$ bitbake core-image-weston

WebGL2 の有効化

Gecko 68 では WebGL2 を有効化するためには X11 が使用可能な状態になってい る必要がある。Wayland 環境では XWayland を有効にしておくことで WebGL2 の 有効化が可能。

FW 内の /etc/xdg/weston/weston.ini の core セクションに、 xwayland=true を追加しておくこと。

[core]
xwayland=true

Docker を使用したビルド

上記の環境・手順をほぼすべて含んだ Docker によるビルド環境が用意されている。

hihope-rzg2m 向けの BSP-1.0.1-update1 + Gecko 68 の環境であれば、以下のようにビルドすることが可能。

$ mkdir hihope-rzg2m-101u1-esr68 && cd hihope-rzg2m-101u1-esr68
$ din anyakichi/gecko-embedded-builder:hihope-rzg2m-101u1-esr68
builder@hihope-rzg2m-101u1-esr68:/build$ extract
builder@hihope-rzg2m-101u1-esr68:/build$ setup
builder@hihope-rzg2m-101u1-esr68:/build/build$ build

extract 後にプロプライエタリドライバと HDMI 有効化パッチの適用だけは手動で行う必要があるので注意すること。その他詳細は README を参照のこと。


ビルド後にすること

SD カードの作成

ビルドが終わったら ブート用 SD カードの準備手順説明ページ に従って SD カードを用意して起動してください。

Firefox/WebViewer の起動

RZ/G2 固有ではない、起動時の環境変数の指定などについては Tips ページ を参照。

WebViewer の機能と使い方については amethyst wiki を参照。

追加レシピの利用

デモ用コンテンツ Tanzanite や動作試験用の WPT を行う為に必要なモジュールを追加でビルドする場合については Gecko 本体以外の追加レシピについてのページ を参照してください。


参考資料