إعداد Mender Yocto
نحن نستخدم فرع Yocto Kirkstone من أجل التنمية. نفترض أن لديك بالفعل بيئة تطوير عمل مثبتة وقمت بإعداد بيئتك كما هو موضح في VisionFive - Mender - Yocto - الجزء 1.
إعداد خادم Mender
تثبيت خادم Mender ليس جزءًا من سلسلة المقالات هذه. لبيئة الاختبار الخاصة بنا، قمنا بتثبيت خادم Mender باستخدام برنامج التثبيت التعليمي مع تركيبة جهاز الإرساء كما هو موضح في التثبيت مع Docker Compos.
ملاحظة
انحراف إلى البرنامج التعليمي، نستخدم شهادة Wildcard CA المخصصة لدينا. إذا كنت ترغب في القيام بذلك، يجب عليك نسخ مفتاحك العام والخاص إلى '/mender-server/production/keys-generated/cert' قبل تشغيل الأمر './run up -d'.
قبل المتابعة، يجب أن تكون قادرًا على تسجيل الدخول إلى خادم Mender دون الحصول على أي رسائل خطأ.
استنساخ meta-mender
انتقل إلى دليل poky الخاص بك - في حالتي poky-kirkstone - واستنساخ مستودع meta-mender. بما أنه لا يوجد بعد امتداد Kirkstone، يجب عليك استنساخ امتداد 'master-next'.
cd poky-kirkstone
git clone -b master-next https://github.com/mendersoftware/meta-mender.git
local.conf and bblayers.conf
انسخ bblayers.conf.sample-mender وlocal.conf.sample-mender من دليل meta-interelectronix-visionfive إلى دليل conf وأعد تسميته إلى bblayers.conf و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 ، يجب عليك ضبط المسار إلى دليل poky-kirkstone. احذف أيضًا السطر '/workdir/poky-kirkstone/meta-interelectronix ' - إنه مطلوب فقط لتخصيص psplash الخاص بنا.
الإعدادات المهمة في local.conf هي:
# 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
يجب إنشاء فرع من meta-starfive-bsp لإضافة الإعدادات اللازمة لإعداد Mender.
التخصيصات مطلوبة في:
- conf/machine/starfive-visionfive-jh7100.conf: إزالة أو التعليق على هذين السطرين
UBOOT_ENV ?= "uEnv"
UBOOT_ENV_SUFFIX = "txt"
- recipes-bsp/bootfiles/files/uEnv.txt: استبدل السطر التالي لتضمين متغيرات Mender أثناء التمهيد
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}
- ecipes-bsp/u-boot/u-boot-visionfive_v2022.03.bb: أضف السطور التالية لإخبار meta-mender، أنه يتم استخدام u-boot مخصص
require recipes-bsp/u-boot/u-boot-mender.inc
PROVIDES += "u-boot"
RPROVIDES_${PN} += "u-boot"
BOOT_FILES:append = " uEnv.txt"
وصفات في meta-interelectronix-visionfive
هناك حاجة إلى تعيين بعض الإعدادات والمتغيرات في الطبقة الوصفية المخصصة، كما نفعل في meta-interelectronix-visionfive.
- recipes-mender/mender-client/mender-client_%.bbappend: إضافة عنوان URL لخادم Mender
MENDER_SERVER_URL = "https://mender.interelectronix.com"
- recipes-bsp/u-boot/u-boot-visionfive_%.bbappend: أضف السطور التالية
MENDER_UBOOT_AUTO_CONFIGURE = "1"
BOOTENV_SIZE = "0x20000"
recipes-bsp/u-boot-env/*: أضف هذه الوصفة من الملف المضغوط الذي تم تنزيله. يحتوي على ملفين uEnv، يتم استخدامهما في نظام ملفات الجذر. يتم استخدام uEnv_visionfive.txt في rootfs، عند التمهيد من القسم A وuEnv_visionfive3.txt عند التمهيد من القسم B.
recipes-core/images/vision-five-image-mender.bb: خذ وصفة الصورة هذه أو أضف 'u-boot-env' إلى وصفتك
IMAGE_INSTALL:append = " v4l-utils u-boot-env"
هام
قبل أن تتمكن من تكوين صورتك، يجب عليك تخصيص u-boot كما هو موضح في الجزء التالي من سلسلة المقالات.
انظر كيفية إعداد u-boot لـ Mender VisionFive - Mender - Yocto - الجزء 3.
ترخيص حقوق الطبع والنشر
حقوق الطبع والنشر © 2022 Interelectronixe.K.
رمز مصدر المشروع هذا مرخص بموجب ترخيص** GPL-3.0 **.
الجزء 1 من سلسلة مقالات، كيفية إعداد بيئة Yocto لإنشاء Yocto Linux مع دمج عميل Mender.
الجزء 4 من سلسلة من المقالات، كيفية إعداد بيئة Yocto لإنشاء Yocto Linux مع دمج عميل Mender.
الجزء 3 من سلسلة من المقالات، كيفية إعداد بيئة Yocto لإنشاء Yocto Linux مع دمج عميل Mender.