কার্নেল.আইএমজি ফাইল
লিনাক্স কার্নেল ব্যবহার করার সময়, kernel.img
ফাইলটি কেবল একটি নতুন নামকরণ করা হয় linux/arch/arm/boot/Image
। এটাও সম্ভব হওয়া উচিত (অথবা অন্তত এটা সম্ভব শেষ সময় আমি চেক ছিল না) এই ফাইলের সংকুচিত সংস্করণ ব্যবহার করা - zImage
। initramfs
এটিতে ইন্টিগ্রেটেড (র্যামডিস্ক) থাকতে পারে তবে এটির প্রয়োজন নেই। উদাহরণস্বরূপ, স্টক kernel.img
ফাইলটি করার initramfs
সময় থাকে kernel_emergency.img
না।
দ্রষ্টব্য: ইলিনাক্স উইকিতে অফিসিয়াল কার্নেল সংকলন গাইড আপনাকে ফাইল imagetool-uncompressed.py
প্রস্তুত করার জন্য সরঞ্জাম ব্যবহার করা উচিত বলে পরামর্শ দেয় kernel.img
। রাস্পবেরিপির প্রথম দিনগুলিতে এটি প্রয়োজনীয় ছিল তবে আজকাল বুটলোডার নিয়মিত Image
এবং zImage
ফাইলগুলি পরিচালনা করতে পারে ।
কার্নেল উত্স ইস্যু
যা খুব গুরুত্বপূর্ণ তা হল রাস্পবেরিপির জন্য কার্নেল তৈরি করার সময়, আপনি কেবল এটির কোনও সংস্করণ ব্যবহার করতে পারবেন না। কেবলমাত্র বিশেষ সংস্করণ যা রাস্পবেরিপিতে পোর্ট করা আছে সেগুলি কাজ করবে। দুর্ভাগ্যক্রমে, বর্তমান প্রবাহের সংস্করণ ( kernel.org
সাইটে পাওয়া যায় ) রাস্পবেরিপির সাথে সামঞ্জস্যপূর্ণ নয়। এছাড়াও, versatil_config
রাস্পবেরিপির পক্ষে ভাল নয়, bcmrpi_defconfig
পরিবর্তে আপনার ব্যবহার করা উচিত (রাস্পবেরিপি সুসংগত কার্নেল উত্সগুলিতে পাওয়া যায়) অথবা bcmrpi_emergency_defconfig
যদি বিল্টিন ব্যবহারের পরিকল্পনাটি আপনার করা হয় initramfs
।
কার্নেল বিল্ডিংয়ের নির্দেশাবলী
রাস্পবেরিপির জন্য কার্নেল উত্সগুলি ধরে নেওয়ার সেরা স্থানটি ফাউন্ডেশন গিথুব । এটি কীভাবে পাবেন এবং অফিসিয়াল রাসব্পেরিপি উইকিতে এটি কীভাবে সংকলন করবেন সে সম্পর্কেও আপনি কিছু দরকারী ব্যাখ্যা পেতে পারেন । এখানে জড়িত পদক্ষেপগুলির আমার ছোট্ট সরলিকৃত সংস্করণটি (দ্রষ্টব্য: আমি ধরে নিয়েছি আপনি কার্নেলটি ক্রস কম্পাইল করতে চান It এটি আরও দ্রুত এবং একই ফলাফল তৈরি করা উচিত তবে রাস্পবেরিপিতে স্থানীয়ভাবে কার্নেল তৈরি করাও সম্ভব):
আপনার নিজস্ব তৈরি করতে অফিসিয়াল সরঞ্জামচেনটি ডাউনলোড করুন। প্রথম উপায়, আমি ধরে নিচ্ছি এটি ইনস্টলড আছে /usr/bin/arm-linux-gnueabi-*
। আপনার যদি এটি অন্য জায়গায় থাকে তবে CROSS_COMPILE
আপনার সমস্ত make
কমান্ডের বিকল্প পরিবর্তন করা উচিত ।
Https://github.com/raspberrypi/linux সাইটে যান যেখানে আপনি অফিসিয়াল র্যাপসবেরিপি কার্নেল উত্সগুলি পেতে পারেন। আপনি কোডটি দুটি উপায়ে ডাউনলোড করতে পারেন:
- একটি সংকুচিত ফাইল হিসাবে (এই বিকল্পটি ব্যবহার করার জন্য আপনাকে
git
ইউটিলিটি ইনস্টল করতে হবে না এবং আপনি এটি রাপসবেরিপিতে নিজেই করতে পারেন): সাইটের উপরে ZIP
কিছুটা নীচে আইবনে ক্লিক করুন Code
। এটি আপনাকে লেটস উত্স ফাইলগুলি ফাইল হিসাবে ডাউনলোড করতে দেওয়া উচিত zip
। পরিবর্তে আপনি এটি করতে গিট ব্যবহার করতে পারেন তবে এটির (উইকিতে বর্ণিত) আরও অনেক বেশি জায়গা এবং সময় প্রয়োজন। তারপরে উত্স ট্রি পেতে ফাইলটি সংক্ষেপিত করুন।
git
ইউটিলিটি ব্যবহার করে (এটি রাস্পবেরিপিতে আমার পক্ষে কার্যকর হয়নি কারণ সম্ভবত সামান্য পরিমাণের র্যাম রয়েছে তবে ডেস্কটপ সিস্টেমে ঠিক কাজ করা উচিত (নোট --depth 1
যুক্তি যা গিটকে বিকাশের পুরো ইতিহাস ডাউনলোড করতে বাধা দেয় (যা বিশাল)):
git clone --depth 1 git://github.com/raspberrypi/linux.git
ভিত্তি দ্বারা সরবরাহিত ডিফল্ট কনফিগারেশন ব্যবহার করুন:
cp arch/arm/configs/bcmrpi_defconfig .config
চালান make oldconfig
এবং কিছু প্রশ্নের উত্তর (এটি ডিফল্ট উত্তর ত্যাগ প্রতিটি প্রশ্নে এন্টার করা ঠিক হওয়া উচিত):
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- oldconfig
কার্নেলটি সঙ্কলন করুন:
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi-
কার্নেল মডিউলগুলি এতে অনুলিপি করুন /tmp/modules
:
make ARCH=arm modules_install INSTALL_MOD_PATH=/tmp/modules
Image
হিসাবে ফাইল ব্যবহার করুনkernel.img
আপনার রাস্পবেরিপি রুটফেসের ডিরেক্টরিতে /tmp/modules/lib/modules/
আপনার কম্পিউটার থেকে সমস্ত মডিউল আপলোড করুন /lib/modules/
।
Initramfs যুক্ত করা হচ্ছে
এটি তবে কীভাবে তৈরি করতে হয় তার নির্দেশাবলী সরবরাহ করে না initramfs
। যেহেতু এটি অত্যন্ত বিস্তৃত বিষয় (মূলত, আপনাকে ওয়ার্কিং লিনাক্স ইউজারস্পেস এনভায়রনমেন্ট এন্টি তৈরি করতে হবে এটি আসলে কতটা জটিল হতে পারে তার কোনও সীমাবদ্ধতা নেই), এখন আমি এটি এখানে আবরণ করব না। আমি কেবলমাত্র initramfs
এটি দুটি পৃথক রূপে ব্যবহার করা যেতে পারে তা লক্ষ্য করব - একক, এটি পৃথক ফাইল এবং বিল্টিন যেখানে এটি কার্নেল চিত্র ফাইলের সাথে সংহত করা হয়েছে (যেমন এটি রয়েছে kernel_emergency.img
)। দ্বিতীয় বিকল্পটি রাস্পবেরিপি বুটলোডার দ্বারা সমর্থিত হওয়া উচিত তবে কিছু গুজব রয়েছে যে এটি বর্তমান ফার্মওয়্যার সংস্করণে নষ্ট হয়েছে যাতে আপনার সম্ভবত বিল্ডিন সংস্করণ ব্যবহার করা উচিত।
আরম্ভ করার সর্বোত্তম উপায় হ'ল আরম্ভের গিথুব সংগ্রহস্থল থেকে এটি ডাউনলোড করে আরম্ভ করা আরম্ভের সামগ্রী (এটি কার্নেল_েমার্সেন্সি.আইএমজি জন্য ব্যবহৃত হচ্ছে) ব্যবহার করা এবং আপনি এই iniramfs
চিত্রটি ব্যবহার করে কার্নেল বুট করতে সক্ষম হওয়ার পরে , নিজের তৈরি করার চেষ্টা করুন। এর জন্য যা যা করা দরকার তা হ'ল ডাউনলোড ডিরেক্টরিটি ইউিং CONFIG_INITRAMFS_SOURCE
কার্নেল কনফিগারেশন বিকল্পটি নির্দেশ করে।
চূড়ান্ত নোট
সুতরাং আপনার এটি 3 টি পদক্ষেপে করা উচিত:
initramfs
ফাইল ছাড়াই কার্নেল তৈরি এবং বুট করার চেষ্টা করুন।
initramfs
আপনার কার্নেলের সাথে প্রস্তুত সামগ্রী যুক্ত করার চেষ্টা করুন ।
initramfs
আপনার প্রয়োজন অনুসারে এই সামগ্রীটি পরিবর্তন করুন ।