Embedded Software - VisionFive - Mender - Yocto - Del 2 et skjermbilde av en datamaskin

VisionFive – Mender – Yocto

Del 2 – Grunnleggende oppsett for å inkludere Mender

Mender Yocto-oppsett

Grunnleggende Mender-oppsett for VisionFive-kort

Vi bruker Yocto Kirkstone-grenen til utvikling. Vi antar at du allerede har et fungerende utviklingsmiljø installert, og har konfigurert miljøet ditt som beskrevet i VisionFive – Mender – Yocto – Del 1.#### Mender-serveroppsett

Installasjonen av Mender-serveren er ikke en del av denne artikkelserien. For testmiljøet vårt installerte vi Mender-serveren ved hjelp av installasjonsveiledningen med docker-compos, som beskrevet i Installasjon med Docker Compose.

Merknad

I strid med veiledningen, bruker vi vårt eget egendefinerte wildcard CA-sertifikat. Hvis du vil gjøre dette, må du kopiere den offentlige og private nøkkelen din til «/mender-server/production/keys-generated/cert» før du kjører kommandoen «./run up -d».

Før du går videre, skal du kunne logge på Mender-serveren uten å få noen feilmeldinger.

Klone meta-mender

Gå til poky-katalogen din – i mitt tilfelle poky-kirkstone – og klon meta-mender-repositoriet. Siden det ennå ikke finnes en Kirkstone-gren, må du klone «master-next» grenen.

cd poky-kirkstone
git clone -b master-next https://github.com/mendersoftware/meta-mender.git

local.conf og bblayers.conf

Kopier bblayers.conf.sample-mender og local.conf.sample-mender fra meta-interelectronix-visionfive-katalogen til conf-katalogen og endre navnene til «bblayers.conf» og «local.conf»:

cp ../poky-kirkstone/meta-interelectronix-visionfive/conf/bblayers.conf.sample-mender conf/bblayers.conf
cp ../poky-kirkstone/meta-interelectronix-visionfive/conf/local.conf.sample-mender conf/local.conf

I bblayers.conf-filen må du justere banen til poky-kirkstone-katalogen din. Slett også linjen «/workdir/poky-kirkstone/meta-interelectronix \» – den er kun nødvendig for psplash-egendefineringen vår.

De viktigste innstillingene i local.conf er:

# mender settings
# The name of the disk image and Artifact that will be built.
# This is what the device will report that it is running, and different updates must have different names
# because Mender will skip installation of an Artifact if it is already installed.
MENDER_ARTIFACT_NAME = "release-1"

INHERIT += "mender-full"

# The version of Mender to build. This needs to match an existing recipe in the meta-mender repository.
#
# Given your Yocto Project version, see which versions of Mender you can currently build here:
# https://docs.mender.io/overview/compatibility#mender-client-and-yocto-project-version
#
# Given a Mender client version, see the corresponding version of the mender-artifact utility:
# https://docs.mender.io/overview/compatibility#mender-clientserver-and-artifact-format
#
# By default this will select the latest version of the tools that is backwards compatible with the
# given Yocto branch.
# If you need an earlier version, or a later version even though it may not be backwards compatible,
# please uncomment the following and set to the required version. If you want to use the bleeding
# edge version, specify "master-git%", but keep in mind that these versions may not be stable:
#
# PREFERRED_VERSION_mender-client = "3.3.0"
# PREFERRED_VERSION_mender-artifact = "3.8.0"
# PREFERRED_VERSION_mender-artifact-native = "3.8.0"
# PREFERRED_VERSION_mender-connect = "2.0.1"

# The following settings to enable systemd are needed for all Yocto
# releases sumo and older.  Newer releases have these settings conditionally
# based on the MENDER_FEATURES settings and the inherit of mender-full above.
DISTRO_FEATURES:append = " systemd"
VIRTUAL-RUNTIME:init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
VIRTUAL-RUNTIME_initscripts = ""

ARTIFACTIMG_FSTYPE = "ext4"

# Example: Memory card storage
MENDER_STORAGE_DEVICE = "/dev/mmcblk0"
# Example: Memory card with 2GiB of storage.
#MENDER_STORAGE_TOTAL_SIZE_MB = "29476"
#MENDER_STORAGE_TOTAL_SIZE_MB = "14738"
MENDER_STORAGE_TOTAL_SIZE_MB = "7369"

MENDER_UBOOT_STORAGE_INTERFACE = "mmc"
MENDER_UBOOT_STORAGE_DEVICE = "0"

