स्थानीय मशीन के साथ कस्टम कर्नेल का निर्माण कैसे करें जो कई मशीनों के हार्डवेयर का समर्थन करता है?


9

किसी उपकरण को एक उपकरण की तरह चलाने के लिए कॉन्फ़िगर करते समय, एक कस्टम कर्नेल बनाने की आवश्यकता बढ़ सकती है। उदाहरण के लिए डिस्क स्थान को बचाने के लिए।

उबुन्टु कोर 13.10 amd64 रूट फाइलसिस्टम एक 38 एमबी डाउनलोड है, जहां "लाइनक्स-इमेज-जेनेरिक" मेटा पैकेज जिसमें आवश्यक निर्भरताएं शामिल हैं , 79 एमबी अभिलेखागार को डाउनलोड करेगा , और कर्नेल-इमेज- xyz-जेनेरिक पैकेज का आकार अभी भी 14 एमबी है

एक कर्नेल के निर्माण के लिए जो आपके हार्डवेयर का उपयोग नहीं करेगा मॉड्यूल से छीन लिया गया है, make localmodconfigकमांड काम के लिए सही उपकरण है। हालाँकि आपकी वर्चुअल मशीन जो आपके निर्माण और परीक्षण वातावरण को चलाती है, आपके लक्ष्य परिनियोजन हार्डवेयर की तुलना में भिन्न मॉड्यूल लोड करती है। और / या थोड़ी देर के बाद आपका परिनियोजन हार्डवेयर eol हो सकता है, और विभिन्न हार्डवेयर का उपयोग किया जाता है। और उस आवृत्ति पर जहां कर्नेल अपडेट जारी किए जाते हैं, यह हर अलग हार्डवेयर कॉन्फ़िगरेशन के लिए कस्टम कर्नेल बनाने के लिए बहुत बोझिल हो सकता है।

जल्दी से कुछ अलग हार्डवेयर बॉक्स पर चलने वाले कस्टम लिनक्स कर्नेल का निर्माण कैसे करें?

जवाबों:


11

make localmodconfigआदेश अभी भी इस काम के लिए सही उपकरण है। वास्तव में make localmodconfigचलाता हैscripts/kconfig/streamline_config.pl

फ़ाइल इनपुट

streamline_config.pl(पर्ल) स्रोत कोड को पढ़ते समय , एक अनैक्स्ड फीचर है my $lsmod_file = $ENV{'LSMOD'};जो lsmodकमांड से आउटपुट के बजाय लोड किए गए मॉड्यूल का पता लगाने के लिए फ़ाइल इनपुट की अनुमति देता है ।

लाइव सीडी

क्योंकि लोकोमॉडकॉन्फ़ lsmodलोड किए गए मॉड्यूल का पता लगाने के लिए आउटपुट का उपयोग करता है । हम प्रत्येक अलग-अलग हार्डवेयर सेटअप पर एक उबंटू लाइव सीडी चलाते हैं, एक टर्मिनल ( Ctrl+ Alt+ T) खोलते हैं , चलाते हैं lsmodऔर इसके आउटपुट को बचाते हैं।

कॉनटेनटेट आउटपुट

lsmodलगातार हेडर लाइनों को स्ट्रिप करते हुए आउटपुट फाइलों को संक्षिप्त करके आप एक इनपुट फ़ाइल बना सकते हैं जो आपके सभी आवश्यक कर्नेल मॉड्यूल को कवर करती है। हम हाथ से मॉड्यूल सूची की समीक्षा करना चाहते हैं और एक अधिक मैन्युअल नुस्खा का उपयोग करते हैं:

  1. $ cd linux-3.11.0/
    या उस निर्देशिका पर जाएं जहां आप अपना मेक कमांड चलाएंगे

  2. $ lsmod > lsmod.txt
    अपने लोड किए गए मॉड्यूल के साथ एक पाठ फ़ाइल बनाता है

  3. $ nano lsmod.txt
    नैनो पाठ संपादक खोलेंगे, निश्चित रूप से आप अपने पसंदीदा संपादक अनुप्रयोग का उपयोग कर सकते हैं

  4. अपने इच्छित मॉड्यूल को जोड़ें जो पहले से ही इस फ़ाइल के निचले भाग में नहीं हैं (उदाहरण के लिए इस awer के नीचे देखें), और तैयार होने पर इसे सहेजें।
    नोट: स्तंभ सारणी के पदों से मिलान करने के लिए रिक्त स्थान का उपयोग न करें।

  5. $ make LSMOD="lsmod.txt" localmodconfig
    यह आपके मॉडेम को लोड किए गए मॉड्यूल का पता लगाने के लिए इनपुट के रूप में आपके lsmod.txt फ़ाइल का उपयोग करने के लिए बताएगा

स्टीवन रोस्टेड के संबंध में - स्टीमलाइन_कॉन्फिग.प्ल के लेखक - चरण 5 में एक छोटे से अंकन के सुझाव के लिए।


Lsmod.txt (चरण 4) के लिए आवेदन करने और न करने के लिए उदाहरण के लिए उदाहरण:

क्योंकि Intel D33217CK मुख्य बोर्ड में Intel थर्मल सेंसर हैं जिन्हें हम पढ़ना चाहते हैं, हम इन पंक्तियों को जोड़ते हैं:

x86_pkg_temp_thermal   13810  0
intel_powerclamp       14239  0

लेकिन हम इस हार्डवेयर पर वर्चुअल मशीन नहीं चलाना चाहते हैं, इसीलिए हम इन लाइनों को छोड़ देते हैं:

kvm_intel             128218  0
kvm                   364766  1 kvm_intel

इसके थंडरबोल्ट पोर्ट से जुड़ा एक Apple (ब्रॉडकॉम) गिबिट ईथरनेट एडेप्टर है, जिससे हम जुड़ते हैं:

tg3                   152066  0
ptp                    18156  1 tg3
pps_core               18546  1 ptp

हमें लगता है कि हमें वॉल्यूम मिररिंग की आवश्यकता नहीं है, और इसके लिए जोड़ नहीं है:

dm_mirror              21715  0
dm_region_hash         15984  1 dm_mirror
dm_log                 18072  2 dm_region_hash,dm_mirror

और हमें ग्राफिक्स आउटपुट की भी आवश्यकता नहीं है (पाठ एक हेडलेस सर्वर पर करेगा), इसलिए हम इसमें शामिल नहीं हैं:

i915                  589697  3
i2c_algo_bit           13197  1 i915
drm_kms_helper         46867  1 i915
drm                   242354  4 i915,drm_kms_helper

एक और मशीन के लिए हमें इस रियलटेक ईथरनेट ड्राइवर की आवश्यकता है:

r8169                  61434  0
mii                    13654  1 r8169
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.