Skip to main content
Sulautetut ohjelmistot - VisionFive - Mender - Yocto - Osa 2: kuvakaappaus tietokoneesta

VisionFive – Mender – Yocto

Osa 2 – Perusmääritys Menderin sisällyttämiseksi

Mender Yocto määritys

Menderin perusmääritys VisionFive-levylle

Käytämme Yocto Kirkstone -haaraa kehitykseen. Oletamme, että olet jo asentanut ja määrittänyt toimivan kehitysympäristön kohdassa VisionFive – Mender – Yocto – Osa 1 kuvatulla tavalla.

Mender-palvelimen määritys

Mender-palvelimen asennus ei kuulu tähän artikkelisarjaan. Testausympäristössämme asensimme Mender-palvelimen käyttäen asennusopetusta Docker Composella, kuten on kuvattu kohdassa Asennus Docker Composella.

Huomaa

Oppaasta poiketen käytämme mukautettua Wildcard CA -sertifikaattia. Jos haluat tehdä niin, sinun täytyy kopioida julkinen ja yksityinen avaimesi kohteeseen '/mender-server/production/keys-generated/cert' ennen kuin suoritat komennon './run up -d'.

Ennen kuin jatkat, sinun pitäisi pystyä kirjautumaan Mender-palvelimelle ilman virheilmoituksia.

Kloonaa meta-mender

Mene poky-hakemistoon – minun tapauksessani poky-kirkstoneen – ja kloonaa meta-mender-säilö. Koska Kirkstone-haaraa ei ole vielä olemassa, sinun täytyy kloonata 'master-next'-haara.

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

local.conf ja bblayers.conf

Kopioi bblayers.conf.sample-mender and local.conf.sample-mender meta-interelectronix-visionfive -hakemistosta conf-hakemistoon ja nimeä se uudelleen nimillä bblayers.conf ja 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

bblayers.conf-tiedostossa sinun on mukautettava polku poky-kirkstone-hakemistoosi.
Poista myös rivi '/workdir/poky-kirkstone/meta-interelectronix ' – sitä tarvitaan vain psplash-mukautuksessamme.

Tärkeimmät asetukset local.conf:ssä ovat:

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

Mukauta meta-starfive-bsp

Sinun tulee luoda meta-starfive-bsp:n haara lisätäksesi Mender-määritykseen tarvittavat asetukset.

Mukautuksia tarvitaan seuraavissa:

– conf/machine/starfive-visionfive-jh7100.conf: Poista nämä kaksi riviä tai kommentoi niitä.

UBOOT_ENV ?= "uEnv"
UBOOT_ENV_SUFFIX = "txt"

– recipes-bsp/bootfiles/files/uEnv.txt: Korvaa seuraava rivi sisällyttääksesi Mender-muuttujat käynnistyksen aikana.

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: Lisää seuraavat rivit kertoaksesi meta-menderille, että käytössä on mukautettu U-Boot.

require recipes-bsp/u-boot/u-boot-mender.inc

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

BOOT_FILES:append = " uEnv.txt"

Reseptit meta-interelectronix-visionfivessä

Jotkin asetukset ja muuttujat on määritettävä mukautetussa metakerroksessa, kuten me teemme meta-interrelectronix-visionfive:ssä.

– recipes-mender/mender-client/mender-client_%.bbappend: Lisää Mender-palvelimen URL-osoite.

MENDER_SERVER_URL = "https://mender.interelectronix.com"

– recipes-bsp/u-boot/u-boot-visionfive_%.bbappend: Lisää seuraavat rivit.

MENDER_UBOOT_AUTO_CONFIGURE = "1"
BOOTENV_SIZE = "0x20000"

– recipes-bsp/u-boot-env/*: Lisää tämä resepti ladatusta zip-tiedostosta. Se sisältää kaksi uEnv-tiedostoa, joita käytetään juuritiedostojärjestelmässä. uEnv_visionfive.txt:ää käytetään rootfs:ssä, kun käynnistetään osiosta A, ja uEnv_visionfive3.txt:ää käytetään kun käynnistetään osiosta B.

– recipes-core/images/vision-five-image-mender.bb: Ota tämä kuvaresepti tai lisää 'u-boot-env' kuvareseptiisi.

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

Tärkeää

Ennen kuin voit suorittaa BitBakella kuvasi, sinun täytyy mukauttaa U-Boot kuten artikkelisarjan seuraavassa osassa kuvataan.

Katso, miten U-boot määritetään Menderille, kohdasta VisionFive – Mender – Yocto – Osa 3.

Tekijänoikeuslisenssi

Copyright © 2022 Interelectronix e.K.
Tämän projektin lähdekoodi on lisensoitu **GPL-3.0 ** -lisenssillä.

Sulautetut ohjelmistot - VisionFive - Mender - Yocto kuvakaappaus tietokoneesta
Osa 1 – Yocto-ympäristön perusmääritys

Osa 1 artikkelisarjasta, jossa käsitellään sitä, miten määrittää Yocto-ympäristö Yocto Linuxin luomiseksi Mender-asiakasohjelman integraatiolla.

Sulautetut ohjelmistot - VisionFive - Mender - Yocto kuvakaappaus tietokoneesta
Osa 4 – Luo artefakti Menderille

Osa 4 artikkelisarjasta, jossa käsitellään sitä, miten määrittää Yocto-ympäristö Yocto Linuxin luomiseksi Mender-asiakasohjelman integraatiolla.

Sulautetut ohjelmistot - VisionFive - Mender - Yocto kuvakaappaus tietokoneesta
Osa 3 – U-Bootin konfigurointi Menderille

Osa 3 artikkelisarjasta, jossa käsitellään sitä, miten määrittää Yocto-ympäristö Yocto Linuxin luomiseksi Mender-asiakasohjelman integraatiolla.