Skip to content

Build RainboW G20D Q7 Yocto 2.0

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

Firefox 52ESRビルド手順(iWave RainboW-G20D Q7 Yocto-2.0)

BSPのビルド

情報源

BSPのビルドについては基本的に上記の通り行えば良い。ただし、以下の点が異なる。

  • ボード名('skrzg1m'や'skrzg1e'に相当する箇所)はiwg20mに読み替える。
  • meta-renesasのブランチはcip-devを使用する。
  • meta-rzg-demosは、本ドキュメントで使用するmeta-browserやmeta-gecko-embeddedと併用することはできない。

以下、2017-12-18時点でのビルド例を示す。

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

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

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

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

Yoctoレシピのセットアップ

各Yoctoレイヤのリポジトリをcloneする。

$ 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 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

$ cd $WORK/meta-renesas
$ git checkout certified-linux-v2.0.2

続いて、プロプライエタリドライバをセットアップする。 以下からそれぞれ$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_rzg1m.sh ../../proprietary
$ ./copy_mm_software_lcb.sh ../../proprietary

BSPのビルド

シェル環境をセットアップし、設定ファイルをコピーする。

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

bitbakeコマンドでcore-image-westonをビルドする。

$ bitbake core-image-weston

ブート用microSDカード

情報源

  • 本体付属のドキュメント
  • 基本的にYocto-1.6の場合と同様だが、microSDデバイスがmmcblk1からmmcblk0に変更されている事に留意

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

以下、microSDカードのデバイスファイルを/dev/sdbとして説明する。環境に合わせて読み替えること。

microSDカード上にパーティションを作成する。

$ sudo apt-get install gparted
$ sudo gparted /dev/sdb
(boot用の第一パーティションをfat32、rootfs用の第二パーティションをext3に割当)

micorSDカードにファイルをコピーする。

sudo mkdir -p /mnt/boot
sudo mount /dev/sdb1 /mnt/boot
sudo cp "${WORK}/build/tmp/deploy/images/iwg20m/uImage" /mnt/boot/uImage
sudo cp "${WORK}/build/tmp/deploy/images/iwg20m/uImage-r8a7743-iwg20m.dtb" /mnt/boot/uImage-r8a7743-iwg20m.dtb
sudo umount /mnt/boot

sudo mkdir -p /mnt/rootfs
sudo mount /dev/sdb2 /mnt/rootfs
sudo tar xfj "${WORK}/build/tmp/deploy/images/iwg20m/core-image-weston-iwg20m.tar.bz2" -C /mnt/rootfs
sudo umount /mnt/rootfs

westonの追加設定

2017-09-26現在、同BSPはタッチパネルに対応しておらず、映像はHDMIからしか出力できない。

  • 本体にカメラ接続キット(ドーターボード)を接続し、ドーターボード上のHDMIポートにモニターを接続する
  • モニターがデフォルトの出力解像度に対応していない場合があるため、rootfs上のetc/xdg/weston/weston.iniに以下の設定を追加する
[output]
name=HDMI-A-1
mode=1280x720

[output]
name=LVDS-1
mode=off

# 以下は必要に応じて
[keyboard]
keymap_rules=evdev
keymap_layout=jp

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

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

screenをインストール

$ sudo apt-get install screen

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

$ sudo screen /dev/ttyUSB0 115200

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

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

ブートオプションの設定

microSDカードを実機に挿入して電源を投入する。この際、シリアルコンソールでスペースキーを押しっぱなしにしておく。 U-Bootのコンソールに入るので、以下を実行する (注: ボードのリビジョンによってはベースの設定が異なるかもしれないので、設定内容はsaveenvする前によく検証すること)。

> setenv bootargs_msd_bsp2 'setenv bootargs ${bootargs_base} root=/dev/mmcblk0p2 rootwait rootfstype=ext3 rw'
> setenv bootcmd_msd_bsp2 'run bootargs_msd_bsp2;run fdt_check;mmc dev 1;fatload mmc 1 ${loadaddr} ${kernel};fatload mmc 1 ${fdt_addr} uImage-r8a7743-iwg20m.dtb;bootm ${loadaddr} - ${fdt_addr}'
> setenv bootcmd 'run bootcmd_msd_bsp2'
> 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.3esr 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

ビルドされたウェブブザウザは、実機上で以下のコマンドを入力することで起動することができる。

# WAYLAND_DISPLAY=wayland-0 firefox

言語パックの導入方法

ビルドディレクトリのconf/local.confに以下を追加してブートイメージを作成する(下記は日本語の場合)。

IMAGE_INSTALL_append = " firefox-l10n-ja "

また、ブートイメージ内に以下の内容で/usr/lib/firefox/defaults/pref/lang.js(ファイル名は任意で良い)を作成する。

pref("general.useragent.locale", "ja");
pref("intl.locale.matchOS", false);

サウンドの有効化方法

ALSAを使う方法

本レシピではALSAサポートがデフォルトで有効化されている。 実機での使用時に音量を適切に設定すれば、音声を再生することができる。

音量設定例:

# amixer sset 'Headphone' 118 -D sysdefault

PulseAudioを使う方法

まず、ビルド時に以下をlocal.confに追加してブートイメージ(core-image-weston)をビルドする。

IMAGE_INSTALL_append = " pulseaudio-server "

pulseaudioデーモンは自動で起動しないため、実機でのFirefox実行前に手動でpulseaudioデーモンを起動する必要がある。 また、ミキサーで音量を適切に設定しておくこと。

# amixer sset 'Headphone' 118 -D sysdefault
# pulseaudio --exit-idle-time=-1 --start

デモHTMLコンテンツ

以下の設定を追加してcore-image-westonをビルドすると、HEMS(Home Energy Management System)をイメージしたデモHTMLコンテンツgem-tanzaniteをブートイメージに含めることができる (注: 本コンテンツはタッチパネルが無いと操作できないが、2017-09-26現在、同BSPはタッチパネルをサポートしていない)。

conf/bblayers.conf:

BBLAYERS += " ${TOPDIR}/../meta-gecko-embedded/meta-demo "

conf/local.conf:

IMAGE_INSTALL_append = " gem-tanzanite "

実機上で以下のコマンドを入力することで、ウェブブラウザ及び同HTMLコンテンツを起動することができる。

# gem-tanzanite

また、以下の設定を含めてブートイメージをビルドすると、同デモコンテンツがシステム起動時に自動起動する。

conf/local.conf:

IMAGE_INSTALL_append = " gem-tanzanite-init "