Programu Iliyopachikwa - VisionFive - Mender - Yocto - Sehemu ya 3 picha ya skrini ya kompyuta

Maono ya Tano - Mender - Yocto

Sehemu ya 3 - usanidi wa u-boot kwa Mender

U-boot setup Mender

usanidi wa u-boot kwa Mender

Tunatumia tawi la Yocto Kirkstone kwa maendeleo. Tunadhani kuwa tayari una mazingira ya maendeleo ya kazi yaliyowekwa na kuanzisha mazingira yako kama ilivyoelezwa katika VisionFive - Mender - Yocto - Sehemu ya 1 na katika VisionFive - Mender - Yocto - Sehemu ya 2.

u-boot VisionFive bodi

VisionFive RISC-V SBC hutumia bootloader mbili - ya piliBoot na wewe-boot. Utaratibu jinsi hii inavyofanya kazi umeelezewa katika Mwongozo wa Kuanza Haraka wa VisionFive SBC.

Kushughulikia mahitaji haya inamaanisha kuwa

  • Tunapaswa kuweka U-boot kutoka https://github.com/starfive-tech/u-boot na mipangilio ya mender
  • Tunapaswa kuwa na Bitbake U-Boot na Yocto
  • Lazima tukusanye U-boot kwa mikono kwa kupakia na bootloader ya hatua ya pili

Kutia alama u-boot

Kwanza, clone u-boot derivative kutoka starfive-tech kupata msingi wa msimbo kufanya kazi nao.

git clone -b JH7100_upstream https://github.com/starfive-tech/u-boot.git
Mender kiraka kilichosanidiwa kiotomatiki

meta-mender-core katika Yocto inajaribu kuweka u-boot moja kwa moja kwa mahitaji ya Mender ikiwa 'MENDER_UBOOT_AUTO_CONFIGURE = "1"' imewekwa. Katika hali nyingi, hali hii haifanyi kazi kwa sababu ya marekebisho ya wazalishaji wa bodi.

Lakini kiraka kilichosanidiwa kiotomatiki cha Mender ni hatua nzuri ya kuanzia kurekebisha u-boot kwa VisionFive SOC na mteja wa Mender.

Ili kupata kiraka kilichosanidiwa kiotomatiki, lazima u-boot na MENDER_UBOOT_AUTO_CONFIGURE = "1" mpangilio:

bitbake u-boot-visionfive

Faili ya kiraka inayoitwa 'mender_auto_configured.patch' imeundwa kwenye saraka 'your-build-directory/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0'.

Tumia kiraka kwa u-boot ya cloned

Ifuatayo, tunatumia mender_auto_configured.patch hii kwenye hazina ya u-boot ya cloned kutoka kwa teknolojia ya nyota ya nyota.

cd u-boot-starfive
git apply path-to-patch/mender_auto_configured.patch
Customize u-boot-starfive

u-boot inahitaji kujua vigezo vya Mender ili kupata habari sahihi kutoka kwa kizigeu ambacho SOC inapaswa kuwasha baada ya kupeleka artifact na seva ya Mender.

Kwa hivyo tunapaswa kubadilisha faili 'u-boot-starfive/include/configs/starfive-jh7100.h' ili kupata vigezo vya Mender na kusimamia kutoka kwa kizigeu gani cha kuwasha:

#define STARLIGHT_FEDORA_BOOTENV \
	"bootdir=/boot\0" \
	"bootenv2=uEnv.txt\0" \
	"bootenv3=uEnv3.txt\0" \
	"mmcdev=0\0" \
	"mmcpart=2\0"

