Sulautetut ohjelmistot - VisionFive - Mender - Yocto - Osa 3: kuvakaappaus tietokoneesta

VisionFive – Mender – Yocto

Osa 3 – U-Bootin konfigurointi Menderille

U-Bootin määritys Mender

U-Bootin konfigurointi Menderille

Käytämme Yocto Kirkstone -haaraa kehitykseen. Oletamme, että olet jo asentanut ja määrittänyt toimivan kehitysympäristön kohtien VisionFive – Mender – Yocto – Osa 1 ja VisionFive – Mender – Yocto – Osa 2 mukaisesti.

U-Boot VisionFive -taulu

VisionFive RISC-V SBC käyttää kahta käynnistyslatainta – secondbootia ja U-Bootia. Tämän toiminnan mekanismit on kuvattu VisionFive SBC Quick Start Guide -oppaassa.

Näiden vaatimusten noudattaminen tarkoittaa, että

– Meidän on korjattava U-Boot osoitteesta https://github.com/starfive-tech/u-boot Mender-asetuksilla. – Meidän on suoritettava U-Boot BitBakella Yoctolla. – Meidän on käännettävä U-Boot manuaalisesti toisen vaiheen käynnistyslataimella lataamiseksi

U-Bootin korjaus

Kloonaa ensin U-Boot-johdannainen starfive-tech:stä saadaksesi koodipohjan, jonka parissa työskennellä.

git clone -b JH7100_upstream https://github.com/starfive-tech/u-boot.git
Menderin automaattisesti konfiguroitu korjaus

meta-mender-core Yoctossa yrittää korjata U-Bootin automaattisesti Menderin tarpeita varten, jos 'MENDER_UBOOT_AUTO_CONFIGURE = "1"' on määritetty. Useimmissa tapauksissa tämä skenaario ei toimi lautavalmistajien säätöjen vuoksi.

Automaattisesti konfiguroitu Menderin korjaus on kuitenkin hyvä lähtökohta U-Bootin säätämiseksi VisionFive SOC with Mender -asiakasohjelmalle.

Saadaksesi automaattisesti konfiguroidun korjauksen sinun on suoritettava U-Boot BitBakella asetuksella MENDER_UBOOT_AUTO_CONFIGURE = "1":

bitbake u-boot-visionfive

Luodaan korjaustiedosto 'mender_auto_configured.patch' hakemistossa 'your-build-directory/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0'.

Sovella korjausta kloonattuun U-Bootiin

Seuraavaksi sovellamme tätä kohdetta mender_auto_configured.patch kloonattuun U-Boot-hakemistoon starfive-tech:stä.

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

U-Bootin on tiedettävä Mender-muuttujat saadakseen oikeat tiedot siitä, mistä osiosta SOC käynnistetään sen jälkeen, kun artefakti on otettu käyttöön Mender-palvelimella.

Näin ollen meidän täytyy muokata tiedostoa 'u-boot-starfive/include/configs/starfive-jh7100.h' saadaksemme Mender-muuttujat ja hallinnoidaksemme, mistä osiosta käynnistetään:

#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

Testi '${mender_kernel_root_name}' on piste, ja päätä sitten, mikä uEnv-tiedosto otetaan kernelin lataamiseksi.

Luo tämän jälkeen täydellinen korjaus U-Bootista sen käyttämiseksi Yoctossa:

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

Sisällytä tämä korjaus Yoctoon kohteessa 'u-boot-visionfive_%.bbappend':

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

SRC_URI:append = " \
    file://0004-u-boot.patch \
"
Suorita U-Boot BitBakella

Kohteessa 'u-boot-visionfive_%.bbappend' muuta MENDER_UBOOT_AUTO_CONFIGURE = "1" kohteeksi MENDER_UBOOT_AUTO_CONFIGURE = "0".

Nyt voit suorittaa U-Bootin BitBakella ilman Menderin automaattisen konfiguroinnin toimintoa ja mukauttujen korjausten kanssa:

bitbake u-boot-visionfive
Käännä U-Boot ladattavaksi toisen vaiheen käynnistyslataimella

Nyt voit kääntää U-Bootin hakemistossa 'VisionFive-build/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0/git', joka sisältää korjaukset lisättynä kohteella 'BitBake u-boot-visionfive'.

– VisionFive SOC:n U-Bootin kääntäminen kuvataan kohdassa U-Bootin ja kernelin kääntäminen. – U-Bootin lataaminen VisionFive SOC:lle kuvataan kohdassaLiite B: Laiteohjelmiston ja U-Bootin päivittäminen.

Suorita Yocto Linux BitBakella

Suorita Yocto Linux BitBakella sisältyvällä Mender-asiakasohjelmalla:

bitbake vision-five-image-mender

Flashaa Linux-kuva SD-kortille ja käynnistä VisionFive SOC. Jos kaikki toimii hyvin, laite näkyy odottavana laitteena Mender-palvelimen graafisessa käyttöliittymässä.

Kohdassa 'DEVICES' voit hyväksyä ja sisällyttää sen hallinnoidaksesi tämän laitteen myöhempiä ohjelmistopäivitysten käyttöönottoja.

Katso, miten voit luoda artefaktin Menderille, kohdasta VisionFive – Mender – Yocto – Osa 4.

Tekijänoikeuslisenssi

Copyright © 2022 Interelectronix e.K.
Tämän projektin lähdekoodi on lisensoitu **GPL-3.0 ** -lisenssillä.

Sulautetut ohjelmistot - VisionFive - Mender - Yocto kuvakaappaus tietokoneesta
Osa 1 – Yocto-ympäristön perusmääritys

Osa 1 artikkelisarjasta, jossa käsitellään sitä, miten määrittää Yocto-ympäristö Yocto Linuxin luomiseksi Mender-asiakasohjelman integraatiolla.

Sulautetut ohjelmistot - VisionFive - Mender - Yocto kuvakaappaus tietokoneesta
Osa 2 – Perusmääritys Menderin sisällyttämiseksi

Osa 2 artikkelisarjasta, jossa käsitellään sitä, miten määrittää Yocto-ympäristö Yocto Linuxin luomiseksi Mender asiakasohjelman integraatiolla.

Sulautetut ohjelmistot - VisionFive - Mender - Yocto kuvakaappaus tietokoneesta
Osa 4 – Luo artefakti Menderille

Osa 4 artikkelisarjasta, jossa käsitellään sitä, miten määrittää Yocto-ympäristö Yocto Linuxin luomiseksi Mender-asiakasohjelman integraatiolla.