একটি কাস্টম লিনাক্স কার্নেল কনফিগার, সংকলন এবং ইনস্টল করা


38

আমি আমার ডিসট্রো সরবরাহ করা ছাড়া অন্য কার্নেলটি ব্যবহার করার চেষ্টা করতে চাই - হয় অন্য কোথাও থেকে, বা আমার দ্বারা স্বনির্ধারিত হিসাবে। এটি কি কঠিন বা বিপজ্জনক?

আমি কোথা থেকে শুরু করব?

উত্তর:


51

একটি কাস্টম কার্নেল তৈরি করা সময় সাশ্রয়ী হতে পারে - বেশিরভাগ কনফিগারেশনে, যেহেতু আধুনিক কম্পিউটারগুলি কয়েক মিনিটের মধ্যে বিল্ড তৈরি করতে পারে - তবে আপনি যদি আপনার বর্তমান, কার্যকারী কার্নেলটি রেখে যান এবং এটি ছেড়ে দেওয়ার ব্যাপারে নিশ্চিত হন তবে এটি বিশেষত বিপজ্জনক নয় is আপনার বুটলোডারটির মাধ্যমে বিকল্প হিসাবে (নীচে # 6 ধাপ দেখুন)। এইভাবে, যদি আপনার নতুনটি কাজ না করে তবে আপনি কেবল পুরানোটিকে রিবুট করতে পারেন।

নিম্নলিখিত নির্দেশাবলীতে, উত্স গাছের অভ্যন্তরের পাথগুলি ফর্মটি নিয়ে যায় [src]/whatever, যেখানে [src]আপনি উত্সটি ইনস্টল করেছেন সেই ডিরেক্টরিটি যেমন /usr/src/linux-3.13.3। আপনি সম্ভবত এই জিনিসটি করতে চাইছেন কারণ su rootলেখার অনুমতিগুলির ক্ষেত্রে উত্স গাছটি সুরক্ষিত থাকতে হবে (এটি মূলের মালিকানাধীন হওয়া উচিত)।

কিছু পদক্ষেপ alচ্ছিক হলেও আপনার এগুলি যেভাবেই পড়তে হবে কারণ এতে বাকী প্রক্রিয়াটি বোঝার জন্য প্রয়োজনীয় তথ্য রয়েছে।

  1. উত্স টারবাল ডাউনলোড এবং আনপ্যাক করুন।

    এগুলি কার্নেল.অর্গ থেকে উপলব্ধ । সাম্প্রতিকতম পৃষ্ঠাগুলি সর্বশেষ পৃষ্ঠায় তালিকাবদ্ধ রয়েছে, তবে আপনি যদি /pub/ডিরেক্টরিটির ভিতরে সন্ধান করেন তবে আপনি একটি সংরক্ষণাগারটি পুরোপুরি 1.0 সংস্করণে ফিরে যাবেন। অন্যথায় করার বিশেষ কারণ না থাকলে আপনি কেবলমাত্র "সর্বশেষ স্থিতাবস্থা" বেছে নেওয়াই সেরা। এই লেখার সময়, এটি একটি 74 এমবি tar.xzফাইল।

    একবার টার্বল ডাউনলোড হয়ে গেলে আপনার এটি অন্য কোথা থেকে আনপ্যাক করা দরকার। স্বাভাবিক জায়গায় /usr/src। ফাইলটি সেখানে রাখুন এবং:

    tar -xJf linux-X.X.X.tar.xz
    

    নোট করুন যে পৃথক ডিস্ট্রোস সাধারণত ভ্যানিলা গাছের পরিবর্তে তাদের উত্স প্যাকেজগুলির একটি ব্যবহার করার পরামর্শ দেয়। এটিতে ডিস্ট্রো সুনির্দিষ্ট প্যাচ রয়েছে, যা আপনার কাছে গুরুত্বপূর্ণ বা নাও পারে not এটি কার্নেলের সাথেও মিলবে কিছু ব্যবহারকারীর সরঞ্জাম সংকলন করতে ব্যবহৃত শিরোনাম, যদিও তারা সম্ভবত যেভাবেই অভিন্ন।

    কাস্টম কার্নেলগুলি তৈরি করার 15+ বছরের মধ্যে (বেশিরভাগ ফেডোরা / ডেবিয়ান / উবুন্টুতে), ভ্যানিলা 1 উত্সটি ব্যবহার করে আমার কখনও সমস্যা হয়নি । এটি করার ফলে খুব বেশি পার্থক্য আসে না, তবে আপনি যদি সর্বশেষতম কার্নেলটি চান তবে আপনার ডিস্ট্রো সম্ভবত এটি প্যাকেজ করে নি। তাই সবচেয়ে নিরাপদ রুটটি এখনও ডিস্ট্রো প্যাকেজটি ব্যবহার করার জন্য রয়েছে যা এটি ইনস্টল করা উচিত /usr/src আমি সর্বশেষতম স্থিতিশীলটিকে পছন্দ করি তাই আমি গিনিপিগ হিসাবে ড্রেসগুলিতে নামার আগেই অভিনয় করতে পারি :)

  2. একটি প্রাথমিক কনফিগারেশন [Startচ্ছিক] দিয়ে শুরু করুন।

    আপনাকে এটি করতে হবে না - আপনি ঠিক ডানদিকে ডুবতে পারেন এবং স্ক্র্যাচ থেকে একটি কনফিগারেশন তৈরি করতে পারেন। যাইহোক, যদি আপনি এটি আগে কখনও করেন নি তবে প্রচুর পরীক্ষা এবং ত্রুটি আশা করে । এর অর্থ হ'ল বেশিরভাগ বিকল্পগুলি পড়তে হবে (শত শত রয়েছে)। আরও ভাল বেট হ'ল যদি আপনার বিদ্যমান কনফিগারেশনটি ব্যবহার করা হয় তবে তা ব্যবহার করা। আপনি যদি কোনও ডিস্ট্রো উত্স প্যাকেজ ব্যবহার করেন তবে এটিতে ইতিমধ্যে একটি [src]/.configফাইল রয়েছে , যাতে আপনি এটি ব্যবহার করতে পারেন। অন্যথায়, একটি জন্য চেক করুন /proc/config.gz। এটি 2.6 কার্নেলের সাথে যুক্ত একটি optionচ্ছিক বৈশিষ্ট্য। যদি এটি বিদ্যমান থাকে তবে এটি উত্স গাছের শীর্ষ স্তরে এবং অনুলিপি করুন gunzip -c config.gz > .config

