ซอฟต์แวร์ฝังตัว - VisionFive - Mender - Yocto - ส่วนที่ 2 ภาพหน้าจอของคอมพิวเตอร์

VisionFive - Mender - Yocto

ส่วนที่ 2 - การตั้งค่าพื้นฐานเพื่อรวม Mender

การตั้งค่า Mender Yocto

การตั้งค่า Mender พื้นฐานสําหรับบอร์ด VisionFive

เรากําลังใช้สาขา Yocto Kirkstone เพื่อการพัฒนา เราถือว่าคุณได้ติดตั้งสภาพแวดล้อมการพัฒนาการทํางานและตั้งค่าสภาพแวดล้อมของคุณตามที่อธิบายไว้ใน VisionFive - Mender - Yocto - ส่วนที่ 1

การตั้งค่าเซิร์ฟเวอร์ Mender

การติดตั้งเซิร์ฟเวอร์ Mender ไม่ได้เป็นส่วนหนึ่งของชุดบทความนี้ สําหรับสภาพแวดล้อมการทดสอบของเราเราได้ติดตั้งเซิร์ฟเวอร์ Mender โดยใช้บทช่วยสอนการติดตั้งกับ docker-compose ตามที่อธิบายไว้ในการติดตั้งด้วย Docker Compose

โน้ต

เบี่ยงเบนไปจากบทช่วยสอนเราใช้ใบรับรอง 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 และ 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}
  • สูตร 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-layer ที่กําหนดเองเช่นเดียวกับที่เราทําใน meta-interelectronix-visionfive

  • recipes-mender/mender-client/mender-client_%.bbappend: เพิ่ม URL ของเซิร์ฟเวอร์ Mender
MENDER_SERVER_URL = "https://mender.interelectronix.com"
  • สูตร-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

  • สูตร - core / images / vision-five-image-mender.bb: ใช้สูตรภาพนี้หรือเพิ่ม 'u-boot-env' ลงในสูตรภาพของคุณ

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

สําคัญ

ก่อนที่คุณจะสามารถ bitbake ภาพของคุณคุณต้องปรับแต่ง u-boot ตามที่อธิบายไว้ในส่วนถัดไปของชุดบทความ

ดูวิธีการตั้งค่า u-boot สําหรับ Mender ใน VisionFive - Mender - Yocto - ส่วนที่ 3

ใบอนุญาตลิขสิทธิ์

ลิขสิทธิ์ © 2022 Interelectronix e.K.
ซอร์สโค้ดของโครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต GPL-3.0

ซอฟต์แวร์ฝังตัว - VisionFive - Mender - Yocto ภาพหน้าจอของคอมพิวเตอร์
ส่วนที่ 1 - การตั้งค่าพื้นฐานของสภาพแวดล้อม Yocto

ส่วนที่ 1 ของชุดบทความวิธีการตั้งค่าสภาพแวดล้อม Yocto เพื่อสร้าง Yocto Linux ด้วยการรวมไคลเอนต์ Mender

ซอฟต์แวร์ฝังตัว - VisionFive - Mender - Yocto ภาพหน้าจอของคอมพิวเตอร์
ส่วนที่ 4 - สร้างสิ่งประดิษฐ์สําหรับ mender

ส่วนที่ 4 ของชุดบทความวิธีการตั้งค่าสภาพแวดล้อม Yocto เพื่อสร้าง Yocto Linux ด้วยการรวมไคลเอนต์ Mender

ซอฟต์แวร์ฝังตัว - VisionFive - Mender - Yocto ภาพหน้าจอของคอมพิวเตอร์
ส่วนที่ 3 - การกําหนดค่า u-boot สําหรับ Mender

ส่วนที่ 3 ของชุดบทความวิธีการตั้งค่าสภาพแวดล้อม Yocto เพื่อสร้าง Yocto Linux ด้วยการรวมไคลเอนต์ Mender