ডিভাইস ট্রি ওভারলে (DTOs) বাস্তবায়নে ডিভাইস ট্রি (DT), বিল্ডিং, পার্টিশন এবং রানিং বিভক্ত করা জড়িত। আপনার একটি কার্যকরী বাস্তবায়নের পরে, আপনাকে অবশ্যই দুটি DT-এর মধ্যে সামঞ্জস্য বজায় রাখতে হবে এবং প্রতিটি DT পার্টিশনের নিরাপত্তা নিশ্চিত করার জন্য একটি কৌশল নির্ধারণ করতে হবে।
ডিটি ভাগ করুন
DT কে দুটি ভাগে ভাগ করে শুরু করুন:
- প্রধান ডিটি । শুধুমাত্র SoC-এর অংশ এবং ডিফল্ট কনফিগারেশন, SoC বিক্রেতা দ্বারা প্রদত্ত।
- ওভারলে ডিটি ডিভাইস-নির্দিষ্ট কনফিগারেশন, ODM/OEM দ্বারা প্রদত্ত।
ডিটি ভাগ করার পরে, আপনাকে অবশ্যই মেইন ডিটি এবং ওভারলে ডিটি-এর মধ্যে সামঞ্জস্যতা নিশ্চিত করতে হবে যাতে মেইন ডিটি এবং ওভারলে ডিটি একত্রিত করার ফলে ডিভাইসের জন্য একটি সম্পূর্ণ ডিটি হয়৷ ডিটিও ফরম্যাট এবং নিয়ম সম্পর্কে বিস্তারিত জানার জন্য, ডিটিও সিনট্যাক্স দেখুন। একাধিক DTs সম্পর্কে বিস্তারিত জানার জন্য, একাধিক DTs দেখুন।
প্রধান এবং ওভারলে DTs তৈরি করুন
প্রধান ডিটি তৈরি করতে:
- একটি
.dtb
ফাইলে প্রধান DT.dts
কম্পাইল করুন। -
.dtb
ফাইলটিকে একটি বুটলোডার রানটাইম-অ্যাক্সেসযোগ্য পার্টিশনে ফ্ল্যাশ করুন (বিস্তারিত [পার্টিশন DTs](#পার্টিশন))।
ওভারলে ডিটি তৈরি করতে:
- ওভারলে DT
.dts
একটি.dtbo
ফাইলে কম্পাইল করুন। যদিও এই ফাইল ফরম্যাটটি.dtb
ফাইলের মতই একটি সমতল DT হিসাবে ফর্ম্যাট করা হয়েছে, ভিন্ন ফাইল এক্সটেনশন এটিকে প্রধান DT থেকে আলাদা করে। -
.dtbo
ফাইলটিকে একটি বুটলোডার রানটাইম-অ্যাক্সেসযোগ্য পার্টিশনে ফ্ল্যাশ করুন (বিস্তারিত [পার্টিশন DTs](#পার্টিশন))।
DTC এর সাথে কম্পাইল করা এবং হোস্টে DTO ফলাফল যাচাই করার বিষয়ে বিস্তারিত জানার জন্য, কম্পাইল এবং ভেরিফাই দেখুন।
পার্টিশন ডিটি
.dtb
এবং .dtbo
রাখার জন্য ফ্ল্যাশ মেমরিতে একটি বুটলোডার রানটাইম অ্যাক্সেসযোগ্য এবং বিশ্বস্ত অবস্থান নির্ধারণ করুন।
প্রধান DT-এর উদাহরণ অবস্থান:
- বুট পার্টিশনের অংশ, কার্নেলের সাথে সংযুক্ত (
image.gz
) - ডেডিকেটেড পার্টিশনে আলাদা ডিটি ব্লবস (
.dtb
) (dtb
)
ওভারলে ডিটির জন্য উদাহরণ অবস্থান:
চিত্র 1. একটি odm পার্টিশনে .dtbo রাখুন (আপনার বুটলোডারের একটি odm পার্টিশনের ফাইল সিস্টেম থেকে ডেটা লোড করার ক্ষমতা থাকলেই এটি করুন)।
চিত্র 2. .dtbo-কে একটি অনন্য পার্টিশনে রাখুন, যেমন একটি dtbo পার্টিশন।
দ্রষ্টব্য: ওভারলে ডিটি পার্টিশনের আকার ডিভাইসের উপর নির্ভর করে এবং প্রধান DT ব্লবের উপরে প্রয়োজনীয় পরিবর্তনের পরিমাণ। সাধারণত, 8 এমবি পর্যাপ্ত থেকে বেশি এবং প্রয়োজন হলে ভবিষ্যতে রুম বাড়তে দেয়।
নিরবিচ্ছিন্ন (A/B) আপডেট সমর্থন করে এমন ডিভাইসগুলির জন্য, A/B প্রধান DT এবং ওভারলে DT পার্টিশন:
চিত্র 3. DTBO পার্টিশন A/B, উদাহরণ 1।
চিত্র 4. DTBO পার্টিশন A/B, উদাহরণ 2।
বুটলোডারে চালান
চালানোর জন্য:
চিত্র 5. বুটলোডারে DTO-এর জন্য সাধারণ রানটাইম বাস্তবায়ন।
- স্টোরেজ থেকে মেমরিতে
.dtb
লোড করুন। - স্টোরেজ থেকে মেমরিতে
.dtbo
লোড করুন। -
.dtb
এর সাথে.dtbo
একত্রিত DT হতে ওভারলে করুন। - মার্জ করা DT-এর মেমরি ঠিকানা দেওয়া স্টার্ট কার্নেল।
সামঞ্জস্য বজায় রাখুন
প্রধান DTB (SOC বিক্রেতার কাছ থেকে) DTBO-এর জন্য একটি API পৃষ্ঠ হিসাবে বিবেচিত হয়। DT-কে একটি SoC-সাধারণ অংশ এবং একটি ডিভাইস-নির্দিষ্ট অংশে আলাদা করার পর, আপনাকে অবশ্যই ভবিষ্যতে দুটি অংশকে পারস্পরিকভাবে সামঞ্জস্যপূর্ণ রাখতে হবে, যার মধ্যে রয়েছে:
- প্রধান ডিটিতে ডিটি সংজ্ঞা। উদাহরণস্বরূপ, নোড, বৈশিষ্ট্য, লেবেল। প্রধান DT-তে যেকোন সংজ্ঞা পরিবর্তন ওভারলে DT-তে পরিবর্তন আনতে পারে। উদাহরণস্বরূপ, প্রধান DT-এ একটি নোডের নাম সংশোধন করতে, একটি "উনাম" লেবেল সংজ্ঞায়িত করুন যা মূল নোডের নামের সাথে মানচিত্র করে (ওভারলে DT পরিবর্তন এড়াতে)।
- ওভারলে ডিটি স্টোরের অবস্থান। যেমন, পার্টিশনের নাম, স্টোর ফরম্যাট।
নিরাপত্তা নিশ্চিত করুন
বুটলোডারকে অবশ্যই নিশ্চিত করতে হবে যে DTB বা DTBO সুরক্ষিত, অপরিবর্তিত এবং অনিয়মিত। আপনি DTB বা DTBO সুরক্ষিত করার জন্য যেকোনো সমাধান ব্যবহার করতে পারেন, উদাহরণস্বরূপ, VBoot 1.0 বা AVB HASH ফুটার (VBoot 2.0) এ বুট ইমেজ স্বাক্ষর ।
- যদি DTB বা DTBO একটি অনন্য পার্টিশনে থাকে, তাহলে আপনি সেই পার্টিশনটিকে AVB-এর ট্রাস্ট চেইনে যোগ করতে পারেন। ট্রাস্ট চেইনটি বিশ্বাসের একটি হার্ডওয়্যার-সুরক্ষিত রুট থেকে শুরু হয় এবং বুটলোডারে যায়, যা DTB বা DTBO পার্টিশনের অখণ্ডতা এবং সত্যতা যাচাই করে।
- যদি DTB বা DTBO একটি বিদ্যমান পার্টিশনে থাকে (যেমন
odm
পার্টিশন), সেই পার্টিশনটি AVB-এর ট্রাস্ট চেইনে থাকা উচিত। (DTBO পার্টিশনodm
পার্টিশনের সাথে একটি পাবলিক কী ভাগ করতে পারে)।
বিস্তারিত জানার জন্য, যাচাইকৃত বুট পড়ুন।