Embedded Software - VisionFive - Mender - Yocto - Part 2 isang screenshot ng isang computer

VisionFive - Mender - Yocto

Part 2 - Basic setup upang isama ang Mender

Mender Yocto setup

Basic Mender setup para sa VisionFive board

Ginagamit namin ang sangay ng Yocto Kirkstone para sa pag unlad. Ipinapalagay namin na mayroon ka nang kapaligiran sa pag-unlad ng trabaho na naka-install at naka-set up ng iyong kapaligiran tulad ng inilarawan sa VisionFive - Mender - Yocto - Part 1.

Pag setup ng server ng Mender

Ang pag install ng Mender server ay hindi bahagi ng serye ng artikulong ito. Para sa aming kapaligiran sa pagsubok, na install namin ang Mender server gamit ang tutorial sa pag install na may docker compose tulad ng inilarawan sa Pag install sa Docker Compose.

Tala

Deviant sa tutorial, ginagamit namin ang aming pasadyang wildcard CA certificate. Kung nais mong gawin ito, kailangan mong kopyahin ang iyong pampubliko at pribadong susi sa '/mender-server/production/keys-generated / cert' bago mo patakbuhin ang command na './run up -d'.

Bago ka magpatuloy, dapat mong magagawang mag log in sa Mender server nang hindi nakakakuha ng anumang mga mensahe ng error.

Clone meta-mender

Pumunta sa iyong poky directory - sa aking kaso poky-kirkstone - at clone ang meta-mender repository. Bilang wala pang sangay ng Kirkstone, kailangan mong i clone ang 'master susunod' na branch.

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

local.conf at bblayers.conf

Kopyahin bblayers.conf.sample-mender at local.conf.sample-mender mula sa meta-interelectronix-visionfive directory sa conf directory at palitan ang pangalan nito sa bblayers.conf at 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

Sa bblayers.conf file kailangan mong ayusin ang landas sa iyong poky-kirkstone directory. Tanggalin din ang linya na '/workdir/poky-kirkstone/meta-interelectronix ' - kailangan lamang ito para sa aming psplash customization.

Ang mga mahahalagang setting sa local.conf ay:

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

Ipasadya ang meta-starfive-bsp

Dapat kang lumikha ng isang branch ng meta-starfive-bsp upang idagdag ang mga setting na kailangan para sa Mender setup.

Kailangan ang mga pagpapasadya sa:

  • conf/machine/starfive-visionfive-jh7100.conf: Alisin o ikomento ang dalawang linya na ito
UBOOT_ENV ?= "uEnv"
UBOOT_ENV_SUFFIX = "txt"
  • recipes-bsp/bootfiles/files/uEnv.txt: Palitan ang sumusunod na linya upang isama ang Mender variables habang nag-boot
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: Idagdag ang sumusunod na mga linya upang sabihin sa meta-mender, na ang isang pasadyang u-boot ay ginagamit
require recipes-bsp/u-boot/u-boot-mender.inc

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

BOOT_FILES:append = " uEnv.txt"

Mga recipe sa meta-interelectronix-visionfive

Ang ilang mga setting at variable ay kinakailangan upang itakda sa pasadyang meta layer, tulad ng ginagawa namin sa meta interelectronix-visionfive.

  • recipes-mender/mender-client/mender-client_%.bbappend: Idagdag ang URL ng Mender server
MENDER_SERVER_URL = "https://mender.interelectronix.com"
  • recipes-bsp/u-boot/u-boot-visionfive_%.bbappend: Idagdag ang sumusunod na mga linya
MENDER_UBOOT_AUTO_CONFIGURE = "1"
BOOTENV_SIZE = "0x20000"
  • recipes-bsp/u-boot-env/*: Idagdag ang recipe na ito mula sa na-download na zip file. Naglalaman ito ng dalawang uEnv-file, na ginagamit sa root file system. uEnv_visionfive.txt ay ginagamit sa rootfs, kapag booting mula sa partition A at uEnv_visionfive3.txt ay ginagamit kapag booting mula sa partition B.

  • recipes-core/images/vision-five-image-mender.bb: Dalhin ang recipe ng imaheng ito o idagdag ang 'u-boot-env' sa iyong recipe ng imahe

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

Mahalaga

Bago mo mai bitbake ang iyong imahe, kailangan mong ipasadya ang u boot tulad ng inilarawan sa susunod na bahagi ng serye ng artikulo.

Tingnan kung paano mag-setup ng u-boot para sa Mender sa VisionFive - Mender - Yocto - Part 3.

Lisensya sa Copyright

Copyright © 2022 Interelectronix e.K.
Ang source code na ito ng Proyekto ay lisensyado sa ilalim ng GPL-3.0 lisensya.

Embedded Software - VisionFive - Mender - Yocto isang screenshot ng isang computer
Part 1 - Basic setup ng Yocto kapaligiran

Part 1 ng isang serye ng mga artikulo, kung paano mag set up ng isang Yocto kapaligiran upang lumikha ng isang Yocto Linux sa pagsasama ng isang Mender client.

Embedded Software - VisionFive - Mender - Yocto isang screenshot ng isang computer
Part 4 - Lumikha ng isang artifact para sa mender

Part 4 ng isang serye ng mga artikulo, kung paano mag set up ng isang Yocto kapaligiran upang lumikha ng isang Yocto Linux sa pagsasama ng isang Mender client.

Embedded Software - VisionFive - Mender - Yocto isang screenshot ng isang computer
Part 3 - u-boot configuration para sa Mender

Part 3 ng isang serye ng mga artikulo, kung paano mag set up ng isang Yocto kapaligiran upang lumikha ng isang Yocto Linux sa pagsasama ng isang Mender client.