मैं अपने डिस्ट्रो द्वारा प्रदान किए गए एक के अलावा अन्य कर्नेल का उपयोग करने की कोशिश करना चाहता हूं - या तो कहीं और से या मेरे द्वारा अनुकूलित के रूप में। क्या यह मुश्किल या खतरनाक है?
मैं कहाँ से प्रारम्भ करूँ?
मैं अपने डिस्ट्रो द्वारा प्रदान किए गए एक के अलावा अन्य कर्नेल का उपयोग करने की कोशिश करना चाहता हूं - या तो कहीं और से या मेरे द्वारा अनुकूलित के रूप में। क्या यह मुश्किल या खतरनाक है?
मैं कहाँ से प्रारम्भ करूँ?
जवाबों:
एक कस्टम कर्नेल का निर्माण समय लेने वाला हो सकता है - ज्यादातर कॉन्फ़िगरेशन में, चूंकि आधुनिक कंप्यूटर मिनटों के मामले में बिल्ड कर सकते हैं - लेकिन यह विशेष रूप से खतरनाक नहीं है यदि आप अपने वर्तमान, काम करने वाले कर्नेल को रखते हैं, और इसे छोड़ना सुनिश्चित करते हैं अपने बूटलोडर के माध्यम से एक विकल्प के रूप में (नीचे चरण # 6 देखें)। इस तरह, यदि आपका नया काम नहीं करता है, तो आप पुराने को रीबूट कर सकते हैं।
निम्नलिखित निर्देशों में, स्रोत पेड़ के अंदर के रास्ते फॉर्म लेते हैं [src]/whatever
, जहां [src]
निर्देशिका है जहां आपने स्रोत को स्थापित किया है, जैसे /usr/src/linux-3.13.3
। आप शायद यह सामान करना चाहते हैं su root
क्योंकि स्रोत पेड़ को लिखने की अनुमति के मामले में सुरक्षित रहना चाहिए (इसे रूट के स्वामित्व में होना चाहिए)।
जबकि कुछ चरण वैकल्पिक हैं, आपको उन्हें वैसे भी पढ़ना चाहिए क्योंकि उनमें बाकी प्रक्रिया को समझने के लिए आवश्यक जानकारी होती है।
स्रोत टारबॉल को डाउनलोड और अनपैक करें।
ये kern.org से उपलब्ध हैं । नवीनतम पृष्ठ फ्रंट पेज पर सूचीबद्ध हैं, लेकिन यदि आप /pub/
डायरेक्टरी के अंदर देखते हैं , तो आपको एक संग्रह मिलेगा जो कि संस्करण 1.0 में वापस जाएगा। जब तक आपके पास अन्यथा करने के लिए विशेष कारण नहीं है, तो आप "नवीनतम स्थिर" चुनने के लिए सबसे अच्छा है। इस लेखन के समय, यह 74 एमबी की tar.xz
फ़ाइल है।
एक बार टारबॉल डाउनलोड होने के बाद, आपको इसे कहीं अनपैक करने की आवश्यकता है। सामान्य जगह में है /usr/src
। फ़ाइल को वहां रखें और:
tar -xJf linux-X.X.X.tar.xz
ध्यान दें कि व्यक्तिगत डिस्ट्रोस आमतौर पर आपको वैनिला पेड़ के बजाय उनके स्रोत पैकेजों में से एक का उपयोग करने की सलाह देते हैं। इसमें डिस्ट्रो विशिष्ट पैच शामिल हैं, जो आपके लिए महत्वपूर्ण हो सकते हैं या नहीं। यह कर्नेल से भी मेल खाएगा जिसमें कुछ उपयोक्ता उपकरण संकलित करने के लिए उपयोग किए जाने वाले हेडर शामिल हैं, हालांकि वे वैसे भी सबसे अधिक समान हैं।
कस्टम कर्नेल के निर्माण (ज्यादातर फेडोरा / Debian / Ubuntu पर) 15+ वर्षों में, मैं वेनिला का उपयोग कर एक समस्या थी कभी नहीं किया है 1 स्रोत। ऐसा करने से वास्तव में बहुत फर्क नहीं पड़ता है, हालांकि, इस तथ्य से परे कि यदि आप पूर्ण नवीनतम कर्नेल चाहते हैं, तो आपके डिस्ट्रो ने शायद इसे अभी तक पैक नहीं किया है। तो सबसे सुरक्षित मार्ग अभी भी डिस्ट्रो पैकेज का उपयोग करना है, जिसे स्थापित करना चाहिए /usr/src
। मैं नवीनतम स्थिर पसंद करता हूं ताकि मैं गिनी पिग के रूप में कार्य कर पाऊं, इससे पहले कि वह डिस्ट्रोस में लुढ़क जाए :)
एक बुनियादी विन्यास [वैकल्पिक] से शुरू करें।
आपको ऐसा करने की ज़रूरत नहीं है - आप सिर्फ सही में गोता लगा सकते हैं और खरोंच से एक कॉन्फ़िगरेशन बना सकते हैं। हालाँकि, यदि आपने पहले कभी ऐसा नहीं किया है, तो बहुत परीक्षण और त्रुटि की अपेक्षा करें । इसका मतलब यह भी है कि अधिकांश विकल्पों के माध्यम से पढ़ना (सैकड़ों हैं)। एक बेहतर शर्त यह है कि यदि उपलब्ध हो तो अपने मौजूदा कॉन्फ़िगरेशन का उपयोग करें। यदि आपने एक डिस्ट्रो सोर्स पैकेज का उपयोग किया है [src]/.config
, तो इसमें पहले से ही एक फ़ाइल है, इसलिए आप इसका उपयोग कर सकते हैं। अन्यथा, के लिए जाँच करें /proc/config.gz
। यह 2.6 कर्नेल में जोड़ा गया एक वैकल्पिक फीचर है। यदि यह मौजूद है, तो स्रोत पेड़ के शीर्ष स्तर पर प्रतिलिपि बनाएँ और gunzip -c config.gz > .config
।
यदि यह मौजूद नहीं है, तो शायद यह विकल्प मॉड्यूल के रूप में कॉन्फ़िगर किया गया था। कोशिश करें sudo modprobe configs
, फिर /proc
निर्देशिका को config.gz
फिर से जांचें ।
डिस्ट्रो कॉन्फ़िगरेशन इस मायने में बहुत आदर्श नहीं है कि इसमें लगभग हर संभव हार्डवेयर ड्राइवर शामिल है। यह कर्नेल की कार्यक्षमता के लिए बहुत मायने नहीं रखता है, क्योंकि वे मॉड्यूल हैं और उनमें से अधिकांश का उपयोग कभी नहीं किया जाएगा, लेकिन यह निर्माण करने के लिए आवश्यक समय को काफी बढ़ाता है। यह भी अजीब है कि इसमें कुछ मुख्य मॉड्यूल शामिल करने के लिए इनट्राम्राम्स की आवश्यकता होती है (नीचे चरण # 4 देखें)। हालाँकि, यह डिफ़ॉल्ट रूप से एक बेहतर शुरुआती बिंदु है।
ध्यान दें कि कॉन्फ़िगरेशन विकल्प शिफ्ट हो जाते हैं और एक कर्नेल संस्करण से अगले में बदल जाते हैं, और जब आप make config
अपनी .config
इच्छा से नीचे एक प्रोग्राम चलाते हैं, तो पहले नए संस्करण से मिलान करने के लिए पार्स और अपडेट किया जाएगा। यदि कॉन्फ़िगरेशन बहुत पुराने संस्करण से है, तो इससे अजीब परिणाम हो सकते हैं, इसलिए कॉन्फ़िगरेशन करते समय ध्यान दें। AFAIK यह अन्य सभी तरीकों से काम नहीं करेगा (एक नए संस्करण से एक कॉन्फिगर का उपयोग करके)।
एक .config
ature बनाएँ ।
[src]/.config
एक पाठ फ़ाइल है जिसका उपयोग कर्नेल को कॉन्फ़िगर करने के लिए किया जाता है। इस फ़ाइल को सीधे संपादित न करें । विकल्प बदलना अक्सर Y
एक N
, आदि के साथ बदलने का एक साधारण मामला नहीं है ; आमतौर पर अन्योन्याश्रितताओं और शाखाओं में बंटी संभावनाओं का एक समूह है। इसके बजाय, आप कर्नेल मेकफाइल से एक कॉन्फिग टारगेट का उपयोग करना चाहते हैं (मतलब, make _____
टॉप लेवल डायरेक्टरी डायरेक्टरी से कमांड लाइन पर एंटर करें ):
make config
सबसे बुनियादी है, लेकिन शायद अधिकांश लोगों के स्वाद के लिए नहीं। यह सवालों का एक क्रम है - बहुत सारे सवाल - और यदि आप अपना दिमाग बदलते हैं तो आपको फिर से शुरू करना होगा।
make oldconfig
को make config
छोड़कर, यदि आप पहले .config
से ही एक पिछले संस्करण से है, तो नए विकल्पों से संबंधित प्रश्नों को छोड़कर सवाल छोड़ देंगे। अभी भी उनमें से बहुत सारे हो सकते हैं और उनमें से ज्यादातर आपके लिए फिर से अप्रासंगिक होंगे, मैं इसकी सिफारिश नहीं करता हूं।
make menuconfig
मेरी (और मुझे लगता है कि अधिकांश अन्य) पसंदीदा तरीका है। यह एक TUI इंटरफ़ेस (रंगीन मेनू जो टर्मिनल पर काम करेगा) का निर्माण और निष्पादन करता है। इसके लिए आपके पास -dev
स्थापित ncurses के लिए पैकेज होना चाहिए । यह काफी आत्म-व्याख्यात्मक है, सिच के अलावा जो के माध्यम से सुलभ है /
; एफ 1 "मदद" वर्तमान विकल्प के लिए एक स्पष्टीकरण प्रदान करता है। make nconfig
कुछ अतिरिक्त विशेषताओं के साथ एक वैकल्पिक संस्करण है, जिसमें F2 "सिमिनोफो" मेन्यूकोफिग्स एफ 1 के बराबर है।
make xconfig
एक पूर्ण GUI इंटरफ़ेस है। इसके लिए आवश्यकता होती है qmake
और -dev
क्यूटी के लिए पैकेज को स्थापित किया जाता है, फिर से, यह एक प्रोग्राम है जिसे संकलित और बनाया गया है। यदि आप पहले इन का उपयोग नहीं कर रहे थे, तो यह एक पर्याप्त डाउनलोड हो सकता है। menuconfig
जीयूआई संस्करण को पसंद करने का कारण यह है कि विकल्प पदानुक्रम पूर्व में क्रमिक स्क्रीन का उपयोग कर प्रस्तुत किए जाते हैं, लेकिन बाद में खुले समझौते जैसे होते हैं।
पहली चीजों में से एक जो आपको (लेकिन नहीं करना है) एक "स्थानीय संस्करण" स्ट्रिंग ( सामान्य सेटअप के तहत ) को जोड़ना है । इसका कारण नीचे # 5 में उल्लिखित है।
"भूलभुलैया" विकल्प पदानुक्रम का वर्णन करने का एक अच्छा तरीका है, और इसके साथ विस्तार से प्राप्त करना इस तरह से क्यू एंड ए के दायरे से परे है। यदि आप बैठना चाहते हैं और सब कुछ के माध्यम से जाना चाहते हैं, तो अलग घंटे सेट करें । ग्रेग क्रोहा-हार्टमैन (लिनक्स कर्नेल के लिए लंबे समय तक लीड देव) के पास कर्नेल के बारे में एक मुफ्त ऑनलाइन पुस्तक है (नीचे संदर्भ देखें) जिसमें कॉन्फ़िगरेशन के बारे में एक अध्याय है , हालांकि यह 2006 में लिखा गया था। मेरी सलाह है कि एक उचित आधार के साथ शुरू करें अपने वर्तमान डिस्ट्रो कर्नेल से (# 2 के अनुसार) और फिर इसके माध्यम से जाएं और उन सभी चीजों को अनचेक करें जिन्हें आप जानते हैं कि आपको इसकी आवश्यकता नहीं है। आप शायद "मॉड्यूल" विकल्पों में से कुछ को "अंतर्निहित" में बदलना चाहते हैं, जो हमें मेरे अगले बिंदु पर लाता है ...
initramfs
[वैकल्पिक] के बारे में
एक "initramfs" एक संपीड़ित फाइलसिस्टम है जिसे कर्नेल में बनाया गया है और / या बूट समय पर लोड किया गया है। इसका प्राथमिक उद्देश्य उन मॉड्यूल को शामिल करना है जो कर्नेल को /lib/modules
रूट फाइल सिस्टम पर उन तक पहुंचने से पहले आवश्यकता होगी - उदाहरण के लिए, उस फाइल सिस्टम वाले डिवाइस के लिए ड्राइवर। डिस्ट्रोस हमेशा इन आंशिक रूप से उपयोग करते हैं क्योंकि ड्राइवर पारस्परिक रूप से असंगत हैं, और इसलिए सभी को कर्नेल में नहीं बनाया जा सकता है। इसके बजाय, वर्तमान प्रणाली के लिए उपयुक्त लोगों को अंदर से चुना जाता है initramfs
।
यह अच्छी तरह से काम करता है और किसी भी तरह के नुकसान का प्रतिनिधित्व नहीं करता है, लेकिन अपने कर्नेल का निर्माण करते समय यह संभवतः एक अनावश्यक जटिलता है। 2 कैच है, अगर आप इनट्राम्राम्स का उपयोग नहीं करते हैं, तो आपको यह सुनिश्चित करने की आवश्यकता है कि आपके रूट फाइलसिस्टम (और जिस डिवाइस पर है) के लिए ड्राइवर कर्नेल में बनाए गए हैं। में menuconfig
, यह एक M
(= मॉड्यूल) विकल्प और *
(= अंतर्निहित ) विकल्प के बीच अंतर है । यदि आपको यह अधिकार नहीं मिलता है, तो सिस्टम बूट प्रक्रिया में जल्दी विफल हो जाएगा। इसलिए, उदाहरण के लिए, यदि आपके पास SATA हार्डडिस्क और एक ext4 रूट फाइल सिस्टम है, तो आपको उन अंतर्निहित ड्राइवरों के लिए ड्राइवरों की आवश्यकता है। [अगर कोई भी किसी और चीज़ के बारे में सोच सकता है, तो उसे एक टिप्पणी छोड़नी होगी और मैं इसे यहाँ शामिल करूँगा]।
यदि आप एक का उपयोग करना चाहते हैं initramfs
, तो आपको सामान्य सेटअप में उपयुक्त विकल्पों का चयन करना होगा । कर्नेल में निर्मित एक बनाने के लिए एक कंकाल गाइड है [src]/Documentation/filesystems/ramfs-rootfs-initramfs.txt
, लेकिन ध्यान दें कि डिस्ट्रोस ऐसा नहीं करते हैं; वे बाह्य gzipped cpio फ़ाइल का उपयोग करते हैं। हालाँकि, उस डॉक्टर में क्या जाना चाहिए initramfs
("अंतर्विरोधों की सामग्री" देखें) की चर्चा है ।
कर्नेल बनाएं और इंस्टॉल करें।
अगला कदम आसान है। कर्नेल बनाने के लिए, बस निर्देशिका make
में चलाएँ [src]
। यदि आप एक मल्टी-कोर सिस्टम पर हैं, तो आप -j N
चीजों को गति देने के लिए जोड़ सकते हैं , जहां N
कोर की संख्या आप समर्पित करना चाहते हैं + 1. कोई test
या नहीं है check
। एक बार जो हो गया, आप कर सकते हैं make modules
। एक तेज बॉक्स पर, यह सब 10 मिनट लगना चाहिए।
यदि सब कुछ ठीक हो जाता है, make INSTALL_MOD_STRIP=1 modules_install
। यह /lib/modules
चरण 3 में उल्लिखित "स्थानीय संस्करण" स्ट्रिंग कर्नेल के संस्करण संख्या के मिलान में एक निर्देशिका बनाएगा , यदि कोई हो। यदि आपने "स्थानीय संस्करण" स्ट्रिंग का उपयोग नहीं किया है, तो सावधान रहें यदि आपके पास पहले से ही उसी संस्करण का कर्नेल है जो आप पर निर्भर करते हैं , क्योंकि ये मॉड्यूल उन की जगह लेंगे। 3 INSTALL_MOD_STRIP=1
वैकल्पिक है, महत्व के लिए यहां देखें ।
फिर आप make install
कर्नेल को डिफ़ॉल्ट स्थान पर स्थापित कर सकते हैं । मेरी सिफारिश, हालांकि, यह करने के लिए है कि यह सुनिश्चित करने के लिए कि कोई मौजूदा फाइल अधिलेखित न हो। एक नज़र डालें जो [src]/arch/[ARCH]/boot
नाम की एक फ़ाइल के लिए bzImage
4 , जहां [ARCH]
है x86
अगर आप एक x86 या x86-64 मशीन (और कुछ और आप कुछ और पर हैं) पर हैं। इसमें कॉपी करें /boot
और इसे कुछ और विशिष्ट और सूचनात्मक नाम दें (यह कोई फर्क नहीं पड़ता)। उसी के साथ काम करें [src]/System.map
, लेकिन निम्न योजना के अनुसार उसका नाम बदलें:
System.map-[VERSION]
यहाँ, [VERSION]
है बिल्कुल के रूप में ही में निर्देशिका का नाम /lib/modules
के द्वारा बनाई गईmake modules_install
है, जो "स्थानीय संस्करण" स्ट्रिंग, जैसे शामिल होंगे System.map-3.13.3-mykernel
।
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/initramfs
। set root=
लाइन से सावधान रहें । उदाहरण का अनुमान है कि ग्रब पहली हार्ड ड्राइव (HD0,1) के पहले विभाजन पर स्थापित किया गया था। यदि आपके पास कई ड्राइव हैं, तो आप इसके बजाय विभाजन UUID का उपयोग करना चाहते हैं और उस लाइन को इसके साथ बदल सकते हैं:
search --no-floppy --fs-uuid --set=root [the UUID of the partition]
जब तक ग्रब आपके रूट फाइल सिस्टम पर नहीं होता है, यह भी लाइन root=
पर निर्देश के अनुरूप होना चाहिए linux
, जो आपके रूट फाइल सिस्टम (एक के साथ /sbin/init
और /lib/modules
) को इंगित करता है । उस का UUID संस्करण है root=UUID=[the UUID]
।
आप /boot/grub2/grub.cfg
डिवाइस नाम के बारे में एक सुराग के लिए अपने मौजूदा को देख सकते हैं । यहाँ इस तरह के grub के तहत एक संक्षिप्त गाइड 2 है। एक बार जब आप खुश होते हैं, तो दौड़ें 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
पहले कुछ बैकअप की प्रतिलिपि बनाएँ , क्योंकि यह मिट जाएगा। यह सुनिश्चित करने में मदद करता है कि निर्माण प्रक्रिया में उपयोग की जाने वाली वस्तुएं बासी नहीं हैं।
कर्नेल हेडर एट के बारे में। अल।
एक चीज़ जो आपको करने की संभावना है, वह है सिम्लिंक ( ln -s -i
) /lib/modules/X.X.X/source
और /lib/modules/X.X.X/build
उस /usr/src
डायरेक्टरी में जहां स्रोत ट्री है (रखें)। यह आवश्यक है ताकि कुछ उपयोगकर्ता उपकरण (और तीसरे पक्ष के ड्राइवर इंस्टॉलर) चल रहे कर्नेल के लिए स्रोत तक पहुंच सकें।
इससे संबंधित एक मुद्दा इन .h
फ़ाइलों में है /usr/include
, आदि ये बहुत धीरे-धीरे बदलते हैं, और पिछड़े संगत हैं । आपके पास दो विकल्प हैं:
अपने डिस्ट्रो द्वारा इस्तेमाल किए गए लोगों को छोड़ दें। यदि आप पूरे सिस्टम को नियमित रूप से अपडेट करते हैं, तो डिस्ट्रो समय-समय पर नए को स्थापित करेगा, इसलिए यह "कम से कम परेशानी" विकल्प है।
का उपयोग करें make headers_install
।
चूंकि वे पिछड़े संगत हैं (मतलब "पुराने कर्नेल हेडर का उपयोग करके सी लाइब्रेरी के खिलाफ बनाया गया एक प्रोग्राम नए कर्नेल पर चलना चाहिए"), आपको इस बारे में बहुत उधम मचाने की ज़रूरत नहीं है। एकमात्र संभावित मुद्दा यह होगा कि यदि आप एक कस्टम कर्नेल का निर्माण करते हैं और इसे थोड़ी देर के लिए रखते हैं, तो उस समय के दौरान डिस्ट्रो "कर्नेल-हेडर" पैकेज को आपके कर्नेल के निर्माण के लिए उपयोग किए जाने की तुलना में एक नए संस्करण में अपडेट करता है , और कुछ होने के लिए निकलता है असंगति (जो केवल स्रोत से संकलित सॉफ़्टवेयर पर लागू होगी)।
यहाँ कुछ संसाधन हैं:
[src]/README
भवन और स्थापित करने के लिए एक संक्षिप्त गाइड शामिल है।
[src]/Documentation
निर्देशिका कि विन्यास में सहायक हो सकता है जानकारी का एक बहुत कुछ शामिल है।
नटशेल में ग्रेग के की पुस्तक लिनक्स कर्नेल का बहुत कुछ (पीडीएफ की एक श्रृंखला के रूप में मुफ्त में उपलब्ध है) कर्नेल के निर्माण के चारों ओर घूमता है।
ग्रब 2 में एक ऑनलाइन मैनुअल है ।
1. "वेनिला" kern.org पर पाए गए मूल, अनधिकृत आधिकारिक स्रोत को संदर्भित करता है। अधिकांश डिस्ट्रोस इस वेनिला स्रोत को लेते हैं और कुछ मामूली अनुकूलन जोड़ते हैं।
2. ध्यान दें कि ऐसी परिस्थितियाँ होती हैं जिनके लिए एक इनट्रामेफ़्स की आवश्यकता होती है क्योंकि रूट फाइलसिस्टम को माउंट करने के लिए कुछ उपयोगकर्ताओं की आवश्यकता होती है - उदाहरण के लिए, यदि यह एन्क्रिप्ट किया गया है, या एक जटिल RAID सरणी में फैला है।
3. यह उन मॉड्यूल को नहीं हटाएगा जो पहले से ही हैं यदि आपने उन्हें नहीं बनाया है, हालांकि, जिसका अर्थ है कि आप बाद में अपने कॉन्फ़िगरेशन को संशोधित करके और make modules_install
फिर से चलकर एक मॉड्यूल जोड़ सकते हैं । ध्यान दें कि कुछ मॉड्यूल के निर्माण के लिए कर्नेल में परिवर्तन की आवश्यकता हो सकती है, इस स्थिति में आपको कर्नेल को भी बदलना होगा। जब आप modprobe
मॉड्यूल सम्मिलित करने के लिए उपयोग करने का प्रयास करेंगे तो आप बता पाएंगे ।
4. यदि आप एक गैर-मानक संपीड़न विकल्प का उपयोग करते हैं तो इस फ़ाइल को कुछ अलग नाम दिया जा सकता है। मुझे यकीन नहीं है कि सभी संभावनाएं क्या हैं।
initramfs
माना जाता है कि इसका उपयोग लगभग हमेशा ही किया जाता है। उदाहरण के लिए, LVM + RAID पर रूटफुट सेट करने के लिए अक्सर एक की आवश्यकता होती है। एन्क्रिप्टेड रूट निश्चित रूप से करता है। यथोचित रूप से जटिल RAID सेटअप करते हैं। इन-गिरी भी तुच्छ सरणियों के विधानसभा ऑटो वास्तव में हटा दिया गया है ...
initramfs
में मेरा कहना है कि यदि आपको किसी एक का उपयोग करने की आवश्यकता नहीं है, तो आपको इसकी आवश्यकता नहीं है और यह प्रक्रिया को सरल करता है। वैसे भी, मैंने एन्क्रिप्टेड रूट fs, आदि के बारे में एक फुटनोट जोड़ा है
localmodconfig
तरह और उपकरणों के उल्लेख में जोड़ना चाह सकते हैंstreamline_config.pl
; आपके मौजूदा सेटअप से काम करने के लिए एक उपयोगी तरीका ...