Gömülü Yazılım - VisionFive - Mender - Yocto - Bölüm 2: Bir bilgisayarın ekran görüntüsü

VisionFive - Mender - Yocto

Bölüm 2 - Mender'i içerecek şekilde temel kurulum

Mender Yocto kurulumu

VisionFive kartı için temel Mender kurulumu

Geliştirme için Yocto Kirkstone dalını kullanıyoruz. VisionFive - Mender - Yocto - Bölüm 1'de açıklandığı üzere halihazırda çalışan kurulu bir geliştirme ortamınız olduğunu ve bu ortamı ayarladığınızı varsayıyoruz.

Mender sunucu kurulumu

Mender sunucusunun kurulumu bu makale dizisinde açıklanmamaktadır. Docker Compose ile kurulum makalesinde açıklandığı üzere test ortamımız için, Mender sunucusunu kurulum öğreticisini kullanarak docker-compose ile kurduk.

Not

Öğreticiden farklı olarak, özel joker CA sertifikamızı kullanıyoruz. Bunu yapmak istiyorsanız "./run up -d" komutunu çalıştırmadan önce ortak ve özel anahtarınızı "/mender-server/production/keys-generated/cert" dosyasına kopyalamanız gerekir.

Devam etmeden önce herhangi bir hata mesajı almadan Mender sunucusuna giriş yapabilmelisiniz.

meta-mender kopyalama

poky dizininize gidin (benim durumumda poky-kirkstone) ve meta-mender deposunu kopyalayın. Henüz bir Kirkstone dalı olmadığı için "master-next" dalını kopyalamak zorundasınız.

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

local.conf ve bblayers.conf

bblayers.conf.sample-mender ve local.conf.sample-mender dosyalarını meta-interelectronix-visionfive dizininden conf dizinine kopyalayın ve bblayers.conf ve local.conf: olarak yeniden adlandırın.

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 dosyasında, poky-kirkstone dizininizin yolunu ayarlamanız gerekir. Ayrıca "/workdir/poky-kirkstone/meta-interelectronix " satırını da silin, bu sadece bizim psplash özelleştirmemiz için gereklidirlocal.conf'daki önemli ayarlar şunlardır:

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

meta-starfive-bsp özelleştirme

Mender kurulumu için gereken ayarları eklemek için bir meta-starfive-bsp dalı oluşturmalısınız.

Özelleştirmeler şu durumlarda gereklidir:

  • conf/machine/starfive-visionfive-jh7100.conf: Bu iki satırı kaldırın veya açıklama girin
UBOOT_ENV ?= "uEnv"
UBOOT_ENV_SUFFIX = "txt"
  • recipes-bsp/bootfiles/files/uEnv.txt: Önyükleme sırasında Mender değişkenlerini dahil etmek için aşağıdaki satırı değiştirin
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: Önyükleme sırasında Mender değişkenlerini dahil etmek için aşağıdaki satırı değiştirin
require recipes-bsp/u-boot/u-boot-mender.inc

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

BOOT_FILES:append = " uEnv.txt"

meta-interelectronix-visionfive içindeki tarifler

Bazı ayarların ve değişkenlerin, meta-interelectronix-visionfive'da yaptığımız gibi, özel meta katmanında ayarlanması gerekir.

  • recipes-mender/mender-client/mender-client_%.bbappend: Mender sunucusunun URL'sini ekleyin
MENDER_SERVER_URL = "https://mender.interelectronix.com"
  • recipes-bsp/u-boot/u-boot-visionfive_%.bbappend: Aşağıdaki satırları ekleyin
MENDER_UBOOT_AUTO_CONFIGURE = "1"
BOOTENV_SIZE = "0x20000"
  • recipes-bsp/u-boot-env/*: Bu tarifi indirilen zip dosyasından ekleyin. Kök dosya sisteminde kullanılan iki uEnv dosyası içerir. uEnv_visionfive.txt, A bölümünden önyükleme yapılırken rootfs'de kullanılır ve uEnv_visionfive3.txt, B bölümünden önyükleme yapılırken kullanılır.

  • recipes-core/images/vision-five-image-mender.bb: Bu görüntü tarifini alın veya görüntü tarifinize "u-boot-env" ekleyin

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

Önemli

Görüntünüze bitbake işlemi uygulamadan önce, u önyüklemesi yazı dizisinin bir sonraki bölümünde açıklandığı gibi özelleştirmeniz gerekir.

VisionFive - Mender - Yocto - Bölüm 3'te Mender için u önyüklemesi kurulumunun nasıl yapıldığını görün.

Telif Hakkı Lisansı

Telif Hakkı © 2022Interelectronix e.K.
Bu Proje kaynak kodu ** GPL-3.0**lisansı altında lisanslanmıştır.

Gömülü Yazılım - VisionFive - Mender - Yocto bir bilgisayarın ekran görüntüsü
Bölüm 1 - Yocto ortamının temel kurulumu

Bu makale dizisinin 1. Bölümü, bir Mender istemcisi entegrasyonu ile bir Yocto Linux oluşturmak amacıyla bir Yocto ortamının nasıl kurulacağını açıklamaktadır.

Gömülü Yazılım - VisionFive - Mender - Yocto bir bilgisayarın ekran görüntüsü
Bölüm 4 - Mender için bir yapıt oluşturma

Bu makale dizisinin 4. Bölümü, bir Mender istemcisi entegrasyonu ile bir Yocto Linux oluşturmak amacıyla bir Yocto ortamının nasıl kurulacağını açıklamaktadır.

Gömülü Yazılım - VisionFive - Mender - Yocto bir bilgisayarın ekran görüntüsü
Bölüm 3 - Mender için u önyüklemesi yapılandırması

Bu makale dizisinin 3. Bölümü, bir Mender istemcisi entegrasyonu ile bir Yocto Linux oluşturmak amacıyla bir Yocto ortamının nasıl kurulacağını açıklamaktadır.