আপনি সরাসরি একটি লিনাক্স সিস্টেমের মধ্যে বুট করতে পারবেন না, আপনি কিভাবে বুটস্ট্র্যাপ করবেন?


0

আসল চলমান কার্নেল তৈরির জন্য আপনার সিস্টেমে মেমরি ম্যাপড ডিভাইসগুলি বর্ণনা করা হয়েছে এমন সি হেডার ফাইলগুলির একটি সেট আছে বলে অনুমান করা প্রকৃত পদক্ষেপগুলি কী? আমি জানি প্রত্যেকেরই একটি সরাসরি সিডি / ইউএসবি থাম্ব ড্রাইভ ইত্যাদি বন্ধ করে দেয় তবে কিভাবে প্রথম বুটস্ট্র্যাপ তৈরি করা হয়?

সম্পাদনা করুন: আমি অবশ্যই এআরএম ডিভাইস সম্পর্কে কথা বলছি, আমি একটি সাধারণ মেশিনে BIOS এর মাধ্যমে লোড করার বুনিয়াদি পেয়েছি, তবে বলুন আমরা একটি কাস্টম ডিভাইস সম্পর্কে কথা বলছি?


বায়োস কোডটি বুট কোডের জন্য নির্দিষ্ট ডিভাইসের অনুসন্ধান করে, বুট কোড (বুট লোডার) OS যা লোড করে তা বাকিগুলির যত্ন নেয়। BIOS "জানেন" যেখানে শিল্পের মানগুলি দেখতে হয়। একটি কাস্টম ডিভাইসটি শিল্পের মানগুলি অনুসরণ করবে বা একটি কাস্টম BIOS থাকবে যা এটির নিজস্ব বুট প্রক্রিয়া এবং বুট কোডটি কোথায় সন্ধান করবে তা নির্ধারণ করবে। আপনি কীভাবে BIOS, বুট লোডার বা কার্নেল তৈরি করবেন?
txtechhelp

ওয়েল আসলে আমি একটি Zynq 7000 সিরিজ FPGA সঙ্গে কাজ করছি। কোনও BIOS নেই, এবং আমি এটির উপর আরো কিছু পড়ি, এটি একটি মূল বুটলোডার রয়েছে যা পরে ফ্ল্যাশ হওয়া প্রথম স্তরের বুট লোডারটি সন্ধান করবে, যা দ্বিতীয় স্তরের লোডারটিকে নাটকে লোড করবে এবং এটি কার্যকর করবে। এখানে কৌশলটি FSBL তৈরি করছে এবং একটি ক্রস সংকলিত কার্নেল বুট করতে যথেষ্ট তথ্য রয়েছে।
MrMowgli

উত্তর:


1

কিভাবে প্রথম বুটস্ট্র্যাপ তৈরি করা হয়নি?

একটি বুটস্ট্র্যাপ প্রোগ্রাম নির্মাণ (লেখার এবং ক্রস-কম্পাইলিং) আপনি সুপারিশ হিসাবে মনে হয় হিসাবে daunting হয় না।

আমি অবশ্যই এআরএম ডিভাইস সম্পর্কে কথা বলছি, আমি একটি সাধারণ মেশিনে BIOS এর মাধ্যমে লোড করার বুনিয়াদি পেয়েছি, তবে বলুন আমরা একটি কাস্টম ডিভাইস সম্পর্কে কথা বলছি?

আপনি উল্লেখ করে যে BIOS মূলত একটি পিসি কনভেনশন। (সিপি / এম এছাড়াও একটি BIOS ছিল, কিন্তু অ-উদ্বায়ী মেমরি মধ্যে অপরিহার্য ছিল না।) এআরএম CPUs সাধারণত বা একটি BIOS ব্যবহার করে না।

আজকে ব্যবহার করা সাধারণ এআরএম প্রসেসরটি একটি আইসি তে একটি পেরেকেরালের সাথে সংহত করা হয় SoC একটি চিপ সিস্টেম ,. প্রধান স্মৃতি, যেমন DRAM, এবং অ-উদ্বায়ী স্টোরেজ, উদাঃ। NAND ফ্ল্যাশ, সাধারণত সর্বাধিক নকশা নমনীয়তা জন্য SoC বহিরাগত হয়। তবে বুটস্ট্র্যাপ অপারেশনগুলি শুরু করার জন্য সর্বনিম্ন সিস্টেম উপাদানগুলি প্রাথমিকভাবে শুরু করতে সাধারণত একটি ছোট (সম্ভবত 128KB) এমবেডেড রম (কেবল-পঠনযোগ্য মেমরি) রয়েছে। একটি প্রসেসর রিসেট সর্বদা এই বুট রম কার্যকর করা হবে। (এই রমটি কেবলমাত্র পঠনযোগ্য, এবং সংশোধন করা যাবে না। চিপ ফ্যাব্রিকেশনের সময় কোডটিকে সিলিকন-এ মুছিয়ে দেওয়া হয়।)

