Skip to content

Build RCar Gen3 Yocto2.4

Takuro Ashie edited this page Oct 23, 2018 · 1 revision

Firefox 60ESRビルド手順(ルネサスRenesas R-Car-M3 Starter Kit Pro Yocto-2.4)

BSPのビルド

情報源

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

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

  1. Ubuntu 16.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/RCar-Gen3
$ 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 git://github.com/renesas-rcar/meta-renesas
$ cd $WORK/poky
$ git checkout -b tmp 342fbd6a3e57021c8e28b124b3adb241936f3d9d

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

$ cd $WORK/meta-linaro
$ git checkout -b tmp 75dfb67bbb14a70cd47afda9726e2e1c76731885

$ cd $WORK/meta-renesas
$ git checkout -b tmp fd078b6ece537d986852cb827bd21e022a797b2f

続いて、gccへのパッチ。

$ cd $WORK/meta-renesas
$ export PATCH_DIR=meta-rcar-gen3/docs/sample/patch/patch-for-linaro-gcc
$ patch -p1 < ${PATCH_DIR}/0001-rcar-gen3-add-readme-for-building-with-Linaro-Gcc.patch
$ unset PATCH_DIR

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

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

$ ls -1 $WORK/proprietary/*.zip
R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20180627.zip
R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20180627.zip

$ export PKGS_DIR=$WORK/proprietary
$ cd $WORK/meta-renesas
$ sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f $PKGS_DIR
$ unset PKGS_DIR

BSPのビルド: Waylandの場合

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

$ cd $WORK
$ source poky/oe-init-build-env
$ cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/m3ulcb/linaro-gcc/mmp/*.conf ./conf/
$ cd $WORK/build
$ cp conf/local-wayland.conf conf/local.conf

ビルドする前に、build/conf/local.confにある

# Evaluation packages
# DISTRO_FEATURES_append = " use_eva_pkg"

のコメントアウトを解除する。

ビルド

$ 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/m3ulcb/core-image-weston-m3ulcb.tar.bz2" -C /mnt/sd
sudo cp "${WORK}/build/tmp/deploy/images/m3ulcb/Image-r8a7796-m3ulcb.dtb" /mnt/sd/boot/Image-r8a7796-m3ulcb.dtb
sudo umount /mnt/sd

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

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

screenをインストール

$ sudo apt-get install screen

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

$ sudo screen /dev/ttyUSB0 115200

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

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

ブートオプションの設定

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

# setenv bootargs 'rw root=/dev/mmcblk1p1 rootfstype=ext3 rootwait'
# setenv bootcmd 'ext2load mmc 0:1 0x48080000 /boot/Image; ext2load mmc 0:1 0x48000000 /boot/Image-r8a7796-m3ulcb.dtb; booti 0x48080000 - 0x48000000'
# saveenv

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

注意

Yocto 2.4.2を用いてのカーネルはYocto 2.1.3用のブートパラメーターを用いている場合はハングすることがある。 その場合は、 https://elinux.org/R-Car/Boards/H3SK#Flashing_firmware の手順を参考にし、 ファームウェアを更新すること。

Firefoxのビルド方法

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

$ cd ${WORK}
$ git clone https://github.com/webdino/meta-gecko-embedded.git
$ git clone -b firefox-60esr https://github.com/webdino/meta-browser.git
$ git clone -b use-prebuilt-rust-std-for-cross-compile-with-dldir https://github.com/webdino/meta-rust.git

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

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

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

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

GPUアクセラレーションを有効化したい場合は、local.confに以下を追加する

PACKAGECONFIG_append_pn-firefox = " egl "

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

PACKAGECONFIG_append_pn-firefox = " openmax "

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

PACKAGECONFIG_append_pn-firefox = " webgl "

Canvas(2dcontext)のアクセラレーションを有効化したい場合は、local.confに以下を追加する

PACKAGECONFIG_append_pn-firefox = " canvas-gpu "

conf/local.confにホストのunzip, autoconf2.13を使用できるようにするために、以下の記述を追記する。

HOSTTOOLS += "unzip autoconf2.13"

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

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

ネットワークのセットアップ

R-Carでは、networkingがmaskされているため、SDカードを焼いた状態ではインターネットに出られない。そのため、起動後に以下のコマンドを実行する必要がある。

# systemctl unmask networking
# systemctl start networking
# systemctl enable networking