যদি এটি বিদ্যমান না থাকে তবে এটি সম্ভবত মডিউল হিসাবে কনফিগার করা হয়েছে বলে। চেষ্টা করুন sudo modprobe configs, তারপরে আবার /procডিরেক্টরিটি পরীক্ষা করুন config.gz

ডিস্ট্রো কনফিগারটি এই অর্থে খুব আদর্শ নয় যে এতে প্রায় প্রতিটি সম্ভাব্য হার্ডওয়্যার ড্রাইভার অন্তর্ভুক্ত রয়েছে। এটি কার্নেলের কার্যকারিতার সাথে খুব বেশি গুরুত্ব দেয় না, যেহেতু সেগুলি মডিউল এবং তাদের বেশিরভাগই কখনই ব্যবহারযোগ্য হবে না, তবে এটি নির্মাণের জন্য প্রয়োজনীয় সময়টিকে খুব উল্লেখযোগ্যভাবে বৃদ্ধি করে। এটি এও বিশ্রী যে এটির জন্য নির্দিষ্ট কোর মডিউলগুলি অন্তর্ভুক্ত করার জন্য একটি initramfs প্রয়োজন (নীচে # 4 ধাপ দেখুন)। তবে এটি সম্ভবত ডিফল্টের চেয়ে আরও ভাল সূচনা পয়েন্ট।

নোট করুন যে কনফিগারেশন বিকল্পগুলি এক কার্নেল সংস্করণ থেকে অন্যটিতে পরিবর্তিত হবে এবং আপনি যখন make configনীচের একটি প্রোগ্রাম পরিচালনা .configকরবেন তখন আপনার নতুন সংস্করণটি মেলানোর জন্য প্রথমে পার্স এবং আপডেট করা হবে। যদি কনফিগারেশনটি বেশিরভাগ পুরানো সংস্করণ থেকে থাকে তবে এটি অদ্ভুত ফলাফল হতে পারে, তাই আপনি যখন কনফিগারেশনটি করেন তখন মনোযোগ দিন। এএআইএআইএকি এটি অন্যান্য সমস্ত উপায়ে কাজ করবে না (নতুন সংস্করণ থেকে কোনও কনফিগার ব্যবহার করছে)।

  1. একটি .configউত্সাহ তৈরি করুন ।

    [src]/.configকার্নেল কনফিগার করতে ব্যবহৃত একটি টেক্সট ফাইল। এই ফাইলটি সরাসরি সম্পাদনা করবেন না । বিকল্প পরিবর্তন প্রায়ই একটি প্রতিস্থাপন একটি সহজ ব্যাপার নয় Yএকটি সঙ্গে N, ইত্যাদি; আন্তঃনির্ভরতা এবং শাখা প্রশাখার সম্ভাবনার একটি সেট সাধারণত রয়েছে। পরিবর্তে, আপনি কার্নেল মেকফিল থেকে কনফিগার লক্ষ্যগুলি ব্যবহার করতে চান (অর্থাত make _____শীর্ষ স্তরের উত্স ডিরেক্টরি থেকে কমান্ড লাইনে প্রবেশ করুন):

    • make configসর্বাধিক মৌলিক তবে সম্ভবত বেশিরভাগ মানুষের স্বাদে নয়। এটি প্রশ্নের ক্রম - অনেকগুলি প্রশ্ন - এবং আপনি যদি নিজের মতামত পরিবর্তন করেন তবে আপনাকে আবার শুরু করতে হবে।

    • make oldconfigmake configবাদে যেমন , আপনার যদি .configপূর্ববর্তী সংস্করণ থেকে ইতিমধ্যে একটি থাকে তবে নতুন বিকল্পগুলির সাথে সম্পর্কিত প্রশ্নগুলি বাদ দিবে। এখনও অনেকগুলি থাকতে পারে এবং তাদের মধ্যে বেশিরভাগ আবার আপনার কাছে অপ্রাসঙ্গিক হবে, আমি এটির প্রস্তাব দিই না।

    • make menuconfigআমার (এবং আমি মনে করি বেশিরভাগের) পছন্দসই পদ্ধতি। এটি একটি টিইউআই ইন্টারফেস তৈরি করে এবং সম্পাদন করে (রঙিন মেনু যা টার্মিনালটিতে কাজ করবে)। এর জন্য আপনার -devএনক্রোস ইনস্টল করার প্যাকেজ থাকা দরকার । এটি মোটামুটি স্ব-ব্যাখ্যামূলক, সমুদ্র সৈকতটি যা প্রবেশের মাধ্যমে রয়েছে /; F1 "সহায়তা" বর্তমান বিকল্পের জন্য ব্যাখ্যা সরবরাহ করে। make nconfigকয়েকটি অতিরিক্ত বৈশিষ্ট্য সহ একটি বিকল্প সংস্করণ রয়েছে, যেখানে F2 "syminfo" মেনুকনফাইগের F1 এর সমতুল্য।

    • make xconfigএকটি সম্পূর্ণ জিইউআই ইন্টারফেস। এটি প্রয়োজন qmakeএবং -devQt এর প্যাকেজটি আবার ইনস্টল করা হবে, এটি একটি প্রোগ্রাম যা সংকলিত এবং নির্মিত। আপনি যদি এইগুলি আগে ব্যবহার না করে থাকেন তবে এটি যথেষ্ট ডাউনলোড হতে পারে। আমি menuconfigজিইউআই সংস্করণকে পছন্দ করার কারণটি হ'ল বিকল্পের স্তরক্রমগুলি পূর্ববর্তী তবে ওপেন অ্যাকর্ডিয়নের মতো পরের স্ক্রিনগুলি ব্যবহার করে উপস্থাপিত হয়।

    আপনার প্রথম যে কাজটি করা উচিত (তবে তা করতে হবে না) তার মধ্যে একটি হ'ল "স্থানীয় সংস্করণ" স্ট্রিং যুক্ত করুন ( জেনারেল সেটআপের অধীনে )। এর কারণ নীচে # 5 তে উল্লেখ করা হয়েছে।

    "ল্যাবরেথাইন" বিকল্পের শ্রেণিবিন্যাসের বর্ণনা দেওয়ার একটি ভাল উপায় এবং এর সাথে বিশদভাবে জানানো এই জাতীয় প্রশ্নোত্তরের বাইরে নয়। আপনি যদি বসতে চান এবং সবকিছু দিয়ে যেতে চান তবে কয়েক ঘন্টা নির্ধারণ করুন । গ্রেগ ক্রোয়া-হার্টম্যান (লিনাক্স কার্নেলের জন্য দীর্ঘ সময়ের সীসা দেব) এর কার্নেল সম্পর্কে একটি নিখরচায় অনলাইন বই রয়েছে (নীচে উল্লেখগুলি দেখুন) এটি কনফিগারেশন সম্পর্কিত একটি অধ্যায় রয়েছে , যদিও এটি 2006 সালে লেখা হয়েছিল। আমার পরামর্শটি যুক্তিসঙ্গত ভিত্তি দিয়ে শুরু করা আপনার বর্তমান ডিস্ট্রো কার্নেল থেকে (# 2 হিসাবে) এবং তারপরে যান এবং আপনার যা প্রয়োজন তা জানেন না এমন সমস্ত জিনিসটি আনচেক করুন। আপনি সম্ভবত "বিল্ট ইন" তে কিছু "মডিউল" বিকল্পগুলি পরিবর্তন করতে চান যা আমাদের পরবর্তী পয়েন্টে নিয়ে আসে ...

  2. সম্পর্কে initramfs[alচ্ছিক]

    একটি "initramfs" হ'ল একটি সংকুচিত ফাইল সিস্টেম যা কার্নেলের মধ্যে নির্মিত এবং / অথবা বুট করার সময় লোড হয়। এর প্রাথমিক উদ্দেশ্যটি /lib/modulesমূল ফাইল সিস্টেমের অ্যাক্সেস করার আগে কার্নেলের প্রয়োজনীয় মডিউলগুলি অন্তর্ভুক্ত করা হয় - যেমন, সেই ফাইল সিস্টেমটি থাকা ডিভাইসের জন্য ড্রাইভার। ডিস্ট্রোজরা সর্বদা এগুলি আংশিকভাবে ব্যবহার করে কারণ ড্রাইভারগুলি পারস্পরিক বেমানান, এবং তাই সমস্তগুলি কার্নেলের মধ্যে তৈরি করা যায় না। পরিবর্তে, বর্তমান সিস্টেমে উপযুক্ত ব্যক্তিদের মধ্যে থেকে নির্বাচিত হয় initramfs

    এটি ভালভাবে কাজ করে এবং কোনও ধরণের অসুবিধাকে উপস্থাপন করে না, তবে আপনার নিজের কার্নেল তৈরি করার সময় এটি সম্ভবত একটি অপ্রয়োজনীয় জটিলতা। 2 ক্যাচটি হ'ল, যদি আপনি কোনও ইনি্রামফ ব্যবহার না করেন তবে আপনার রুট ফাইল সিস্টেমের (এবং এটিতে থাকা ডিভাইস) ড্রাইভারগুলি কার্নেলের মধ্যে অন্তর্নির্মিত হয়েছে তা নিশ্চিত করা দরকার। ইন menuconfig, এটি একটি M(= মডিউল) বিকল্প এবং একটি *(= অন্তর্নির্মিত ) বিকল্পের মধ্যে পার্থক্য । আপনি যদি এই অধিকারটি না পান তবে বুট প্রক্রিয়া শুরুতে সিস্টেমটি ব্যর্থ হবে। সুতরাং, উদাহরণস্বরূপ, যদি আপনার কাছে Sata হার্ডডিস্ক এবং একটি এক্সট 4 রুট ফাইল সিস্টেম থাকে তবে আপনার অন্তর্নির্মিতদের জন্য ড্রাইভার দরকার need [যদি কেউ অন্য যেটি অবশ্যই থাকা উচিত অন্য কোনও বিষয় সম্পর্কে ভাবতে পারে তবে একটি মন্তব্য করুন এবং আমি এটি এখানে অন্তর্ভুক্ত করব]।

    আপনি যদি কোনওটি ব্যবহার করতে চান তবে আপনাকে সাধারণ সেটআপেinitramfs উপযুক্ত বিকল্পগুলি নির্বাচন করতে হবে । কার্নেলের মধ্যে অন্তর্নির্মিত একটি তৈরি করার জন্য একটি কঙ্কাল গাইড রয়েছে , তবে লক্ষ্য করুন যে ডিস্ট্রোজরা এটি করেন না; তারা একটি বাহ্যিক জিজেপড সিপিও ফাইল ব্যবহার করে। যাইহোক, সেই দস্তাবেজের ("থ্রিমেন্টস এর সূচি" দেখুন) এর মধ্যে কী হওয়া উচিত তা নিয়ে একটি আলোচনা রয়েছে ।[src]/Documentation/filesystems/ramfs-rootfs-initramfs.txtinitramfs

  3. কার্নেলটি তৈরি করুন এবং ইনস্টল করুন।

    পরবর্তী পদক্ষেপ সহজ। কার্নেল তৈরি করতে হলে, শুধু চালানোর makeমধ্যে [src]ডিরেক্টরি। আপনি যদি কোনও মাল্টি-কোর সিস্টেমে থাকেন তবে -j Nআপনি গতি বাড়িয়ে দিতে পারেন, আপনি যে Nকোরগুলি উত্সর্গ করতে চান তার সংখ্যাটি কোথায় 1. নেই testবা নেই check। এটি শেষ হয়ে গেলে, আপনি পারেন make modules। দ্রুত বাক্সে, এই সমস্তটি 10 ​​মিনিট সময় নেয়।

    সব ঠিকঠাক থাকলে make INSTALL_MOD_STRIP=1 modules_install,। এটি /lib/modulesতৃতীয় ধাপে উল্লিখিত কার্নেলের সংস্করণ সংখ্যার সাথে "স্থানীয় সংস্করণ" স্ট্রিংয়ের সাথে মিল রেখে একটি ডিরেক্টরি তৈরি করবে , যদি তা থাকে। আপনি যদি "স্থানীয় সংস্করণ" স্ট্রিংটি ব্যবহার না করেন তবে আপনার উপর নির্ভর করে একই সংস্করণটির কার্নেলটি আগে থেকেই রয়েছে কিনা সাবধান হন , কারণ এই মডিউলগুলি সেগুলি প্রতিস্থাপন করবে। 3 INSTALL_MOD_STRIP=1 alচ্ছিক, তাত্পর্য জন্য এখানে দেখুন

    এর পরে make installআপনি ডিফল্ট স্থানে কার্নেলটি ইনস্টল করতে পারেন । আমার প্রস্তাবনাটি হ'ল কোনও বিদ্যমান ফাইলকে ওভাররাইট করা না হয় তা নিশ্চিত করার জন্য এটি নিজেই করা। অল্পক্ষণের [src]/arch/[ARCH]/bootনামে একজন ফাইলের জন্য bzImage4 , যেখানে [ARCH]হয় x86আপনি x86 অথবা x86-64 মেশিন (এবং অন্য কিছু আপনি অন্য কিছু হয় যদি থাকে) রয়েছে। /bootএটিকে অনুলিপি করুন এবং আরও সুনির্দিষ্ট এবং তথ্যমূলক কিছুতে এটির নামকরণ করুন (এটি কোনও বিষয় নয়)। একই জিনিসটি সহ করুন [src]/System.map, তবে নিম্নলিখিত স্কিম অনুসারে এর নতুন নাম দিন:

    System.map-[VERSION]
    

    এখানে, [VERSION]হয় ঠিক হিসাবে একই ডিরেক্টরিতে নাম /lib/modulesদ্বারা নির্মিতmake modules_install , যা "স্থানীয় সংস্করণ" স্ট্রিং, যেমন অন্তর্ভুক্ত করা হবে System.map-3.13.3-mykernel

  4. GRUB 2 বুটলোডার কনফিগার করুন।

    যদি আপনি ব্যবহার না করে থাকেন grub(তবে বেশিরভাগ লিনাক্স ডেস্কটপ ব্যবহারকারীরা রয়েছেন), এটি অবশ্যই আপনার জন্য প্রযোজ্য নয়। এতে আপনার খুব বেশি /etc/grub.d/40_customফাইল না থাকা উচিত । যদি তা না হয় তবে এটি রুটের মালিকানাধীন তৈরি করুন এবং chmod 755(এটি অবশ্যই কার্যকর হতে হবে)। যোগ করুন:

    menuentry 'My new kernel, or whatever' {
        set root='hd0,1'
        linux /boot/[name-of-kernel] root=/dev/sda1 [other kernel options]
    }
    

    আপনি যদি একটি initramfs ব্যবহার করে থাকেন তবে আপনার একটি শেষ লাইনও থাকা উচিত initrd /path/to/initramfsset root=লাইন সাবধান । উদাহরণস্বরূপ গ্রাব প্রথম হার্ড ড্রাইভের প্রথম পার্টিশনে (hd0,1) ইনস্টল করা হয়েছিল। আপনার যদি একাধিক ড্রাইভ থাকে, আপনি তার পরিবর্তে পার্টিশন ইউআইডি ব্যবহার করতে পারেন এবং সেই লাইনটি এর সাথে প্রতিস্থাপন করতে পারেন:

        search --no-floppy --fs-uuid --set=root [the UUID of the partition]
    

    যদি না কীড়া জন্য root ফাইল সিস্টেম নেই, এটি মিলা উচিত root=উপর নির্দেশ linuxলাইন, যা আপনার রুট ফাইল সিস্টেম (সঙ্গে এক ইঙ্গিত /sbin/initএবং /lib/modules)। এর ইউইউডি সংস্করণটি root=UUID=[the UUID]

    আপনি /boot/grub2/grub.cfgডিভাইসের নাম সম্পর্কে একটি সূত্রের জন্য আপনার বিদ্যমানটি দেখতে পারেন । এখানে গ্রাব 2 এর অধীনে একটি সংক্ষিপ্ত গাইড রয়েছে you একবার আপনি খুশি হয়ে গেলে চালান grub2-mkconfig -o /boot/grub2/grub.cfg(তবে আপনার বর্তমানটিকে grub.cfgপ্রথমে ব্যাক আপ করুন )। এরপরে আপনি সেই ফাইলটি সম্পাদনা করতে এবং আপনার এন্ট্রিটিকে শীর্ষে স্থানান্তর করতে চাইতে পারেন। এটিতে আপনার পুরানো (চলমান) কার্নেলের জন্য তালিকা থাকা উচিত এবং আপনার ডিস্ট্রোতে এমন একটি ব্যবস্থা থাকতে পারে যা নতুন কার্নেলের জন্য স্বয়ংক্রিয়ভাবে একটি এন্ট্রি নকল করে (কারণ এটিতে এটি পাওয়া যায় /boot; ফেডোরা এটি করে, সুতরাং, এর সাথে পৃথক শিরোনাম ব্যবহার করে menuentryএকটি ভাল ধারণা). সবকিছু ঠিকঠাক থাকলে আপনি পরে তা সরিয়ে ফেলতে পারেন।

    এছাড়াও আপনি শুধু ঢোকাতে পারবেন menuentryমধ্যে grub.cfgসরাসরি, কিন্তু যখন তাদের কার্নেল (ব্যবহার যেহেতু আপডেট করা হয় কিছু ডিস্ট্রো এই ওভাররাইট করবে /etc/grub.d/এটা অন্তর্ভূক্ত রাখা হবে)।

    এটাই. আপনাকে এখন যা করতে হবে তা হ'ল রিবুট। যদি এটি কাজ না করে তবে পর্দার আউটপুট থেকে সমস্যাটি কমাতে চেষ্টা করুন, পুরানো কার্নেলটি বেছে নেওয়ার পুনরায় বুট করুন এবং 3 ধাপে ফিরে যান ( .configইতিমধ্যে আপনার ব্যবহৃত ব্যবহার বাদে এবং সেটিকে টুইট করতে পারেন)। চেষ্টাগুলির মধ্যে make clean(বা make mrproper) এটি ভাল ধারণা হতে পারে তবে আপনি [src]/.configপ্রথমে কিছু ব্যাকআপে অনুলিপি করেছেন তা নিশ্চিত করুন , কারণ এটি মুছে যাবে। এটি নিশ্চিত করতে সহায়তা করে যে বিল্ড প্রক্রিয়াতে ব্যবহৃত জিনিসগুলি বাসি না হয়।

  5. কার্নেল শিরোনাম সম্পর্কিত। অল।

    একটা জিনিষ আপনি সম্ভবত কী করা উচিত সিমবলিক লিঙ্ক (হয় ln -s -i) /lib/modules/X.X.X/sourceএবং /lib/modules/X.X.X/buildকরতে /usr/srcডিরেক্টরি যেখানে উৎস গাছ (যে রাখা)। এটি প্রয়োজনীয় যাতে কিছু ব্যবহারকারী স্থান (এবং তৃতীয় পক্ষের ড্রাইভার ইনস্টলার) চলমান কার্নেলের জন্য উত্স অ্যাক্সেস করতে পারে।

    এ সম্পর্কিত কোনও .hফাইল হ'ল ফাইল /usr/includeইত্যাদি These এগুলি খুব ধীরে ধীরে পরিবর্তিত হয় এবং পশ্চাদপটে সামঞ্জস্যপূর্ণ । আপনার দুটি পছন্দ আছে:

    • আপনার ডিস্ট্রো দ্বারা ব্যবহৃত জিনিসগুলি ছেড়ে দিন। আপনি যদি পুরো সিস্টেমটি নিয়মিত আপডেট করেন তবে ডিস্ট্রো নিয়মিত যে কোনওভাবেই নতুন ইনস্টল করবে, সুতরাং এটি "সর্বনিম্ন ঝামেলা" বিকল্প।

    • ব্যবহার make headers_install

    যেহেতু তারা পশ্চাদপটে সামঞ্জস্যপূর্ণ (অর্থাত "পুরানো কার্নেল শিরোনাম ব্যবহার করে একটি সি লাইব্রেরির বিপরীতে নির্মিত প্রোগ্রামটি নতুন কার্নেলের উপর দিয়ে চালানো উচিত"), আপনাকে এই সম্পর্কে খুব উদ্বিগ্ন হওয়ার দরকার নেই। একমাত্র সম্ভাব্য সমস্যাটি হ'ল যদি আপনি একটি কাস্টম কার্নেল তৈরি করেন এবং এটি কিছুক্ষণ রাখেন, সেই সময়ে ডিস্ট্রো "কার্নেল-শিরোলেখ" প্যাকেজটিকে আপনার কার্নেল তৈরির চেয়ে নতুন সংস্করণে আপডেট করে এবং সেখানে কিছু দেখা যায় অসঙ্গতি (যা কেবলমাত্র উত্স থেকে সংকলিত সফ্টওয়্যারেই প্রযোজ্য)।

তথ্যসূত্র

এখানে কিছু সংস্থান রয়েছে:

  • [src]/README বিল্ডিং এবং ইনস্টল করার জন্য একটি সংক্ষিপ্ত গাইড অন্তর্ভুক্ত।

  • [src]/Documentationযে ডিরেক্টরি কনফিগারেশনে সহায়ক হতে পারে তথ্য অনেক রয়েছে।

  • গ্রেগ কেএইচ-র বেশিরভাগ বই লিনাক্স কার্নেল ইন নটশেল (পিডিএফ-এর সিরিজ হিসাবে বিনামূল্যে পাওয়া যায়) কার্নেলটি নির্মাণের চারদিকে ঘোরে।

  • গ্রাব 2 একটি অনলাইন ম্যানুয়াল আছে


১. "ভ্যানিলা" কর্নেল.আরজে পাওয়া যায় এমন অরিজিনাল অফিসিয়াল উত্সকে বোঝায়। বেশিরভাগ ডিগ্রোরা এই ভ্যানিলা উত্সটি গ্রহণ করে এবং কিছু ছোট ছোট কাস্টমাইজেশন যুক্ত করে।

২. নোট করুন যে এমন পরিস্থিতিতে রয়েছে যেগুলির জন্য একটি initramfs প্রয়োজন কারণ মূল ফাইল সিস্টেমটি মাউন্ট করার জন্য কিছু ইউজারস্পেসের প্রয়োজন হয় - উদাহরণস্বরূপ, যদি এটি এনক্রিপ্ট করা থাকে বা কোনও জটিল RAID অ্যারে জুড়ে ছড়িয়ে পড়ে।

৩. এটি ইতিমধ্যে বিদ্যমান মডিউলগুলি সরিয়ে ফেলবে না যদি আপনি সেগুলি তৈরি না করেন তবে, এর অর্থ আপনি কেবল আপনার কনফিগারেশনটি পরিবর্তন করে make modules_installআবার চালিয়ে মডিউলটি যুক্ত করতে পারেন । নোট করুন যে কয়েকটি মডিউল তৈরি করতে কার্নেলের মধ্যে নিজেই পরিবর্তন প্রয়োজন হতে পারে, সেক্ষেত্রে আপনাকেও কার্নেলটি প্রতিস্থাপন করতে হবে। আপনি যখন modprobeমডিউলটি সন্নিবেশ করানোর চেষ্টা করবেন তখন আপনি বলতে সক্ষম হবেন ।

৪. আপনি যদি একটি অ-মানক সংকোচন বিকল্প ব্যবহার করেন তবে এই ফাইলটিকে আলাদা কিছু নাম দেওয়া যেতে পারে। সমস্ত সম্ভাবনা কী তা আমি নিশ্চিত নই।


3
সম্মত। আপনি স্ক্রিপ্টের localmodconfigমতো একটি উল্লেখ এবং সরঞ্জামগুলিতে যোগ করতে চাইতে পারেন streamline_config.pl; আপনার বিদ্যমান সেটআপ থেকে কাজ করার জন্য একটি সহায়ক উপায় ...
জেসনওয়ারিয়ান

1
@ টেরডনের উদ্যোগে এটি প্রচলিত ধরণের প্রশ্ন হওয়ার পক্ষে যথেষ্ট বিশদ। মেটাতে তাঁর প্রশ্নের উত্তর দেওয়ার বিষয়ে বিবেচনা করুন। অথবা আমি যদি আপনি পছন্দ করতে পারেন। আপনি যেভাবেই প্রশ্নটি জিজ্ঞাসা করেছেন বলে মনে হচ্ছে এটি উদ্দেশ্য হতে পারে। বাইনারি প্যাকেজ তৈরির জন্য বিতরণ-সুনির্দিষ্ট পদ্ধতিগুলিও কার্যকর হবে বলে আমি মনে করি।
ফাহিম মিঠা

1
এফওয়াইআই: initramfsপ্রায় সর্বদা ব্যবহৃত হওয়ার কথা। উদাহরণস্বরূপ, LVM + RAID এ রুটফেস সেট করার জন্য প্রায়শই একটি প্রয়োজন। এনক্রিপ্ট করা রুট অবশ্যই করে। এমনকি যুক্তিসঙ্গতভাবে জটিল RAID সেটআপগুলি করে। এমনকি তুচ্ছ অ্যারেগুলির মধ্যে কার্নেল অটো
সমাবেশটি

2
@ডারবার্ট: এই প্রশ্নটি উত্থাপন করে যে "প্রায় সর্বদা" লিনাক্স একটি এন্টারপ্রাইজ সার্ভার চালানোর জন্য ব্যবহৃত হচ্ছে। আমার বক্তব্যটি initramfsহ'ল যদি আপনার একটি ব্যবহারের প্রয়োজন না হয় তবে আপনার দরকার নেই এবং এটি প্রক্রিয়াটি সহজ করে দেয়। যাই হোক, আমি এনক্রিপ্ট রুট FS, ইত্যাদি সম্পর্কে একটি পাদটীকা যুক্ত করেছি
স্বর্ণকেশ

EFI এবং লিনাক্স এর efi-stub কার্যকারিতা সম্পর্কে দয়া করে বিশদ অন্তর্ভুক্ত করুন।
আইডাব্লু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.