[[CAT874_yocto ]]

本ページは ルネサスエレクトロニクス社の "RZ/G Verified Linux Package for 64bit kernel Version 1.0.0" をかみ砕いたものです。

ルネサスエレクトロニクス社のドキュメントを正として、本ページは参考資料として作業をお願いいたします。

ある程度の linux 及び yocto の知識を必要とします。

ホストOS

Ubuntu 16.04 LTS 64bit 推奨
debian 9 (stretch) 64bit 利用可能

必要なソフトウェアのインストール

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

ロケールを作っておく

$ sudo dpkg-reconfigure locales

[*] en_US.UTF-8 UTF-8
[*] ja_JP.UTF-8 UTF-8

環境変数

$ export LANG="ja_JP.UTF-8"

yoctoの準備

yoctoビルドの作業ディレクトリを作る

$ export WORK=/home/user/user_work
$ export PKGS_DIR=$WORK/proprietary
$ mkdir -p $WORK
$ mkdir -p $PKGS_DIR

作業ディレクトリ作り移動する

$ cd $WORK
$ tar xvzf ./rzg2_bsp_eva_v100.tar.gz

VLP64パッケージはLVDS出力となっている。HDMI出力に変更する場合はパッチを当てる

$ cd $WORK/meta-rzg2
$ patch -p1 < 0001-linux-renesas-EK874-add-HDMI-support.patch

Renesasプロプラソフトのコピー

$ cd $WORK/meta-rzg2
$ sh docs/sample/copyscript/copy_proprietary_softwares.sh $PKGS_DIR

環境変数の設定

$ cd $WORK
$ source poky/oe-init-build-env

confファイルのコピー

$ cd $WORK/build/conf
$ cp ../../meta-rzg2/docs/sample/conf/ek874/linaro-gcc/*.conf ./

パッケージの展開 (oss_pkg.7z.001 - oss_pkg.7z.013 を準備しておく)

$ cd $WORK/build
$ 7z x ./oss_pkg.7z.001

カーネルソースコードのダウンロード

$ cd $WORK/build
$ bitbake linux-renesas -c fetch

ビルド実行

$ bitbake core-image-bsp

他の選択肢

Image namePurposerootfs size
core-image-weston
core-image-minimalMinimal set of components302M
core-image-bspMinimal set of components plus audio support and some useful tools319M
core-image-westonStandard image with graphics support
core-image-qtEnable Qt LGPL version
core-image-hmiHMI demo applications(without full verification)862M

microSDカードへの書き込み

microSD カードに2つのパーティションを作る

partitionformatsize
p1fat最低32M 推奨512Mカーネル置き場
p2ext4最低1Gyocto rootfs

p1にカーネルとデバイスツリーを配置

$ sudo cp build/tmp/deploy/images/ek874/Image  /microsd_p1のマウント先
$ sudo cp build/tmp/deploy/images/ek874/Image-r8a774c0-ek874.dtb  /microsd_p1のマウント先

p2にrootfsを展開

$ sudo tar xf  build/tmp/deploy/images/ek874/core-image-bsp-ek874.tar.gz -C  /microsd_p2のマウント先

CAT874の起動

u-bootにて

=> setenv bootcmd 'fatload mmc 0:1 0x48080000 Image; fatload mmc 0:1 0x48000000 Image-r8a774c0-ek874.dtb; booti 0x48080000 - 0x48000000'
=> setenv bootargs 'root=/dev/mmcblk0p2 rootwait ro'
=> saveenv
=> reset

解説

bootcmd は u-boot起動時に自動実行するコマンドを記述する。コマンドは ; で区切る。

fatload mmc 0:1 0x48080000 Image                     mmcblk0p1 の Image をロード
fatload mmc 0:1 0x48000000 Image-r8a774c0-ek874.dtb  mmcblk0p1 の Image-r8a774c0-ek874.dtb をロード
booti 0x48080000 - 0x48000000                        メモリにジャンプして起動

bootargs はカーネルに渡す起動時引数(カーネルパラメータとも言う)

root=/dev/mmcblk0p2            rootfsは /dev/mmcblk0p2 (microSDの第2 Partition)である
rootwait                       rootデバイスの準備ができるまで待機する
ro                             read-only でマウントする

その他

カーネルソースの位置

./build/tmp/work-shared/ek874/kernel-source

カーネルだけ作り直すには

$ bitbake -c clean linux-renesas
$ bitbake -f -c do_complie linux-renesas     -f を付けて強制再コンパイル
$ bitbake -f -c deploy linux-renesas

関連

Last-modified: 2021-03-24 (水) 18:22:09 (1121d)