Software Embedded - VisionFive - Mender - Yocto - Parte 2 uno screenshot di un computer

VisionFive - Mender - Yocto

Parte 2 - Configurazione di base per includere Mender

Configurazione di Mender Yocto

Configurazione di base di Mender per la scheda VisionFive

Stiamo usando il ramo Yocto Kirkstone per lo sviluppo. Supponiamo che tu abbia già un ambiente di sviluppo operativo installato e configuri il tuo ambiente come descritto in VisionFive - Mender - Yocto - Parte 1.#### Configurazione del server Mender

L'installazione del server Mender non fa parte di questa serie di articoli. Per il nostro ambiente di test, abbiamo installato il server Mender utilizzando il tutorial di installazione con docker-compose come descritto in Installazione con Docker Compose.

Nota:

A differenza del tutorial, utilizziamo il nostro certificato CA jolly personalizzato. Se vuoi farlo, devi copiare la tua chiave pubblica e privata in '/mender-server/production/keys-generated/cert' prima di eseguire il comando './run up -d'.

Prima di continuare, dovresti essere in grado di accedere al server Mender senza ricevere alcun messaggio di errore.

Clona meta-mender

Vai nella tua directory poky - nel mio caso poky-kirkstone - e clona il repository meta-mender. Poiché non esiste ancora un ramo di Kirkstone, è necessario clonare il ramo "master-next".

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

local.conf e bblayers.conf

Copia bblayers.conf.sample-mender e local.conf.sample-mender dalla directory meta-interelectronix-visionfive nella directory conf e rinominala in bblayers.conf e 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

Nel file bblayers.conf, devi regolare il percorso della tua directory poky-kirkstone. Cancella anche la riga '/workdir/poky-kirkstone/meta-interelectronix ' - è necessaria solo per la nostra personalizzazione di psplash.

Le impostazioni importanti in local.conf sono:

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

Personalizza meta-starfive-bsp

Si dovrebbe creare un ramo di meta-starfive-bsp per aggiungere le impostazioni necessarie per la configurazione di Mender.

Le personalizzazioni sono necessarie in:

  • conf/machine/starfive-visionfive-jh7100.conf: Rimuovi o commenta queste due righe
UBOOT_ENV ?= "uEnv"
UBOOT_ENV_SUFFIX = "txt"
  • recipes-bsp/bootfiles/files/uEnv.txt: Sostituisci la seguente riga per includere le variabili Mender durante l'avvio
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: Aggiungi le seguenti righe per indicare a meta-mender che viene utilizzato un u-boot personalizzato
require recipes-bsp/u-boot/u-boot-mender.inc

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

BOOT_FILES:append = " uEnv.txt"

Ricette in meta-interelectronix-visionfive

Alcune impostazioni e variabili devono essere impostate in meta-layer personalizzato, come facciamo in meta-interelectronix-visionfive.

  • recipes-mender/mender-client/mender-client_%.bbappend: Aggiungi l'URL del server Mender
MENDER_SERVER_URL = "https://mender.interelectronix.com"
  • recipes-bsp/u-boot/u-boot-visionfive_%.bbappend: Aggiungi le seguenti righe
MENDER_UBOOT_AUTO_CONFIGURE = "1"
BOOTENV_SIZE = "0x20000"
  • recipes-bsp/u-boot-env/*: Aggiungi questa ricetta dal file zip scaricato. Contiene due file uEnv, che vengono utilizzati nel file system root. uEnv_visionfive.txt viene utilizzato in rootfs, quando si avvia dalla partizione A e uEnv_visionfive3.txt viene utilizzato quando si avvia dalla partizione B.

  • recipes-core/images/vision-five-image-mender.bb: Prendi questa ricetta immagine o aggiungi 'u-boot-env' alla tua ricetta immagine

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

Importante

Prima di poter eseguire il bitbake dell'immagine, è necessario personalizzare u-boot come descritto nella parte successiva della serie di articoli.

Scopri come configurare u-boot per Mender in VisionFive - Mender - Yocto - Parte 3.

Licenza sul diritto d'autore

Copyright © 2022 Interelectronix e.K.
Questo codice sorgente del Progetto è concesso in licenza sotto la licenza **GPL-3.0 * *.

Software Embedded - VisionFive - Mender - Yocto uno screenshot di un computer
Parte 1 - Configurazione di base dell'ambiente Yocto

Parte 1 di una serie di articoli, come impostare un ambiente Yocto per creare un Yocto Linux con l'integrazione di un client Mender.

Software Embedded - VisionFive - Mender - Yocto uno screenshot di un computer
Parte 4 - Crea un artefatto per mender

Parte 4 di una serie di articoli, come impostare un ambiente Yocto per creare un Yocto Linux con l'integrazione di un client Mender.

Software Embedded - VisionFive - Mender - Yocto uno screenshot di un computer
Parte 3 - Configurazione di u-boot per Mender

Parte 3 di una serie di articoli, come impostare un ambiente Yocto per creare un Yocto Linux con l'integrazione di un client Mender.