u-boot setup Mender
Koristimo ogranak Yocto Kirkstone za razvoj. Pretpostavljamo da već imate instalirano radno razvojno okruženje i postavite svoje okruženje kao što je opisano u VisionFive - Mender - Yocto - 1. dio i u VisionFive - Mender - Yocto - 2. dio.
u-boot VisionFive ploča
VisionFive RISC-V SBC koristi dva bootloadera - secondBoot i you-boot. Mehanizmi kako to funkcionira opisani su u VisionFive SBC vodiču za brzi početak rada.
Rukovanje ovim zahtjevima znači da
- Moramo zakrpati U-boot od https://github.com/starfive-tech/u-boot s postavkama za mender
- Moramo bitbake U-boot s Yocto
- Moramo ručno sastaviti U-boot za prijenos s bootloaderom drugog stupnja
Krpanje u-boot
Prvo, klonirajte derivat u-boota iz starfive-techa kako biste dobili kodnu bazu za rad.
git clone -b JH7100_upstream https://github.com/starfive-tech/u-boot.git
Mender automatski konfigurirana zakrpa
meta-mender-core u Yoctou pokušava automatski zakrpati u-boot za Menderove potrebe ako je postavljeno 'MENDER_UBOOT_AUTO_CONFIGURE = "1"". U većini slučajeva ovaj scenarij ne funkcionira zbog prilagodbi proizvođača ploča.
Ali automatski konfigurirana zakrpa Mendera dobra je polazna točka za podešavanje u-boota za VisionFive SOC s Mender klijentom.
Da biste dobili automatski konfiguriranu zakrpu, morate bitbake u-boot s postavkom MENDER_UBOOT_AUTO_CONFIGURE = "1":
bitbake u-boot-visionfive
Datoteka zakrpe pod nazivom 'mender_auto_configured.patch' stvara se u direktoriju "your-build-directory/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0".
Primijenite zakrpu na klonirano u-boot
Zatim primjenjujemo ovu mender_auto_configured.zakrpu na klonirani spremište za pokretanje iz starfive-techa.
cd u-boot-starfive
git apply path-to-patch/mender_auto_configured.patch
Prilagodi u-boot-starfive
u-boot mora znati Mender varijable kako bi dobio točne informacije s koje particije SOC treba pokrenuti nakon implementacije artefakta s Mender poslužiteljem.
Stoga moramo prilagoditi datoteku 'u-boot-starfive/include/configs/starfive-jh7100.h' kako bismo dobili Mender varijable i upravljali s koje particije pokrenuti:
#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
Test '${mender_kernel_root_name}' je točka, a zatim odlučite koja je uEnv-datoteka uzeta za učitavanje jezgre.
Nakon toga stvorite potpunu zakrpu iz u-boota za korištenje u Yoctou:
git diff --patch > ~/Documents/Yocto/meta-interelectronix-visionfive/recipes-bsp/u-boot/files/0004-u-boot.patch
Uključi ovu zakrpu u Yocto u 'u-boot-visionfive_%.bbappend':
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI:append = " \
file://0004-u-boot.patch \
"
bitbake u-boot
U 'u-boot-visionfive_%.bbappend' promjena MENDER_UBOOT_AUTO_CONFIGURE = "1" u MENDER_UBOOT_AUTO_CONFIGURE = "0".
Sada možete bitbake u-boot bez autokonfigurirati funkciju mender i s prilagođenim zakrpama:
bitbake u-boot-visionfive
Compile u-boot za prijenos s bootloaderom drugog stupnja
Sada možete sastaviti u-boot u direktoriju 'VisionFive-build/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0/git', koji sadrži zakrpe dodane s 'bitbake u-boot-visionfive'.
- Kako sastaviti u-boot za VisionFive SOC opisano je pod Kompiliranje u-boot i kernel
- Kako prenijeti u-boot za VisionFive SOC opisano je pod Dodatak B: Ažuriranje firmvera i pokretanja
bitbake Yocto Linux
bitbake Yocto Linux s uključenim Mender klijentom:
bitbake vision-five-image-mender
Flash Linux sliku na SD karticu i pokrenuti VisionFive SOC. Ako sve radi dobro, uređaj se pojavljuje kao uređaj na čekanju u GUI-ju Mender poslužitelja.
U odjeljku "UREĐAJI" možete ga prihvatiti i uključiti za upravljanje implementacijama kasnijih softverskih ažuriranja za ovaj uređaj.
Pogledajte kako stvoriti artefakt za Mender u VisionFive - Mender - Yocto - 4. dio.</:code8:></:code7:></:code6:></:code5:></:code4:></:code3:></:code2:></:code1:>
Licenca za autorska prava
Autorska prava © 2022. Interelectronix e.K.
Ovaj izvorni kod projekta licenciran je pod licencom GPL-3.0.
- dio niza članaka, kako postaviti Yocto okruženje za stvaranje Yocto Linuxa uz integraciju Mender klijenta.
Drugi dio niza članaka, kako postaviti Yocto okruženje za stvaranje Yocto Linuxa s integracijom Mender klijenta.
- dio niza članaka, kako postaviti Yocto okruženje za stvaranje Yocto Linuxa uz integraciju Mender klijenta.