Skip to content

Build RZ G1E Yocto2.0

Takuro Ashie edited this page Oct 23, 2018 · 29 revisions

Firefox 52 ビルド手順(ルネサスRZ/G1E Yocto-2.0)

BSPのビルド

情報源

BSPのビルドについては基本的に上記の通り行えば良い。 以下、2017-05-30時点でのビルド例を示す。

ビルド環境のセットアップ

  1. Ubuntu 14.04を適当なビルドマシンにインストール
  2. 必要なパッケージをインストール

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
     build-essential chrpath socat

# Firefoxのビルドにautoconf2.13が追加で必要
$ sudo apt-get install autoconf2.13

Yoctoレシピのセットアップ

各リポジトリのcloneおよびcheckout

$ export WORK=${HOME}/Projects/rz-g1-bsp
$ mkdir -p $WORK/proprietary
$ cd $WORK

$ git clone git://git.yoctoproject.org/poky
$ git clone git://git.openembedded.org/meta-openembedded
$ git clone git://git.linaro.org/openembedded/meta-linaro.git
$ git clone -b yocto_2.0 https://github.com/renesas-rz/meta-renesas.git
$ cd $WORK/poky
$ git checkout -b tmp 3b223f75eec1738fbc913858e8e11c8305e3edcb

$ cd $WORK/meta-openembedded
$ git checkout -b tmp dc5634968b270dde250690609f0015f881db81f2

$ cd $WORK/meta-linaro
$ git checkout -b tmp 12993e6bc8658ee37d303d8d59007f8dd9ab2b30

ただし、2017年5月29日現在で公開されているmeta-renesasにはgst-plugins-badのレシピに問題があり、環境によってはビルドができないことがある。ビルドが出来ない場合は以下の修正版を代わりに使用する(upstreamには報告済み)。

git clone -b yocto_2.0-fix-gst-plugins-bad-build-issue https://github.com/ashie/meta-renesas.git

続いて、プロプライエタリドライバのセットアップ。 以下からそれぞれ$WORK/proprietaryにダウンロード。

上記の中身をソースツリー内にコピー。

$ cd $WORK/proprietary
$ unzip RZG_Series_Evaluation_Software_Package_for_Linux-20161011.tar.gz.zip
$ unzip RZG_Series_Evaluation_Software_Package_of_Linux_Drivers-20161011.tar.gz.zip

$ cd $WORK/meta-renesas/meta-rzg1
$ ./copy_gfx_software_skrzg1e.sh ../../proprietary
$ ./copy_mm_software_lcb.sh ../../proprietary

BSPのビルド: Waylandの場合

シェル環境のセットアップ・設定ファイルのコピー

$ cd $WORK
$ source poky/oe-init-build-env
$ cp ../meta-renesas/meta-rzg1/templates/skrzg1e/bblayers.conf ./conf
$ cp ../meta-renesas/meta-rzg1/templates/skrzg1e/local.conf ./conf/local.conf

ビルド

$ bitbake core-image-weston

ブート用SDカード

情報源

ブート用SDカードの作成例

SDカードのデバイスファイルとマウント先を仮にそれぞれ/dev/sdbおよび/mnt/sdとする。環境に合わせて読み替えること。

ext3パーティションの作成

$ sudo apt-get install gparted
$ sudo gparted /dev/sdb
(全領域をext3の1パーティションに割当)

SDカードにファイルをコピー

sudo mkdir -p /mnt/sd
sudo mount /dev/sdb1 /mnt/sd
sudo tar -xjf "${WORK}/build/tmp/deploy/images/skrzg1e/core-image-weston-skrzg1e.tar.bz2" -C /mnt/sd
sudo cp "${WORK}/build/tmp/deploy/images/skrzg1e/uImage+dtb.r8a7745-skrzg1e" /mnt/sd/boot/uImage+dtb
sudo umount /mnt/sd

シリアルコンソールのセットアップ

ブート設定を確認・変更するため、シリアルコンソールでアクセスできるようにする。 以下、GNU/Linuxでscreenを使用して接続する場合の例:

screenをインストール

$ sudo apt-get install screen

実機のCN13 DEBUGと書かれたMicroUSB端子とPCのUSB端子を接続し、screenを実行

$ sudo screen /dev/ttyUSB0 38400

問題が無ければ、実機の電源投入後にコンソールに出力が表示される。

なお、ブート設定やカーネルに手を入れるのでなければ、普段のデバッグはシリアルコンソールよりもsshの方が楽。

ブートオプションの設定

SDカードを実機に挿入して電源投入。シリアルコンソールでスペースキーを押しっぱなしにしておく。 ubootのコンソールに入るので、以下を実行:

> setenv bootcmd 'ext4load mmc 1:1 0x40007fc0 /boot/uImage+dtb; bootm 0x40007fc0'
> setenv bootargs 'console=ttySC10,38400 ignore_loglevel rw rootfstype=ext3 root=/dev/mmcblk1p1 rootwait vmalloc=384M'
> saveenv

リセットボタンで再起動。問題が無ければOSが起動する。

Firefoxのビルド方法

meta-gecko-embeddedおよびmeta-browser(Gecko Embedded版)をcloneする。

$ cd ${WORK}
$ git clone https://github.com/webdino/meta-gecko-embedded.git
$ git clone -b firefox-52.4esr https://github.com/webdino/meta-browser.git

ビルドディレクトリ(${WORK}/build)のconf/bblayers.confに以下を追加する。

BBLAYERS += " ${TOPDIR}/../meta-gecko-embedded/meta-poky-jethro "
BBLAYERS += " ${TOPDIR}/../meta-browser "

ビルドディレクトリのconf/local.confに以下を追加する。

IMAGE_INSTALL_append = " firefox "
IMAGE_INSTALL_append = " ttf-sazanami-gothic ttf-sazanami-mincho "

また、

DISTRO_FEATURES_remove = "x11"

となっている箇所を

DISTRO_FEATURES_append = "x11"

に変更する。

差分:

-DISTRO_FEATURES_remove = "x11"
+DISTRO_FEATURES_append = "x11"

更に、GPUアクセラレーションを有効化したい場合は、local.confに以下を追加する (注: 現状では強制的にフルスクリーンになる制限がある)。

PACKAGECONFIG_append_pn-firefox = " egl "

OpenMAXによるH.264再生のアクセラレーションを有効化したい場合は、local.confに以下を追加する。

PACKAGECONFIG_append_pn-firefox = " openmax "

WebGLを有効化したい場合は、local.confに以下を追加する (注: 現状では800x600を超えるcanvasを使用すると正しく描画されない問題がある)。

PACKAGECONFIG_append_pn-firefox = " webgl "

Canvas(2dcontext)のアクセラレーションを有効化したい場合は、local.confに以下を追加する (注: 現状では800x600を超えるcanvasを使用すると正しく描画されない問題がある)。

PACKAGECONFIG_append_pn-firefox = " canvas-gpu "

以上の設定でrootfsイメージを再ビルドする。

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