Ugrađeni softver - VisionFive - Mender - Yocto - 3. dio snimka zaslona računala

VisionFive - Mender - Yocto

3. dio - konfiguracija u-boota za Mender

u-boot setup Mender

Konfiguracija u-boot za Mender

Koristimo ogranak Yocto Kirkstone za razvoj. Pretpostavljamo da već imate instalirano radno razvojno okruženje i postavite svoje okruženje kao što je opisano u VisionFive - Mender - Yocto - 1. dio i u VisionFive - Mender - Yocto - 2. dio.

u-boot VisionFive ploča

VisionFive RISC-V SBC koristi dva bootloadera - secondBoot i you-boot. Mehanizmi kako to funkcionira opisani su u VisionFive SBC vodiču za brzi početak rada.

Rukovanje ovim zahtjevima znači da

Krpanje u-boot

Prvo, klonirajte derivat u-boota iz starfive-techa kako biste dobili kodnu bazu za rad.

git clone -b JH7100_upstream https://github.com/starfive-tech/u-boot.git
Mender automatski konfigurirana zakrpa

meta-mender-core u Yoctou pokušava automatski zakrpati u-boot za Menderove potrebe ako je postavljeno 'MENDER_UBOOT_AUTO_CONFIGURE = "1"". U većini slučajeva ovaj scenarij ne funkcionira zbog prilagodbi proizvođača ploča.

Ali automatski konfigurirana zakrpa Mendera dobra je polazna točka za podešavanje u-boota za VisionFive SOC s Mender klijentom.

Da biste dobili automatski konfiguriranu zakrpu, morate bitbake u-boot s postavkom MENDER_UBOOT_AUTO_CONFIGURE = "1":

bitbake u-boot-visionfive

Datoteka zakrpe pod nazivom 'mender_auto_configured.patch' stvara se u direktoriju "your-build-directory/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0".

Primijenite zakrpu na klonirano u-boot

Zatim primjenjujemo ovu mender_auto_configured.zakrpu na klonirani spremište za pokretanje iz starfive-techa.

cd u-boot-starfive
git apply path-to-patch/mender_auto_configured.patch
Prilagodi u-boot-starfive

u-boot mora znati Mender varijable kako bi dobio točne informacije s koje particije SOC treba pokrenuti nakon implementacije artefakta s Mender poslužiteljem.

Stoga moramo prilagoditi datoteku 'u-boot-starfive/include/configs/starfive-jh7100.h' kako bismo dobili Mender varijable i upravljali s koje particije pokrenuti:

#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

Test '${mender_kernel_root_name}' je točka, a zatim odlučite koja je uEnv-datoteka uzeta za učitavanje jezgre.

Nakon toga stvorite potpunu zakrpu iz u-boota za korištenje u Yoctou:

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

Uključi ovu zakrpu u Yocto u 'u-boot-visionfive_%.bbappend':

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

SRC_URI:append = " \
    file://0004-u-boot.patch \
"
bitbake u-boot

U 'u-boot-visionfive_%.bbappend' promjena MENDER_UBOOT_AUTO_CONFIGURE = "1" u MENDER_UBOOT_AUTO_CONFIGURE = "0".

Sada možete bitbake u-boot bez autokonfigurirati funkciju mender i s prilagođenim zakrpama:

bitbake u-boot-visionfive
Compile u-boot za prijenos s bootloaderom drugog stupnja

Sada možete sastaviti u-boot u direktoriju 'VisionFive-build/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0/git', koji sadrži zakrpe dodane s 'bitbake u-boot-visionfive'.

bitbake Yocto Linux

bitbake Yocto Linux s uključenim Mender klijentom:

bitbake vision-five-image-mender

Flash Linux sliku na SD karticu i pokrenuti VisionFive SOC. Ako sve radi dobro, uređaj se pojavljuje kao uređaj na čekanju u GUI-ju Mender poslužitelja.

U odjeljku "UREĐAJI" možete ga prihvatiti i uključiti za upravljanje implementacijama kasnijih softverskih ažuriranja za ovaj uređaj.

Pogledajte kako stvoriti artefakt za Mender u VisionFive - Mender - Yocto - 4. dio.</:code8:></:code7:></:code6:></:code5:></:code4:></:code3:></:code2:></:code1:>

Licenca za autorska prava

Autorska prava © 2022. Interelectronix e.K.
Ovaj izvorni kod projekta licenciran je pod licencom GPL-3.0.

Ugrađeni softver - VisionFive - Mender - Yocto snimka zaslona računala
1. dio - Osnovno postavljanje Yocto okruženja
  1. dio niza članaka, kako postaviti Yocto okruženje za stvaranje Yocto Linuxa uz integraciju Mender klijenta.
Ugrađeni softver - VisionFive - Mender - Yocto snimka zaslona računala
2. dio – osnovna postavka koja uključuje Mender

Drugi dio niza članaka, kako postaviti Yocto okruženje za stvaranje Yocto Linuxa s integracijom Mender klijenta.

Ugrađeni softver - VisionFive - Mender - Yocto snimka zaslona računala
4. dio - Izradite artefakt za mender
  1. dio niza članaka, kako postaviti Yocto okruženje za stvaranje Yocto Linuxa uz integraciju Mender klijenta.