ইউ-বুট সেটআপ Mender
আমরা উন্নয়নের জন্য Yocto Kirkstone শাখা ব্যবহার করছি। আমরা ধরে নিই যে আপনার ইতোমধ্যেই একটি কাজের উন্নয়ন পরিবেশ ইনস্টল করা আছে এবং এতে বর্ণিত হিসাবে আপনার পরিবেশ সেট আপ করুন৷ VisionFive- Mender - ইয়োক্টো - পার্ট 1 এবং ভিতরে VisionFive- Mender - Yocto - অংশ 2 ।
ইউ-বুট VisionFiveবোর্ড
VisionFive RISC-V SBC দুটি বুটলোডার ব্যবহার করে - একটি সেকেন্ডবুট এবং ইউ-বুট। এটি কীভাবে কাজ করে তা বর্ণনা করা হয়েছে VisionFive SBC দ্রুত শুরু নির্দেশিকা ।
এই প্রয়োজনীয়তা হ্যান্ডেল মানে যে
- আমাদের প্যাচ করতে হবে ইউ-বুট থেকে https://github.com/starfive-tech/u-boot Mender এর জন্য সেটিংস সহ
- আমাদের yocto দিয়ে বিটবেক করতে হবে
- দ্বিতীয় পর্যায়ের বুটলোডার দিয়ে আপলোড করার জন্য আমাদের ম্যানুয়ালি ইউ-বুট কম্পাইল করতে হবে
প্যাচিং ইউ-বুট
প্রথমে, কাজ করার জন্য একটি কোড বেস পেতে স্টারফাইভ-টেক থেকে ইউ-বুট ডেরিভেটিভ ক্লোন করুন।
git clone -b JH7100_upstream https://github.com/starfive-tech/u-boot.git
Mender স্বয়ংক্রিয়ভাবে কনফিগার করা প্যাচ
Yocto-তে মেটা-Mender-কোর Mender এর প্রয়োজনের জন্য স্বয়ংক্রিয়ভাবে ইউ-বুট প্যাচ করার চেষ্টা করে যদি 'MENDER_UBOOT_AUTO_CONFIGURE = "1" সেট করা থাকে। বেশিরভাগ ক্ষেত্রে, বোর্ড নির্মাতাদের সমন্বয়ের কারণে এই দৃশ্যটি কাজ করে না।
কিন্তু Mender এর স্বয়ংক্রিয় কনফিগার করা প্যাচটি Mender ক্লায়েন্টের সাথে VisionFive SOC-এর জন্য ইউ-বুট সামঞ্জস্য করার জন্য একটি ভাল সূচনা পয়েন্ট।
স্বয়ংক্রিয়ভাবে কনফিগার করা প্যাচ পেতে, আপনাকে MENDER_UBOOT_AUTO_CONFIGURE = "1" সেটিং সহ ইউ-বুট বিটবেক করতে হবে:
bitbake u-boot-visionfive
'your-build-directory/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0' ডিরেক্টরিতে 'mender_auto_configured.patch' নামের একটি প্যাচ ফাইল তৈরি করা হয়েছে।
ক্লোন করা ইউ-বুটে প্যাচ প্রয়োগ করুন
এরপর, আমরা স্টারফাইভ-টেক থেকে ক্লোন করা ইউ-বুট রিপোজিটরিতে এই mender_auto_configured.patch প্রয়োগ করি।
cd u-boot-starfive
git apply path-to-patch/mender_auto_configured.patch
ইউ-বুট-স্টারফাইভ কাস্টমাইজ করুন
Mender সার্ভারের সাথে একটি আর্টিফ্যাক্ট স্থাপন করার পরে কোন পার্টিশন থেকে SOC বুট করা উচিত তা সঠিক তথ্য পেতে ইউ-বুটের Mender ভেরিয়েবলগুলি জানতে হবে।
সুতরাং Mender ভেরিয়েবলগুলি পেতে এবং কোন পার্টিশন থেকে বুট করতে হবে তা পরিচালনা করতে আমাদের 'u-boot-starfive/include/configs/starfive-jh7100.h' ফাইলটি কাস্টমাইজ করতে হবে:
#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
'${mender_kernel_root_name}' যে পয়েন্ট তা পরীক্ষা করুন এবং তারপর সিদ্ধান্ত নিন যে কার্নেলটি লোড করার জন্য কোন uEnv-ফাইলটি নেওয়া হবে।
এর পরে, Yocto ব্যবহার করার জন্য ইউ-বুট থেকে একটি সম্পূর্ণ প্যাচ তৈরি করুন:
git diff --patch > ~/Documents/Yocto/meta-interelectronix-visionfive/recipes-bsp/u-boot/files/0004-u-boot.patch
'u-boot-visionfive_%.bbappend'-এ Yocto-তে এই প্যাচটি অন্তর্ভুক্ত করুন:
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI:append = " \
file://0004-u-boot.patch \
"
বিটবেক ইউ-বুট
'u-boot-visionfive_%.bbappend'-এ MENDER_UBOOT_AUTO_CONFIGURE = "1" থেকে MENDER_UBOOT_AUTO_CONFIGURE = "0" পরিবর্তন করুন।
এখন আপনি Mender এর স্বয়ংক্রিয় কনফিগার ফাংশন ছাড়াই এবং কাস্টম প্যাচগুলির সাথে ইউ-বুট বিটবেক করতে পারেন:
bitbake u-boot-visionfive
দ্বিতীয় পর্যায়ের বুটলোডার দিয়ে আপলোড করার জন্য ইউ-বুট কম্পাইল করুন
এখন আপনি 'VisionFive-build/tmp/work/starfive_visionfive_jh7100-poky-linux/u-boot-visionfive/1_v2022.03-r0/git' ডিরেক্টরিতে ইউ-বুট কম্পাইল করতে পারেন, যেটিতে 'bitbake u-boot-visionfive'- এর সাথে যোগ করা প্যাচ রয়েছে।
- VisionFiveSOC -এর জন্য কীভাবে ইউ-বুট কম্পাইল করবেন তা নীচে বর্ণিত হয়েছে ইউ-বুট এবং কার্নেল কম্পাইল করা
- VisionFiveSOC -এর জন্য কীভাবে ইউ-বুট আপলোড করবেন তা নীচে বর্ণিত হয়েছে পরিশিষ্ট বি: ফার্মওয়্যার এবং ইউ-বুট আপডেট করা
বিটবেক Yocto Linux
অন্তর্ভুক্ত Mender ক্লায়েন্ট সহ বিটবেক Yocto Linux:
bitbake vision-five-image-mender
SD কার্ডে Linux ইমেজ ফ্ল্যাশ করুন এবং VisionFive SOC বুট করুন। যদি সবকিছু ঠিকঠাক কাজ করে, ডিভাইসটি Mender সার্ভার GUI-এ একটি মুলতুবি ডিভাইস হিসাবে উপস্থিত হয়।
'DEVICES'-এর অধীনে, আপনি এই ডিভাইসের জন্য পরবর্তী সফটওয়্যার আপডেটগুলির স্থাপনা পরিচালনা করতে এটি গ্রহণ করতে এবং অন্তর্ভুক্ত করতে পারেন৷
Mender ইনের জন্য কীভাবে একটি আর্টিফ্যাক্ট তৈরি করবেন তা দেখুন VisionFive- Mender - Yocto - অংশ 4 ।
কপিরাইট লাইসেন্স
কপিরাইট © 2022 Interelectronix eKএই প্রোজেক্ট সোর্স-কোডটি GPL-3.0 লাইসেন্সের অধীনে লাইসেন্সকৃত।
নিবন্ধগুলির একটি সিরিজের অংশ 1, একটি Mender ক্লায়েন্টের একীকরণের সাথে একটি Yocto Linux তৈরি করতে কীভাবে একটি Yocto পরিবেশ সেট আপ করতে হয়৷
নিবন্ধগুলির একটি সিরিজের অংশ 2, একটি Mender ক্লায়েন্টের একীকরণের সাথে একটি Yocto Linux তৈরি করতে কীভাবে একটি Yocto পরিবেশ সেট আপ করতে হয়৷
নিবন্ধগুলির একটি সিরিজের অংশ 4, একটি Mender ক্লায়েন্টের একীকরণের সাথে একটি Yocto Linux তৈরি করতে কীভাবে একটি Yocto পরিবেশ সেট আপ করতে হয়৷