Perisian Terbenam - VisionFive - Mender - Yocto - Bahagian 2 tangkapan skrin komputer

VisionFive - Mender - Yocto

Bahagian 2 - Persediaan asas untuk memasukkan Mender

Persediaan Mender Yocto

Persediaan Mender Asas untuk papan VisionFive

Kami menggunakan cawangan Yocto Kirkstone untuk pembangunan. Kami menganggap bahawa anda sudah mempunyai persekitaran pembangunan kerja yang dipasang dan menyediakan persekitaran anda seperti yang diterangkan dalam VisionFive - Mender - Yocto - Bahagian 1.

Persediaan pelayan Mender

Pemasangan pelayan Mender bukan sebahagian daripada siri artikel ini. Untuk persekitaran ujian kami, kami memasang pelayan Mender menggunakan tutorial pemasangan dengan docker-compose seperti yang diterangkan dalam Pemasangan dengan Docker Compose.

Ambil perhatian

Menyimpang kepada tutorial, kami menggunakan sijil CA kad bebas tersuai kami. Jika anda ingin berbuat demikian, anda perlu menyalin kunci awam dan peribadi anda kepada '/mender-server/production/keys-generated/cert' sebelum anda menjalankan arahan './run up -d'.

Sebelum anda meneruskan, anda sepatutnya boleh log masuk ke pelayan Mender tanpa mendapat sebarang mesej ralat.

Klon meta-mender

Pergi ke direktori poky anda - dalam kes saya poky-kirkstone - dan klon repositori meta-mender. Oleh kerana belum ada cawangan Kirkstone, anda perlu mengklon cawangan 'tuan-seterusnya'.

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 daripada direktori meta-interelectronix-visionfive ke dalam direktori conf dan namakan semula kepada 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 fail bblayers.conf, anda perlu menyesuaikan laluan ke direktori poky-kirkstone anda. Juga padamkan baris '/workdir/poky-kirkstone/meta-interelectronix ' - ia hanya diperlukan untuk penyesuaian psplash kami.

Tetapan penting dalam local.conf ialah:

# 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 mencipta cawangan meta-starfive-bsp untuk menambah tetapan yang diperlukan untuk persediaan Mender.

Penyesuaian diperlukan dalam:

  • conf/machine/starfive-visionfive-jh7100.conf: Keluarkan atau komen dua baris ini
UBOOT_ENV ?= "uEnv"
UBOOT_ENV_SUFFIX = "txt"
  • resipi-bsp/bootfiles/files/uEnv.txt: Gantikan baris berikut untuk memasukkan pemboleh ubah Mender semasa but
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}
  • resipi-bsp/u-boot/u-boot-visionfive_v2022.03.bb: Tambah baris berikut untuk memberitahu meta-mender, bahawa u-boot tersuai digunakan
require recipes-bsp/u-boot/u-boot-mender.inc

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

BOOT_FILES:append = " uEnv.txt"

Resipi dalam meta-interelectronix-visionfive

Sesetengah tetapan dan pemboleh ubah diperlukan untuk ditetapkan dalam meta-lapisan tersuai, seperti yang kita lakukan dalam meta-interelectronix-visionfive.

  • resipi-mender/mender-client/mender-client_%.bbappend: Tambah URL pelayan Mender
MENDER_SERVER_URL = "https://mender.interelectronix.com"
  • resipi-bsp/u-boot/u-boot-visionfive_%.bbappend: Tambah baris berikut
MENDER_UBOOT_AUTO_CONFIGURE = "1"
BOOTENV_SIZE = "0x20000"
  • resipi-bsp/u-boot-env/*: Tambah resipi ini daripada fail zip yang dimuat turun. Ia mengandungi dua fail uEnv, yang digunakan dalam sistem fail akar. uEnv_visionfive.txt digunakan dalam rootfs, apabila but daripada partition A dan uEnv_visionfive3.txt digunakan semasa but daripada partition B.

  • resipi-teras/imej/penglihatan-lima-imej-mender.bb: Ambil resipi imej ini atau tambahkan 'u-boot-env' pada resipi imej anda

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

Penting

Sebelum anda boleh menggigit imej anda, anda perlu menyesuaikan u-boot seperti yang diterangkan dalam bahagian seterusnya siri artikel.

Lihat cara menyediakan u-boot untuk Mender dalam VisionFive - Mender - Yocto - Bahagian 3.

Lesen Hak Cipta

Hakcipta Terpelihara © 2022 Interelectronix e.K.
Kod sumber Projek ini dilesenkan di bawah lesen GPL-3.0.

Perisian Terbenam - VisionFive - Mender - Yocto tangkapan skrin komputer
Bahagian 1 - Persediaan asas persekitaran Yocto

Bahagian 1 daripada satu siri artikel, cara menyediakan persekitaran Yocto untuk mencipta Yocto Linux dengan penyepaduan klien Mender.

Perisian Terbenam - VisionFive - Mender - Yocto tangkapan skrin komputer
Bahagian 4 - Buat artifak untuk mender

Bahagian 4 dari satu siri artikel, bagaimana untuk menyediakan persekitaran Yocto untuk mencipta Yocto Linux dengan penyepaduan pelanggan Mender.

Perisian Terbenam - VisionFive - Mender - Yocto tangkapan skrin komputer
Bahagian 3 - konfigurasi u-boot untuk Mender

Bahagian 3 daripada satu siri artikel, cara menyediakan persekitaran Yocto untuk mencipta Yocto Linux dengan penyepaduan klien Mender.