ওএস লোড এবং এক্সিকিউটিভ পাওয়ার জন্য প্রতিটি SOC বিক্রেতার নিজস্ব বুটস্ট্র্যাপ পদ্ধতি রয়েছে। বুটস্ট্র্যাপ ক্রম পরবর্তী ধাপের উত্স নির্ধারণ করতে GPIO পিনের মাধ্যমে কিছু হার্ডওয়ার স্ট্র্যাপিং ব্যবহার করে। আরেকটি বিক্রেতা একটি বুটস্ট্র্যাপ প্রোগ্রামের জন্য অনুসন্ধানের স্মৃতি এবং ডিভাইসগুলির একটি আদেশের তালিকা ব্যবহার করতে পারে। আরেকটি কৌশল, NOR ফ্ল্যাশে ফার্মওয়্যারে শাখা করা হয়, যা সরাসরি নির্বাহ করা যেতে পারে (যেমন XIP, সঞ্চালিত হয়)।

প্রধান মেমরির জন্য DRAM ব্যবহার করে এমন একটি সিস্টেম বুটস্ট্র্যাপিংয়ের সমস্যাগুলির মধ্যে একটি হল তার হার্ডওয়্যার আরম্ভকরণ। ডিআরএমে লোড করা এবং মৃত্যুদন্ড কার্যকর করার আগে DRAM মেমরি কন্ট্রোলারটি শুরু করতে হবে। সুতরাং এই প্রাথমিককরণ কোডটি কোথায় থাকে, যেহেতু এটি মূল মেমরিতে থাকতে পারে না?
প্রতিটি বিক্রেতা তাদের নিজস্ব সমাধান আছে। বুট রম ব্যবহারের জন্য কিছুকে মেমোরি কনফিগারেশন ডেটা ননভোল্যাটাইল মেমরিতে সংরক্ষণ করতে হবে। কিছু SOCs একটি ছোট বুটস্ট্র্যাপ প্রোগ্রাম চালানোর জন্য SRAM সংহত করেছে (যা DRAM এর মতো প্রাথমিককরণের প্রয়োজন নেই)। কিছু SOCs একটি XIP বুটস্ট্র্যাপ প্রোগ্রাম ধরে রাখার জন্য NOR ফ্ল্যাশ ব্যবহার করে।

একবার বুটস্ট্র্যাপ প্রোগ্রামটি ডিআরএএম-এর সূচনা করে, তখন মেমরিটি বুট করার পরবর্তী পর্যায়ে লোড করতে ব্যবহার করা যেতে পারে। এটি একটি সুধুনিক বুট ইউটিলিটি যেমন ইউ-বুট, বা (যদি বুটস্ট্র্যাপ প্রোগ্রাম সক্ষম হয়) লিনাক্স কার্নেল হতে পারে। মনে রাখবেন যে অনেকগুলি বুটস্ট্র্যাপ প্রোগ্রাম বা স্তর থাকতে পারে যা OS এর কার্যকর করার জন্য প্রসেসর রিসেটের মধ্যে সঞ্চালিত হয়।

লিনাক্স এআরএম কার্নেল বুট করার প্রয়োজনীয়তা নিম্নলিখিত নথিতে বানানো হয়েছে: http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html
Linux এআরএমের পুরোনো সংস্করণগুলি কার্নেলের মৌলিক কনফিগারেশন তথ্য পাস করার জন্য ATAGs তালিকা ব্যবহার করে। আধুনিক সংস্করণ একটি ডিভাইস ট্রি একটি কম্পাইল বাইনারি ব্যবহার করে একটি সম্পূর্ণ বোর্ড কনফিগারেশন প্রদান।

অবশ্যই "আপনি কিভাবে একটি বুটস্ট্র্যাপ করবেন?" প্রশ্ন কিছু যোগ্যতা ছাড়া উত্তর দেওয়া যাবে না।

পিসির BIOS এর মত, সোসাইটির বুট রম মালিকানাধীন এবং প্রকাশ করা হয় না (যদি না আপনি কোনও এনডিএতে সাইন ইন না করেন তবে)। তবে অন্যান্য বুট কোডটি জিপিএল বা অনুরূপ লাইসেন্সিংয়ের অধীনে এবং সহজে প্রাপ্তযোগ্য হিসাবে প্রকাশ করা হয়।


অভিযোজ্য বস্তু

