組み込みソフトウェア - VisionFive - Mender - Yocto - パート 3 コンピュータのスクリーンショット

VisionFive - Mender - Yocto

パート3 - Menderのためのu-boot構成

Menderのためのu-bootセットアップ

Menderのためのu-boot構成

開発にはYocto Kirkstoneブランチを使用しています。VisionFive - Mender - Yocto - Part 1およびVisionFive - Mender - Yocto - Part 2で説明されている ように、作業開発環境がすでにインストールされていると仮定します。### u-boot VisionFiveボード

VisionFive RISC-V SBCは、secondBootとu-boot2つのブートローダーを使用します。この仕組みがどう動作するかについては、VisionFive SBC クイックスタートガイドで説明されています。これらの要件を取り扱うことは、- Menderの設定でhttps://github.com/starfive-tech/u-bootからu-bootをパッチする 必要があります -Yoctoでu-bootをビットベイクする必要があります -セカンドステージのブートローダーでアップロードするために、u-bootを手動でコンパイルする必要があります

U-bootにパッチを適用する

まず、starfive-techからu-boot派生のクローンを作成して、使用するコードベースを取得します。

git clone -b JH7100_upstream https://github.com/starfive-tech/u-boot.git
Menderの自動構成パッチ

'MENDER_UBOOT_AUTO_CONFIGURE = "1"'が設定されている場合、Yoctoのmeta-mender-coreはMenderのニーズに合わせて自動的にu-bootをパッチしようとします。ほとんどの場合、このシナリオはボードメーカーの調整のために機能しません。しかし、Menderの自動構成パッチは、Menderクライアントを使用してVisionFive SOCのu-bootを調整するための良い出発点です。自動設定パッチを取得するには、MENDER_UBOOT_AUTO_CONFIGURE =" 1 "設定でu-bootをビットベイクする必要があります。

bitbake u-boot-visionfive
'mender_auto_configured.patch'という名前のパッチファイルが'your-build-directory/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0'ディレクトリに作成されます。####複製されたu-bootにパッチを適用する

次に、このmender_auto_configured.patchをstarfive-techからクローンを作成したu-bootリポジトリに適用します。

cd u-boot-starfive
git apply path-to-patch/mender_auto_configured.patch
##### u
  • u-boot-starfiveをカスタマイズ

u-bootは、Menderサーバーでアーチファクトを展開した後にSOCが起動する必要があるパーティションから正しい情報を取得するために、Mender変数を知る必要があります。したがって、Mender変数を取得し、起動するパーティションを管理するために、ファイル'u-boot-starfive/include/configs/starfive-jh7100.h'をカスタマイズする必要があります。

#define STARLIGHT_FEDORA_BOOTENV 
"bootdir=/boot\0"
"bootenv2=uEnv.txt\0"
"bootenv3=uEnv3.txt\0"
"mmcdev=0\0"
"mmcpart=2\0"

#define CONFIG_EXTRA_ENV_SETTINGS
MENDER_ENV_SETTINGS
STARLIGHT_FEDORA_BOOTENV
"loadaddr=0xa0000000\0"
"loadbootenv=fatload ${mender_uboot_boot} ${loadaddr} ${bootenv}\0"
"ext4bootenv2=ext4load ${mender_uboot_root} ${loadaddr} ${bootdir}/${bootenv2}\0"
"ext4bootenv3=ext4load ${mender_uboot_root} ${loadaddr} ${bootdir}/${bootenv3}\0"
"importbootenv=echo Importing environment from mmc mender_uboot_dev ${mender_uboot_boot} ...; "
"env import -t ${loadaddr} ${filesize}\0"
"mmcbootenv=run mender_setup; "
"echo mender_kernel_root_name ${mender_kernel_root_name} ...; "
"echo mender_boot_part_name ${mender_boot_part_name} ...; "
"setenv bootpart ${mender_uboot_root}; "
"mmc dev ${mender_uboot_dev}; "
"if mmc rescan; then "
"run loadbootenv && run importbootenv; "
"if test ${mender_kernel_root_name} = /dev/mmcblk0p2; then "
"run ext4bootenv2 && run importbootenv; "
"fi; "
"if test ${mender_kernel_root_name} = /dev/mmcblk0p3; then "
"run ext4bootenv3 && run importbootenv; "
"fi; "
"if test -n $uenvcmd; then "
"echo Running uenvcmd ...; "
"run uenvcmd; "
"fi; "
"fi\0"
"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0"
BOOTENV
BOOTENV_SF

'${mender_kernel_root_name}'をテストして、カーネルの読み込みに使用するuEnvファイルを決定します。その後、u-bootから完全なパッチを作成して、Yoctoで使用します。

git diff --patch > ~/Documents/Yocto/meta-interelectronix-visionfive/recipes-bsp/u-boot/files/0004-u-boot.patch

このパッチを'u-boot-visionfive_%.bbappend'にYoctoに含めます:

FILESEXTRAPATHS:prepend := "${THISDIR}/files:"

SRC_URI:append = " \
    file://0004-u-boot.patch \
"
u-bootをビットベイクする

'u-boot-visionfive_%.bbappend'で、MENDER_UBOOT_AUTO_CONFIGURE = "1"をMENDER_UBOOT_AUTO_CONFIGURE = "0"に変更します。これで、Menderの自動構成機能なしに、カスタムパッチを使用してu-bootをビットベイクできます。

bitbake u-boot-visionfive

#####第2段階のブートローダを使用してアップロードするためにu-bootをコンパイル

するこれで、'bitbake u-boot-visionfive'で追加されたパッチを含むディレクトリ'VisionFive-build/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0/git'でu-bootをコンパイルできます。- VisionFive SOC用のu-bootのコンパイル方法については、u-bootとカーネルの コンパイルを参照してください。- VisionFive SOC用のu-bootのアップロード方法については、付録B :ファームウェアとu-bootのアップデートを参照してください。#### Yocto Linuxをベイクビットする

付属のMenderクライアントで、Yocto Linuxをビットベイクする:

bitbake vision-five-image-mender

LinuxイメージをSDカードに書き込んで、VisionFive SOCを起動します。すべて正常に動作する場合、デバイスはMenderサーバーGUIで保留中のデバイスとして表示されます。[デバイス]で、このデバイスの後のソフトウェアアップデートのデプロイメントを管理するために、これを受け入れて含めることができます。Mender用のアーティファクトの作成については、VisionFive - Mender - Yocto - パート 4をご覧ください。

著作権ライセンス

** Copyright © 2022 Interelectronix e.K.** このプロジェクトのソースコードは、** GPL-3.0 **ライセンスの下でライセンスされています。

組込みソフトウェア - VisionFive - Mender - Yocto コンピュータのスクリーンショット
パート1 - Yocto環境の基本的な設定

一連の記事のパート1は、Menderクライアントを統合してYocto Linuxを作成するためのYocto環境を設定する方法。

組込みソフトウェア - VisionFive - Mender - Yocto コンピュータのスクリーンショット
パート2 -Menderを含むための基本的な設定

一連の記事のパート2は、Menderクライアントを統合してYocto Linuxを作成するためのYocto環境を設定する方法を説明します。

組込みソフトウェア - VisionFive - Mender - Yocto コンピュータのスクリーンショット
パート4 -Mender用のアーティファクトの作成

一連の記事のパート4は、Menderクライアントを統合してYocto Linuxを作成するためのYocto環境を設定する方法を説明します。