Mender Yocto beállítása
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.
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.
Szerzői jogi licenc
Copyright © 2022 Interelectronix e.K.
Ez a Project forráskód a GPL-3.0 licenc alatt van licencelve.
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.
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.
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.