যেহেতু আপনি এখন উল্লেখ করেছেন যে আপনি একটি Zynq 7000 ব্যবহার করছেন (যা একটি Xilinx SoC ব্যবহার করে), Xilinx একটি ভিডিও টিউটোরিয়াল আছে কিভাবে একটি লিনাক্স বুট ইমেজ নির্মাণ করা
যে ভিডিওটি আমি ইতিমধ্যে লিখিত করেছি তা নিশ্চিত করে:
1. এক্সিলিন্স এসওসিটিতে একটি এমবেডেড বুট রম রয়েছে (যা টেকনিক্যালি প্রথম পর্যায়ে রয়েছে, তবে এটি প্রায়শই উপেক্ষা করা বা স্টেজ শূন্য হিসাবে বর্ণনা করা হয়)।
2. পরবর্তী পর্যায়ে বুটস্ট্র্যাপ প্রোগ্রামের উৎস নির্দিষ্ট করার জন্য "মোড পিন" আছে।
3. বুট রম একটি বুটস্ট্র্যাপ প্রোগ্রাম লোড করে (যা টেকনিক্যালি দ্বিতীয় পর্যায়, তবে প্রায়শই "প্রথম" পর্যায় হিসাবে বর্ণনা করা হয়), যা এম্বেডেড SRAM এ FSBL নামে পরিচিত। এই প্রোগ্রামটি DRAM আরম্ভ করে এবং পরবর্তী ধাপে U-Boot লোড করে।
4. ইউ-বুট ডিআরএএম থেকে কার্যকর হয় এবং লিনাক্স কার্নেল লোড করে।

ভিডিওটি দেখায় যে FSBL সোর্স কোডটি Xilinx সাইট থেকে ডাউনলোড করা যেতে পারে এবং কয়েক ধাপে ক্রস-সংকলিত করা যেতে পারে। এমন কিছু নেই "ছলনা করা" আপনি অভিযোগ হিসাবে। বিল্ড একটি সোজা-অগ্রসর কনফিগারেশন এবং ক্রস-কম্পাইল, যা আমি সাধারণ অ্যাপ্লিকেশন প্যাকেজের চেয়ে সহজ / সহজ পাই।

সম্ভবত আপনার বিভ্রান্তি বুট মিডিয়ামের অস্পষ্টতা উপর ভিত্তি করে, যেমন বুট ইমেজগুলির উৎস (আছে) নির্দিষ্ট করা হয়নি। ভিডিও সম্ভাব্য বুট ডিভাইস হিসাবে NAND ফ্ল্যাশ এবং SDcard উল্লেখ।
বুট রম মোড পিন দ্বারা কনফিগার করা একটি উৎস মাধ্যম থেকে FSBL চিত্রটি পড়ার নির্দেশ দেওয়া হয়।

FSBL (যদি এটি অন্য বুটস্ট্র্যাপগুলির মতো হয় তবে এটি একটি কনফিগার করা উৎস মাধ্যম থেকে U-Boot পড়তে নির্মিত)। কোন রানটাইম বিকল্প আছে।

ইউ-বুট তার নামের ("সর্বজনীন") জীবিত থাকার চেষ্টা করে এবং বিভিন্ন ডিভাইস থেকে চিত্রগুলি (এবং স্ক্রিপ্টগুলি) লোড করতে কনফিগার করা যেতে পারে (পরিবেশের পরিবর্তনগুলি ব্যবহার করে)। ইন্টারেক্টিভ বিকল্প আছে।

এছাড়াও Xilinx উইকি দেখুন জিনক লিনাক্স , যা ঘোষণা করে যে "জিনকের বুটিং সম্পর্কিত সম্পূর্ণ তথ্য পাওয়া যাবে প্রযুক্তিগত রেফারেন্স ম্যানুয়াল "।


ঠিক আছে, লিঙ্ক খুব তথ্যপূর্ণ ছিল, ধন্যবাদ! নিশ্চিতভাবে যে ইমেজ একটি মেমরি ঠিকানা ম্যাপ করা হয় কিভাবে অসম্পূর্ণ এবং চালানো ব্যাখ্যা। তাই ট্রিকটি যথাযথ মেমরি অবস্থানের সাথে বুট ইমেজ সংকলনকে ক্রস করছে, সম্পূর্ণ চিত্রটি টেনে আনতে যথেষ্ট হার্ডওয়্যার সমর্থন বুটস্ট্র্যাপ করছে।
MrMowgli

এই বিভ্রান্তিটি আসলেই সত্য যে এই ক্ষেত্রে একটি FPGA এটির নিজস্ব হার্ডওয়্যার ডিভাইসগুলি সংজ্ঞায়িত করতে পারে এবং প্রোগ্রামেবল লজিকের জন্য নির্দিষ্ট একটি মেমরি মানচিত্র ফাইল রয়েছে। আসল প্রশ্নটির সাথে একটি জেনারিক তৃতীয় পক্ষের বোর্ডের উপর ভিত্তি করে বিভিন্ন উপাদান এবং মেমরি ডিভাইসগুলির সাথে এই ধারণাটি করা হয়েছে যে ক্রস সংকলন প্রথম স্থানে কীভাবে ঘটে। আমি মনে করি আপনার লিঙ্ক এটি ব্যাখ্যা একটি ভাল কাজ করে। তবে Zynq বোর্ডগুলির জন্য আপনাকে প্রোগ্রামযোগ্য লেয়ারের জন্য DTB ফাইল এবং বিট ফাইলগুলিরও প্রয়োজন।
MrMowgli
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.