-
Notifications
You must be signed in to change notification settings - Fork 2
Build RCar Gen3 Yocto2.4
BSPのビルドについては基本的に上記の通り行えば良い。 以下、2018-10-23時点でのビルド例を示す。
- Ubuntu 16.04を適当なビルドマシンにインストール
- 必要なパッケージをインストール
$ 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
各リポジトリの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にダウンロード。
- https://www.renesas.com/en-us/software/D6002572.html
- https://www.renesas.com/en-us/software/D6002573.html
上記の中身をソースツリー内にコピー。
$ 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
シェル環境のセットアップ・設定ファイルのコピー
$ 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カードのデバイスファイルとマウント先を仮にそれぞれ/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 の手順を参考にし、 ファームウェアを更新すること。
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
- Gecko のビルド手順
- RZ/G2
- R-Car Gen3 Yocto2.1, Yocto2.4
- RZ/G1E Yocto 1.6.1, Yocto 2.0
- RasinboW G20D Q7 Yocto1.6.1, Yocto2.0
- Wandboard
- iMX6 SABRE
- Armadillo EVA 1500
- SD カード作成
- 追加レシピ (WPT等)
- Tips Pages
- 主な関連リポジトリ