#define CONFIG_EXTRA_ENV_SETTINGS \
	MENDER_ENV_SETTINGS \
	STARLIGHT_FEDORA_BOOTENV \
	"loadaddr=0xa0000000\0" \
	"loadbootenv=fatload ${mender_uboot_boot} ${loadaddr} ${bootenv}\0" \
	"ext4bootenv2=ext4load ${mender_uboot_root} ${loadaddr} ${bootdir}/${bootenv2}\0" \
	"ext4bootenv3=ext4load ${mender_uboot_root} ${loadaddr} ${bootdir}/${bootenv3}\0" \
	"importbootenv=echo Importing environment from mmc mender_uboot_dev ${mender_uboot_boot} ...; " \
		"env import -t ${loadaddr} ${filesize}\0" \
	"mmcbootenv=run mender_setup; " \
		"echo mender_kernel_root_name ${mender_kernel_root_name} ...; " \
		"echo mender_boot_part_name ${mender_boot_part_name} ...; " \
		"setenv bootpart ${mender_uboot_root}; " \
		"mmc dev ${mender_uboot_dev}; " \
		"if mmc rescan; then " \
			"run loadbootenv && run importbootenv; " \
			"if test ${mender_kernel_root_name} = /dev/mmcblk0p2; then " \
				"run ext4bootenv2 && run importbootenv; " \
			"fi; " \
			"if test ${mender_kernel_root_name} = /dev/mmcblk0p3; then " \
				"run ext4bootenv3 && run importbootenv; " \
			"fi; " \
			"if test -n $uenvcmd; then " \
				"echo Running uenvcmd ...; " \
				"run uenvcmd; " \
			"fi; " \
		"fi\0" \
	"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
	BOOTENV \
	BOOTENV_SF

Jaribu '${mender_kernel_root_name}' ni hatua na kisha uamue ni faili gani ya uEnv inachukuliwa kupakia kernel.

Baada ya hii, tengeneza kiraka kamili kutoka kwa u-boot kwa kuitumia katika Yocto:

git diff --patch > ~/Documents/Yocto/meta-interelectronix-visionfive/recipes-bsp/u-boot/files/0004-u-boot.patch

Jumuisha kiraka hiki katika Yocto katika 'u-boot-visionfive_%.bbappend':

FILESEXTRAPATHS:prepend := "${THISDIR}/files:"

SRC_URI:append = " \
    file://0004-u-boot.patch \
"
bitbake u-boot

Katika 'u-boot-visionfive_%.bbappend' mabadiliko MENDER_UBOOT_AUTO_CONFIGURE = "1" kwa MENDER_UBOOT_AUTO_CONFIGURE = "0".

Sasa unaweza bitbake u-boot bila kazi autoconfigure ya mender na kwa viraka desturi:

bitbake u-boot-visionfive
Kusanya u-boot kwa kupakia na bootloader ya hatua ya pili

Sasa unaweza kukusanya u-boot kwenye saraka 'VisionFive-build/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0/git', ambayo ina viraka vilivyoongezwa na 'bitbake u-boot-visionfive'.

bitbake Yocto Linux

bitbake Yocto Linux na mteja wa Mender aliyejumuishwa:

bitbake vision-five-image-mender

Kiwango cha picha ya Linux kwenye kadi ya SD na uwashe VisionFive SOC. Ikiwa yote inafanya kazi vizuri, kifaa kinaonekana kama kifaa kinachosubiri katika GUI ya seva ya Mender.

Chini ya 'DEVICES', unaweza kukubali na kuijumuisha ili kudhibiti upelekaji wa sasisho za programu za baadaye za kifaa hiki.

Angalia jinsi ya kuunda artifact kwa Mender katika VisionFive - Mender - Yocto - Sehemu ya 4.</:code8:></:code7:></:code6:></:code5:></:code4:></:code3:></:code2:></:code1:>

Leseni ya Hakimiliki

Copyright © 2022 Interelectronix e.K.
Msimbo huu wa chanzo cha Mradi una leseni chini ya leseni ya GPL-3.0.

Programu Iliyopachikwa - VisionFive - Mender - Yocto picha ya skrini ya kompyuta
Sehemu ya 1 - Usanidi wa msingi wa mazingira ya Yocto

Sehemu ya 1 ya mfululizo wa makala, jinsi ya kusanidi mazingira ya Yocto kuunda Yocto Linux na ujumuishaji wa mteja wa Mender.

Programu Iliyopachikwa - VisionFive - Mender - Yocto picha ya skrini ya kompyuta
Sehemu ya 2 - Usanidi wa msingi wa kujumuisha Mender

Sehemu ya 2 ya mfululizo wa makala, jinsi ya kuanzisha mazingira ya Yocto kuunda Yocto Linux na ujumuishaji wa mteja wa Mender.

Programu Iliyopachikwa - VisionFive - Mender - Yocto picha ya skrini ya kompyuta
Sehemu ya 4 - Unda artifact kwa mender

Sehemu ya 4 ya mfululizo wa makala, jinsi ya kusanidi mazingira ya Yocto kuunda Yocto Linux na ujumuishaji wa mteja wa Mender.