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

VisionFive - Mender - Yocto

2. rész - Alapvető beállítás a Mender felvételéhez

Mender Yocto beállítása

Alapvető Mender beállítás a VisionFive táblához

A Yocto Kirkstone ágat használjuk a fejlesztéshez. Feltételezzük, hogy már telepítve van egy működő fejlesztőkörnyezet, és állítsa be a környezetet a VisionFive - Mender - Yocto - Part 1 részben leírtak szerint.

Mender szerver beállítása

A Mender-kiszolgáló telepítése nem része ennek a cikksorozatnak. Tesztkörnyezetünkben a Mender-kiszolgálót a telepítési oktatóanyag használatával telepítettük docker-compose a Telepítés a Docker Compose-szalcímű témakörben leírtak szerint.

Jegyzet

Az oktatóanyagtól eltérően az egyéni helyettesítő karakteres hitelesítésszolgáltatói tanúsítványunkat használjuk. Ha ezt szeretné tenni, a "./run up -d" parancs futtatása előtt át kell másolnia a nyilvános és titkos kulcsot a "/mender-server/production/keys-generated/cert" mappába.

A folytatás előtt be kell tudnia jelentkezni a Mender szerverre anélkül, hogy hibaüzeneteket kapna.

Meta-mender klónozása

Menj a poky könyvtáradba - az én esetemben poky-kirkstone - és klónozd a meta-mender tárolót. Mivel még nincs Kirkstone-ág, klónoznia kell a "master-next" ágat.

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

local.conf és bblayers.conf

Másold át a bblayers.conf.sample-mender és local.conf.sample-mender fájlokat a meta-interelectronix-visionfive könyvtárból a conf könyvtárba, és nevezd át bblayers.conf és local.conf névre:

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

A bblayers.conf fájlban be kell állítanod a poky-kirkstone könyvtár elérési útját. Töröld a '/workdir/poky-kirkstone/meta-interelectronix ' sort is - ez csak a psplash testreszabásához szükséges.

A local.conf fontos beállításai a következők:

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

A meta-starfive-bsp testreszabása

Létre kell hoznia a meta-starfive-bsp ágát, hogy hozzáadja a Mender beállításához szükséges beállításokat.

A testreszabásokra a következő helyeken van szükség:

  • conf/machine/starfive-visionfive-jh7100.conf: Töröld vagy kommentáld ezt a két sort
UBOOT_ENV ?= "uEnv"
UBOOT_ENV_SUFFIX = "txt"
  • recipes-bsp/bootfiles/files/uEnv.txt: Cserélje ki a következő sort a Mender változók beillesztésére indítás közben
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: Adja hozzá a következő sorokat, hogy jelezze a meta-mendernek, hogy egyéni u-boot van használva
require recipes-bsp/u-boot/u-boot-mender.inc

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

BOOT_FILES:append = " uEnv.txt"

Receptek meta-interelectronix-visionfive-ban

Néhány beállítást és változót egyéni metarétegben kell beállítani, ahogy azt a meta-interelectronix-visionfive esetében is tesszük.

  • recipes-mender/mender-client/mender-client_%.bbappend: Adja hozzá a Mender szerver URL-címét
MENDER_SERVER_URL = "https://mender.interelectronix.com"
  • recipes-bsp/u-boot/u-boot-visionfive_%.bbappend: Adja hozzá a következő sorokat
MENDER_UBOOT_AUTO_CONFIGURE = "1"
BOOTENV_SIZE = "0x20000"
  • recipes-bsp/u-boot-env/*: Adja hozzá ezt a receptet a letöltött zip fájlból. Két uEnv-fájlt tartalmaz, amelyeket a gyökér fájlrendszerben használnak. uEnv_visionfive.txt rootfs-ben használatos, amikor az A partícióról indít, és uEnv_visionfive3.txt a B partícióról történő indításkor.

  • receptek-mag/képek/vision-five-image-mender.bb: Vedd ezt a képreceptet, vagy add hozzá az "u-boot-env" -t a kép receptjéhez

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

Fontos

Mielőtt bitsüthetné a képet, testre kell szabnia az u-bootot a cikksorozat következő részében leírtak szerint.

Nézze meg, hogyan állíthatja be az u-bootot Mender számára a VisionFive - Mender - Yocto - 3. részben.

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
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.

Beágyazott szoftver - VisionFive - Mender - Yocto: képernyőkép egy számítógépről
3. rész - u-boot konfiguráció Mender számára

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