Software încorporat - VisionFive - Mender - Yocto - Partea 2 o captură de ecran a unui computer

VisionFive - Mender - Yocto

Partea 2 - Configurare de bază pentru a include Mender

Configurarea Mender Yocto

Configurarea de bază Mender pentru placa VisionFive

Folosim ramura Yocto Kirkstone pentru dezvoltare. Presupunem că aveți deja un mediu de dezvoltare funcțional instalat și configurat mediul așa cum este descris în VisionFive - Mender - Yocto - Partea 1.

Configurarea serverului Mender

Instalarea serverului Mender nu face parte din această serie de articole. Pentru mediul nostru de testare, am instalat serverul Mender folosind tutorialul de instalare cu docker-compose așa cum este descris în Instalare cu Docker Compose.

Notă

Deviant la tutorial, folosim certificatul nostru personalizat CA wildcard. Dacă doriți să faceți acest lucru, trebuie să copiați cheia publică și privată în "/mender-server/production/keys-generated/cert" înainte de a rula comanda "./run up -d".

Înainte de a continua, ar trebui să vă puteți conecta la serverul Mender fără a primi mesaje de eroare.

Clonați meta-mender

Du-te la directorul poky - în cazul meu poky-kirkstone - și clonează depozitul meta-mender. Deoarece nu există încă o ramură Kirkstone, trebuie să clonați ramura "master-next".

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

local.conf și bblayers.conf

Copiați bblayers.conf.sample-mender și local.conf.sample-mender din directorul meta-interelectronix-visionfive în directorul conf și redenumiți-l în bblayers.conf și 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

În fișierul bblayers.conf trebuie să ajustați calea către directorul poky-kirkstone. De asemenea, ștergeți linia '/workdir/poky-kirkstone/meta-interelectronix ' - este necesară doar pentru personalizarea noastră psplash.

Setările importante din local.conf sunt:

# 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"

Personalizați meta-starfive-bsp

Ar trebui să creați o ramură a meta-starfive-bsp pentru a adăuga setările necesare pentru configurarea Minder.

Particularizările sunt necesare în:

  • conf/machine/starfive-visionfive-jh7100.conf: Eliminați sau comentați aceste două rânduri
UBOOT_ENV ?= "uEnv"
UBOOT_ENV_SUFFIX = "txt"
  • recipes-bsp/bootfiles/files/uEnv.txt: Înlocuiți următoarea linie pentru a include variabilele Mender în timpul pornirii
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: Adăugați următoarele linii pentru a spune meta-mender, că este folosit un u-boot personalizat
require recipes-bsp/u-boot/u-boot-mender.inc

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

BOOT_FILES:append = " uEnv.txt"

Rețete în meta-interelectronix-visionfive

Unele setări și variabile sunt necesare pentru a fi setate în meta-strat personalizat, așa cum facem în meta-interelectronix-visionfive.

  • recipes-mender/mender-client/mender-client_%.bbappend: Adăugați adresa URL a serverului Mender
MENDER_SERVER_URL = "https://mender.interelectronix.com"
  • recipes-bsp/u-boot/u-boot-visionfive_%.bbappend: Adăugați următoarele rânduri
MENDER_UBOOT_AUTO_CONFIGURE = "1"
BOOTENV_SIZE = "0x20000"
  • recipes-bsp/u-boot-env/*: Adăugați această rețetă din fișierul zip descărcat. Acesta conține două fișiere uEnv, care sunt utilizate în sistemul de fișiere rădăcină. uEnv_visionfive.txt este folosit în rootf-uri, la pornirea din partiția A și uEnv_visionfive3.txt este folosit la pornirea din partiția B.

  • recipes-core/images/vision-five-image-mender.bb: Luați această rețetă de imagine sau adăugați "u-boot-env" la rețeta de imagine

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

Important

Înainte de a vă putea bitbake imaginea, trebuie să personalizați u-boot așa cum este descris în următoarea parte a seriei de articole.

Vedeți cum să configurați u-boot pentru Mender în VisionFive - Mender - Yocto - Partea 3.

Licență pentru drepturi de autor

Copyright © 2022 Interelectronix e.K.
Acest cod sursă al Proiectului este licențiat sub licența GPL-3.0.

Software încorporat - VisionFive - Mender - Yocto o captură de ecran a unui computer
Partea 1 - Configurarea de bază a mediului Yocto

Partea 1 dintr-o serie de articole, cum să configurați un mediu Yocto pentru a crea un Yocto Linux cu integrarea unui client Minder.

Software încorporat - VisionFive - Mender - Yocto o captură de ecran a unui computer
Partea 4 - Creați un artefact pentru mender

Partea 4 dintr-o serie de articole, cum să configurați un mediu Yocto pentru a crea un Yocto Linux cu integrarea unui client Minder.

Software încorporat - VisionFive - Mender - Yocto o captură de ecran a unui computer
Partea 3 - configurație u-boot pentru Mender

Partea 3 dintr-o serie de articole, cum să configurați un mediu Yocto pentru a crea un Yocto Linux cu integrarea unui client Minder.