|
CAT874_yocto_v3.0.3 †本ページは ルネサスエレクトロニクス社の RZ/G Verified Linux Package Version 3.0.3 (R01US0553EJ0107) Apr 21, 2023 をかみ砕いたものです。 ルネサスエレクトロニクス社のドキュメントを正として、本ページは参考資料として作業をお願いいたします。 ある程度の linux 及び yocto の知識を必要とします。ノーサポートでお願いします。 事前に Renesasからダウンロードしておくファイル †RTK0EF0045Z0021AZJ-v3.0.3.zip このzipの中に rzg_bsp_v3.0.3.tar.gz (34Mbyte) が含まれている oss_pkg_v3.0.3.7z (約1.6Gbyte) RTK0EF0045Z0022AZJ-v1.0.2_JP.zip (evaluation version. time limitation. It stops in a few hours after start running) または RTK0EF0045Z0023AZJ-v1.0.2_JP.zip (production version) これらパッケージをダウンロードして保存したディレクトリを 環境変数 $DOWNLAOD とする。 ホスト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 \ flex bison u-boot-tools bc libncurses-dev libssl-dev ロケールを作っておく $ 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 $DOWNLOAD/rzg_bsp_v3.0.1.tar.gz Graphics and the video codec の展開 $ unzip $DOWNLOAD/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 オプション ossを展開しておく(これを行うとビルドが早い) $ cd $WORK $ mkdir build $ cd build $ 7z x $DOWNLOAD/oss_pkg_rzg_v3.0.3.7z 2回目以降はここから †環境変数の設定 $ cd $WORK $ source poky/oe-init-build-env confファイルのコピー $ cd $WORK/build $ cp ../meta-renesas/meta-rzg2h/docs/template/conf/ek874/* conf/ ここまでの作業の結果、オフラインビルドが出来るようになっています。 $ vi $WORK/build/conf/local.conf ファイルを編集し BB_NO_NETWORK = "1" に編集してください。↑ ネットワークを使用しない=True 設定 レイヤの追加 †必要に応じてレイヤを追加してください Graphics グラフィックスライブラリが必要な場合 $ bitbake-layers add-layer ../meta-rz-features/meta-rz-graphics Video Codec: $ bitbake-layers add-layer ../meta-rz-features/meta-rz-codecs Qt: $ bitbake-layers add-layer ../meta-qt5 $ bitbake-layers add-layer ../meta-rz-features/meta-rz-graphics $ bitbake-layers add-layer ../meta-rz-features/meta-rz-codecs Docker: $ bitbake-layers add-layer ../meta-openembedded/meta-filesystems $ bitbake-layers add-layer ../meta-openembedded/meta-networking $ bitbake-layers add-layer ../meta-virtualization $ cd ../meta-renesas $ patch -p1 < ../extra/0001-dynamic-layers-virtualization-layer-add-WA-to-remove.patch $ cd ../build ビルド実行 †$ cd $WORK/build $ bitbake core-image-weston i5-8400 CPU @ 2.80GHz (6 core)で real 125m8.777s user 0m16.808s sys 0m1.765s 他の選択肢 †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 成果物は $WORK/build/tmp/deploy/images/ek874 に出来上がります。 kernel †
dtb †
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-weston-ek874.tar.bz2 -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-revc.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.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 (microSD0の第2 Partition)である 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_v2021.10+gitAUTOINC+711334a179-r0/git yoctoを使わずに u-boot をビルドするなら、先にSDK を通しておいてから $ make -j4 CROSS_COMPILE=aarch64-poky-linux- silinux_ek874_defconfig $ make -j4 CROSS_COMPILE=aarch64-poky-linux- 生成物 ls -ltr で確認 u-boot.bin バイナリ u-boot.elf JTAGデバッガではこちらをロード ATF (arm trusted firmware)だけ作り直すには †$ cd $WORK $ source poky/oe-init-build-env $ export LANG=en_US.UTF-8 $ bitbake optee-os -c clean クリーン(必要に応じて) $ bitbake optee-os -f -c do_compile -f を付けて強制再コンパイル $ bitbake optee-os -f -c deploy $ bitbake trusted-firmware-a -c clean クリーン(必要に応じて) $ bitbake trusted-firmware-a -f -c do_compile -f を付けて強制再コンパイル $ bitbake trusted-firmware-a -f -c deploy ソースのパス $WORK/build/tmp/work/ek874-poky-linux/trusted-firmware-a/v2.7+git-r0/git SDK †$ bitbake core-image-minimal -c populate_sdk $ cd $WORK/build/tmp/deploy/sdk/ $ su # ./poky-glibc-x86_64-core-image-minimal-aarch64-ek874-toolchain-3.1.21.sh Enter target directory for SDK (default: /opt/poky/3.1.21): [Enterを押す] Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g. $ . /opt/poky/3.1.17/environment-setup-aarch64-poky-linux $ . /opt/poky/3.1.17/environment-setup-armv7vet2hf-neon-vfpv4-pokymllib32-linux-gnueabi 関連 † |