Mender Yocto setup
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'.
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.
Lisensya sa Copyright
Copyright © 2022 Interelectronix e.K.
Ang source code na ito ng Proyekto ay lisensyado sa ilalim ng GPL-3.0 lisensya.
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.
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.
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.