הגדרת Mender Yocto
אנו משתמשים בסניף יוקטו קירקסטון לפיתוח. אנו מניחים שכבר התקנת סביבת פיתוח עובדת והגדרת את הסביבה שלך כמתואר ב- VisionFive - Mender - Yocto - Part 1.
הגדרת שרת Mender
ההתקנה של שרת Mender אינה חלק מסדרת מאמרים זו. עבור סביבת הבדיקה שלנו, התקנו את שרת Mender באמצעות ערכת הלימוד להתקנה עם docker-compose כמתואר בהתקנה עם Docker Compose.
הערה
סוטה לערכת הלימוד, אנו משתמשים באישור CA כללי מותאם אישית שלנו. אם ברצונך לעשות זאת, עליך להעתיק את המפתח הציבורי והפרטי שלך אל '/mender-server/production/keys-generated/cert' לפני הפעלת הפקודה './run up -d'.
שיבוט מטא-מנדר
עבור לספריית הפוקי שלך - במקרה שלי פוקי-קירקסטון - ושכפל את מאגר המטא-מנדר. מכיוון שעדיין אין סניף קירקסטון, עליך לשכפל את ענף 'המאסטר הבא'.
cd poky-kirkstone
git clone -b master-next https://github.com/mendersoftware/meta-mender.git
local.conf ו- 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}
- recipes-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"
מתכונים במטא-אינטראלקטרוניקס-ראייהחמש
יש צורך להגדיר הגדרות ומשתנים מסוימים במטא-שכבה מותאמת אישית, כפי שאנו עושים במטא-אינטראלקטרוניקס-ראייה.
- recipes-mender/mender-client/mender-client_%.bbappend: הוסף את כתובת האתר של שרת 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/*: הוסף מתכון זה מקובץ ה-zip שהורדת. הוא מכיל שני קבצי 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"
חשוב
לפני שתוכל bitbake התמונה שלך, אתה צריך להתאים אישית u-boot כמתואר בחלק הבא של סדרת המאמרים.
רישיון זכויות יוצרים
זכויות יוצרים © 2022 Interelectronix e.K.
קוד המקור של פרויקט זה מורשה תחת רישיון GPL-3.0*.
חלק 1 בסדרת מאמרים, כיצד להקים סביבת Yocto ליצירת Yocto Linux עם אינטגרציה של לקוח מנדר.
חלק 4 בסדרת מאמרים, כיצד להקים סביבת Yocto ליצירת Yocto Linux עם אינטגרציה של לקוח מנדר.
חלק 3 בסדרת מאמרים, כיצד להקים סביבת Yocto ליצירת Yocto Linux עם אינטגרציה של לקוח מנדר.