Configurarea Mender Yocto
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".
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.
Licență pentru drepturi de autor
Copyright © 2022 Interelectronix e.K.
Acest cod sursă al Proiectului este licențiat sub licența GPL-3.0.
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.
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.
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.