|
本ページは ルネサスエレクトロニクス社の "RZ/G Verified Linux Version 3.0.0-update1" をかみ砕いたものです。 ルネサスエレクトロニクス社のドキュメントを正として、本ページは参考資料として作業をお願いいたします。 ある程度の linux 及び yocto の知識を必要とします。 事前に Renesasからダウンロードしておくファイル †rzg_bsp_v3.0.0.tar.gz (33Mbyte) v300-to-v300update1.patch (62kbyte) RTK0EF0045Z0022AZJ-v1.0_JP.zip oss_pkg_v3.0.0.7z ホストOS †Ubuntu 20.04 LTS 64bit 推奨 debian 10 (buster) 64bit 利用可能 (debian 11 (bullseye) 64bit 利用不可能) 空きHDD容量 100GB必要 (仮想PC環境の場合 HDD容量に注意) 必要なソフトウェアのインストール $ sudo apt-get update $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \ xz-utils debianutils iputils-ping libsdl1.2-dev xterm p7zip-full locales ロケールを作っておく $ 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=~/user_work 一般ユーザのホームディレクトリの ser_work を作業ディレクトリとする $ mkdir -p $WORK 2回目以降は次の章を省略する ファイルの展開 †作業ディレクトリ作り移動する $ cd $WORK yocto基本パッケージの展開 $ tar xf <DOWNLOADDIR>/rzg_bsp_v3.0.0.tar.gz Graphics and the video codec の展開 $ unzip <DOWNLOADDIR>/RTK0EF0045Z0022AZJ-v1.0_JP.zip $ tar xf RTK0EF0045Z0022AZJ-v1.0_JP/meta-rz-features.tar.gz デフォルトでは映像はLVDS出力となっている。HDMI出力に変更する場合はパッチを当てる $ cd meta-renesas/ $ patch -p1 < ../extra/0001-Add-HDMI-support-for-RZ-G2.patch 2回目以降はここから †環境変数の設定 $ cd $WORK $ source poky/oe-init-build-env confファイルのコピー $ cd $WORK/build $ cp ../meta-renesas/docs/template/conf/ek874/*.conf conf/ オプション ossを展開しておく(これを行うとビルドが早い) $ cd $WORK/build $ 7z x ./oss_pkg.7z.001 $ 7z x <DOWNLOADDIR>/oss_pkg_v3.0.0.7z ここまでの作業の結果、オフラインビルドが出来るようになっています。 $WORK/build/conf/local.conf ファイルを編集し BB_NO_NETWORK = "1" に編集してください。↑ ネットワークを使用しない=True 設定 ビルド実行 †$ cd $WORK/build $ bitbake core-image-weston i5-8400 CPU @ 2.80GHz (6 core)で real 82m8.935s user 0m11.972s sys 0m1.232s 他の選択肢 †core-image-minimal Minimal set of components core-image-bsp Minimal set of components plus audio support and some useful tools core-image-weston Standard image with graphics support core-image-qt Enable Qt LGPL version エラー †openssl のビルド中に Can't locate find.pl エラーが出るので # cp ./meta-rzg2/recipes-cip-core/openssl/files/find.pl /etc/perl/ で回避する dtb †device tree blob EK874 Rev.C †
EK874 Rev.E †
EK874 Rev.C ES1 †初期のEK874 で CPUが ES1品の場合。識別方法としてはu-bootにて rev 1.0 と表示されます。 CPU: Renesas Electronics R8A774C0 rev 1.0
microSDカードへの書き込み †cfdiskでmicroSD カードに2つのパーティションを作る # cfdisk /dev/microSDのデバイス名
フォーマット # mkfs.vfat /dev/microsd_p1のデバイス名 # mkfs.ext4 /dev/microsd_p2のデバイス名 p1(第1パーティション)にカーネル(Image)とデバイスツリー(拡張子dtb)をコピー $ sudo cp build/tmp/deploy/images/ek874/Image /microsd_p1のマウント先 $ sudo cp build/tmp/deploy/images/ek874/Image-r8a774c0-ek874.dtb /microsd_p1のマウント先 CAT874リビジョンと CPUバージョンについて
u-bootの起動メッセージからも判定できます U-Boot 2018.09 (Dec 09 2019 - 08:01:25 +0000) CPU: Renesas Electronics R8A774C0 rev 1.1 Model: Silicon Linux EK874 RZ/G2E board CPU Ver1.0 (初期ES品)を使用する場合は Image-r8a774c0-es10-ek874.dtb を使用してください。 p2にrootfsを展開 $ sudo tar xf build/tmp/deploy/images/ek874/core-image-bsp-ek874.tar.gz -C /microsd_p2のマウント先 CAT874の起動 †u-bootにて Rev.A, Rev.B, Rev.C の場合 => 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 Rev.D, Rev.E の場合 => setenv bootcmd 'fatload mmc 0:1 0x48080000 Image; fatload mmc 0:1 0x48000000 Image-r8a774c0-ek874.e.dtb; booti 0x48080000 - 0x48000000' => setenv bootargs 'root=/dev/mmcblk1p2 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 (microSD0の第2 Partition)である (Rev.C) root=/dev/mmcblk1p2 rootfsは /dev/mmcblk0p2 (microSD1の第2 Partition)である (Rev.E) rootwait rootデバイスの準備ができるまで待機する ro read-only でマウントする その他 †カーネルだけ作り直すには †カーネルソースコードのダウンロード $ cd $WORK/build $ export LANG=en_US.UTF-8 $ bitbake linux-renesas -c fetch カーネルソースの位置 ./build/tmp/work-shared/ek874/kernel-source 準備 $ sudo apt-get install libncurses5-dev libevent-dev tmux $ cd $WORK $ source poky/oe-init-build-env $ export LANG=en_US.UTF-8 $ bitbake linux-renesas -c clean クリーン(必要に応じて) $ bitbake linux-renesas -c menuconfig config $ bitbake linux-renesas -f -c do_compile -f を付けて強制再コンパイル $ bitbake linux-renesas -f -c deploy $ ls ./tmp/deploy/images/ek874/ u-bootだけ作り直すには †$ cd $WORK $ source poky/oe-init-build-env $ export LANG=en_US.UTF-8 $ bitbake u-boot -c clean クリーン(必要に応じて) $ bitbake u-boot -f -c do_compile -f を付けて強制再コンパイル $ bitbake u-boot -f -c deploy ソースのパス $WORK/build/tmp/work/ek874-poky-linux/u-boot/1_v2018.09+gitAUTOINC+d867a25a9e-r0/git 関連 † |