MENDER_BOOT_PART = "${MENDER_STORAGE_DEVICE_BASE}1"
MENDER_DATA_PART = "${MENDER_STORAGE_DEVICE_BASE}4"
MENDER_ROOTFS_PART_A = "${MENDER_STORAGE_DEVICE_BASE}2"
MENDER_ROOTFS_PART_B = "${MENDER_STORAGE_DEVICE_BASE}3"

MENDER_FEATURES_ENABLE:append = " mender-uboot mender-image-sd"
MENDER_FEATURES_DISABLE:append = " mender-grub mender-image-uefi"

MACHINE_ESSENTIAL_EXTRA_RDEPENDS:append = " kernel-image kernel-devicetree"

PREFERRED_VERSION:mender-client = "3.3.0"

Egendefiner meta-starfive-bsp

Du bør opprette en gren av meta-starfive-bsp for å legge til innstillingene som trengs for Mender-oppsett.

Egendefineringer trengs i:

– conf/machine/starfive-visionfive-jh7100.conf: Fjern eller kommenter disse to linjene

UBOOT_ENV ?= "uEnv"
UBOOT_ENV_SUFFIX = "txt"

– recipes-bsp/bootfiles/files/uEnv.txt: Erstatt følgende linje for å inkludere Mender-variabler mens du booter

bootcmd=load mmc 0:1 ${kernel_addr_r} @IMAGETYPE@; load mmc 0:1 ${fdt_addr_r} jh7100-starfive-visionfive-v1.dtb; setenv bootargs 'root=${mender_kernel_root} rw rootfstype=ext4 rootwait earlycon console=ttyS0,115200n8'; booti ${kernel_addr_r} - ${fdt_addr_r}

– recipes-bsp/u-boot/u-boot-visionfive_v2022.03.bb: Legg til følgende linjer for å fortelle meta-mender at det brukes en egendefinert u-boot

require recipes-bsp/u-boot/u-boot-mender.inc

PROVIDES += "u-boot"
RPROVIDES_${PN} += "u-boot"

BOOT_FILES:append = " uEnv.txt"

Oppskrifter i meta-interelectronix-visionfive

Noen innstillinger og variabler må angis i egendefinert metalag, slik vi gjør i meta-interelectronix-visionfive.

– recipes-mender/mender-client/mender-client_%.bbappend: Legg til Mender-serverens URL

MENDER_SERVER_URL = "https://mender.interelectronix.com"

– recipes-bsp/u-boot/u-boot-visionfive_%.bbappend: Legg til følgende linjer

MENDER_UBOOT_AUTO_CONFIGURE = "1"
BOOTENV_SIZE = "0x20000"

– recipes-bsp/u-boot-env/*: Legg til denne oppskriften fra den nedlastede zip-filen. Den inneholder to uEnv-filer, som brukes i rotfilsystemet. uEnv_visionfive.txt brukes i rootfs når man booter fra partisjon A og uEnv_visionfive3.txt brukes når man booter fra partisjon B.

– recipes-core/images/vision-five-image-mender.bb: Ta denne bildeoppskriften eller legg til «u-boot-env» I bildeoppskriften din

IMAGE_INSTALL:append = " v4l-utils u-boot-env"

Viktig

Før du kan bitbake bildet, må du egendefinere u-boot som beskrevet i neste del av artikkelserien.

Se hvordan du konfigurerer u-boot for Mender i VisionFive – Mender – Yocto – Del 3.

Opphavsrettslisens

Copyright © 2022 Interelectronix e.K.
Denne Project-kildekoden er lisensiert under GPL-3.0 -lisensen.

Embedded Software - VisionFive - Mender - Yocto et skjermbilde av en datamaskin
Del 1 – Grunnleggende oppsett av Yocto-miljøet

Del 1 av en serie artikler om hvordan man konfigurerer et Yocto-miljø for å opprette Yocto Linux med integrasjon av en Mender-tjener.

Embedded Software - VisionFive - Mender - Yocto et skjermbilde av en datamaskin
Del 4 – Opprett en artefakt for mender

Del 4 av en serie artikler om hvordan man konfigurerer et Yocto-miljø for å opprette Yocto Linux med integrasjon av en Mender-tjener.

Embedded Software - VisionFive - Mender - Yocto et skjermbilde av en datamaskin
Del 3 – u-boot-konfigurasjon for Mender

Del 3 av en serie artikler om hvordan man konfigurerer et Yocto-miljø for å opprette Yocto Linux med integrasjon av en Mender-tjener.