Setup Yocto Mender
Kami menggunakan cabang Yocto Kirkstone untuk pengembangan. Kami anggap Anda sudah memiliki lingkungan pengembangan kerja yang terpasang dan menyetel lingkungan Anda seperti yang dijelaskan di VisionFive - Mender - Yocto - Bagian 1.
Pengaturan server Mender
Instalasi server Mender bukanlah bagian dari seri artikel ini. Untuk lingkungan pengujian kami, kami menginstal server Mender menggunakan tutorial instalasi dengan docker compose seperti yang dijelaskan dalam Instalasi dengan Docker Compose.
Catatan
Menyimpang dari tutorial, kami menggunakan sertifikat Wildcard CA kustom kami. Jika Anda ingin melakukannya, Anda perlu menyalin kunci publik dan pribadi Anda ke '/mender-server/production/keys-generated/cert' sebelum Anda menjalankan perintah './run up -d'.
Sebelum melanjutkan, Anda harus dapat masuk ke server Mender tanpa mendapatkan pesan kesalahan.
Kloning meta-mender
Buka direktori poky Anda - dalam kasus saya poky-kirkstone - dan kloning repositori meta-mender server. Karena belum ada cabang Kirkstone, Anda harus mengkloning cabang 'master-next'.
cd poky-kirkstone
git clone -b master-next https://github.com/mendersoftware/meta-mender.git
local.conf dan bblayers.conf
Salin bblayers.conf.sample-mender dan local.conf.sample-mender dari direktori meta-interelectronix-visionfive ke dalam direktori conf dan ganti namanya menjadi bblayers.conf dan 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
Dalam file bblayers.conf, Anda harus menyesuaikan jalur ke direktori poky-kirkstone Anda. Hapus juga baris '/workdir/poky-kirkstone/meta-interelectronix ' - hanya diperlukan untuk kustomisasi psplash kami.
Pengaturan penting dalam local.conf adalah:
# 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"
Sesuaikan meta-starfive-bsp
Anda harus membuat cabang meta-starfive-bsp untuk menambahkan pengaturan yang diperlukan untuk pengaturan Mender.
Kustomisasi diperlukan dalam:
- conf/machine/starfive-visionfive-jh7100.conf: Hapus atau berikan komentar (comment) pada dua baris ini
UBOOT_ENV ?= "uEnv"
UBOOT_ENV_SUFFIX = "txt"
- recipes-bsp/bootfiles/files/uEnv.txt: Ganti baris berikut untuk menyertakan variabel Mender saat 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: Tambahkan baris berikut untuk memberitahu meta-mender bahwa u-boot kustom digunakan
require recipes-bsp/u-boot/u-boot-mender.inc
PROVIDES += "u-boot"
RPROVIDES_${PN} += "u-boot"
BOOT_FILES:append = " uEnv.txt"
Resep dalam meta-interelectronix-visionfive
Beberapa pengaturan dan variabel perlu diatur dalam meta-layer kustom, seperti yang kita lakukan dalam meta-interelectronix-visionfive.
- recipes-mender/mender-client/mender-client_%.bbappend: Tambahkan URL server Mender
MENDER_SERVER_URL = "https://mender.interelectronix.com"
- recipes-bsp/u-boot/u-boot-visionfive_%.bbappend: Tambahkan baris berikut
MENDER_UBOOT_AUTO_CONFIGURE = "1"
BOOTENV_SIZE = "0x20000"
recipes-bsp/u-boot-env/*: Tambahkan resep ini dari file Zip yang diunduh. File Zip tersebut berisi dua uEnv-files, yang digunakan dalam sistem file root. uEnv_visionfive.txt digunakan dalam rootfs, ketika booting dari partisi A dan uEnv_visionfive3.txt digunakan ketika booting dari partisi B.
recipes-core/images/vision-five-image-mender.bb: Ambil resep image ini atau tambahkan 'u-boot-env' ke resep image Anda.
IMAGE_INSTALL:append = " v4l-utils u-boot-env"
Penting
Sebelum Anda dapat membangun image Anda di BitBake, Anda harus menyesuaikan u-boot seperti yang dijelaskan di bagian selanjutnya dari seri artikel ini.
Lihat cara mengatur u-boot untuk Mender di VisionFive - Mender - Yocto - Bagian 3.
Lisensi Hak Cipta
Hak Cipta © 2022 Interelectronix e.K.
Kode sumber proyek ini dilisensikan di bawah lisensiGPL-3.0.
Bagian 1 dari seri artikel, cara menyetel lingkungan Yocto untuk membuat Yocto Linux dengan integrasi klien Mender.
Bagian 4 dari seri artikel, cara menyetel lingkungan Yocto untuk membuat Yocto Linux dengan integrasi klien Mender.
Bagian 3 dari seri artikel, cara menyetel lingkungan Yocto untuk membuat Yocto Linux dengan integrasi klien Mender.