Beágyazott szoftver - VisionFive - Mender - Yocto - 3. rész: egy számítógép képernyőképe

VisionFive - Mender - Yocto

3. rész - u-boot konfiguráció Mender számára

u-boot beállítás Mender

u-boot konfiguráció Mender számára

A Yocto Kirkstone ágat használjuk a fejlesztéshez. Feltételezzük, hogy már telepített egy működő fejlesztőkörnyezetet, és beállítja a környezetet a VisionFive - Mender - Yocto - 1. rész és a VisionFive - Mender - Yocto - 2. rész leírásában leírtak szerint.

u-boot VisionFive kártya

A VisionFive RISC-V SBC két rendszerbetöltőt használ - egy secondBoot és you-boot. Ennek működését a VisionFive SBC gyors üzembe helyezési útmutatója ismerteti.

Ezeknek a követelményeknek a kezelése azt jelenti, hogy

  • Javítanunk kell az u-bootot https://github.com/starfive-tech/u-boot-ből a Mender beállításaival
  • Meg kell sütni U-Boot Yocto-val
  • manuálisan kell lefordítanunk az u-bootot a feltöltéshez a második fokozatú bootloaderrel

Az u-boot javítása

Először is, klónozd az u-boot származékot a starfive-tech-ből, hogy kódbázist kapj, amivel dolgozhatsz.

git clone -b JH7100_upstream https://github.com/starfive-tech/u-boot.git
Mender automatikusan konfigurált javítás

A Yocto meta-mender-core megpróbálja automatikusan javítani az u-bootot Mender igényeihez, ha 'MENDER_UBOOT_AUTO_CONFIGURE = "1"' van beállítva. A legtöbb esetben ez a forgatókönyv nem működik a táblagyártók módosításai miatt.

De a Mender automatikusan konfigurált javítása jó kiindulópont a VisionFive SOC u-boot beállításához a Mender klienssel.

Az automatikusan konfigurált javítás megszerzéséhez bitbake u-bootot kell készítenie MENDER_UBOOT_AUTO_CONFIGURE = "1" beállítással:

bitbake u-boot-visionfive

A "mender_auto_configured.patch" nevű javítófájl a "your-build-directory/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0" könyvtárban jön létre.

Javítás alkalmazása klónozott u-bootra

Ezután ezt a mender_auto_configured.patch-et alkalmazzuk a starfive-tech klónozott u-boot tárolójára.

cd u-boot-starfive
git apply path-to-patch/mender_auto_configured.patch
Az u-boot-starfive testreszabása

Az u-boot ismernie kell a Mender változókat, hogy megkapja a helyes információkat, hogy az SOC-nak melyik partícióról kell elindulnia, miután üzembe helyezett egy összetevőt a Mender-kiszolgálóval.

Tehát testre kell szabnunk az 'u-boot-starfive/include/configs/starfive-jh7100.h' fájlt, hogy megkapjuk a Mender változókat és kezeljük, hogy melyik partícióról induljunk:

#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

Tesztelje a '${mender_kernel_root_name}' parancsot, majd döntse el, hogy melyik uEnv-fájlt használja a rendszermag betöltéséhez.

Ezután hozzon létre egy teljes javítást az u-boot-ból a Yocto-ban való használatához:

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

Foglalja bele ezt a javítást a Yocto-ba az 'u-boot-visionfive_%.bbappend' fájlba:

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

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

Az 'u-boot-visionfive_%.bbappend' beállításnál módosítsa a MENDER_UBOOT_AUTO_CONFIGURE = "1" értéket MENDER_UBOOT_AUTO_CONFIGURE = "0" értékre.

Most már bitbake u-boot a mender automatikus configure funkciója nélkül és az egyéni javításokkal:

bitbake u-boot-visionfive
U-boot fordítása feltöltésre második fokozatú rendszerbetöltővel

Most már lefordíthatja az u-bootot a 'VisionFive-build/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0/git' könyvtárban, amely tartalmazza a 'bitbake u-boot-visionfive' által hozzáadott javításokat.

bitbake Yocto Linux

bitbake Yocto Linux mellékelt Mender klienssel:

bitbake vision-five-image-mender

Flash a Linux képet az SD kártyára, és indítsa el a VisionFive SOC-t. Ha minden jól működik, az eszköz függőben lévő eszközként jelenik meg a Mender szerver grafikus felhasználói felületén.

Az "ESZKÖZÖK" alatt elfogadhatja és felveheti az eszköz későbbi szoftverfrissítéseinek központi telepítésének kezeléséhez.

Nézze meg, hogyan hozhat létre műterméket Mender számára a VisionFive - Mender - Yocto - 4. részben.</:code8:></:code7:></:code6:></:code5:></:code4:></:code3:></:code2:></:code1:>

Szerzői jogi licenc

Copyright © 2022 Interelectronix e.K.
Ez a Project forráskód a GPL-3.0 licenc alatt van licencelve.

Beágyazott szoftver - VisionFive - Mender - Yocto: képernyőkép egy számítógépről
1. rész - A Yocto környezet alapbeállítása

Egy cikksorozat 1. része, hogyan állítsunk be egy Yocto környezetet egy Yocto Linux létrehozásához egy Mender kliens integrálásával.

Beágyazott szoftver - VisionFive - Mender - Yocto: képernyőkép egy számítógépről
2. rész - Alapvető beállítás a Mender felvételéhez

Egy cikksorozat 2. része, hogyan állítsunk be egy Yocto környezetet egy Yocto Linux létrehozásához egy Mender kliens integrálásával.

Beágyazott szoftver - VisionFive - Mender - Yocto: képernyőkép egy számítógépről
4. rész - Hozzon létre egy összetevőt a mender számára

Egy cikksorozat 4. része, hogyan állítsunk be egy Yocto környezetet egy Yocto Linux létrehozásához egy Mender kliens integrálásával.