अपना खुद का लिनक्स कर्नेल कैसे बनाएं। उबंटू के लिए रूसी भाषा के दस्तावेज़ीकरण

कोई नया कर्नेल क्यों संकलित करना चाहेगा? यह अक्सर आवश्यक नहीं होता है क्योंकि डेबियन के साथ भेजा गया डिफ़ॉल्ट कर्नेल अधिकांश कॉन्फ़िगरेशन को संभालता है। इसके अलावा, डेबियन अक्सर कई वैकल्पिक गुठली प्रदान करता है। तो आप पहले जांचना चाहेंगे कि क्या कोई वैकल्पिक कर्नेल छवि पैकेज है जो आपके हार्डवेयर से बेहतर मेल खाता है। हालाँकि, यह एक नया कर्नेल संकलित करने के लिए उपयोगी हो सकता है:

कर्नेल को संकलित करने का प्रयास करने से डरो मत। यह मजेदार और लाभदायक है।

कर्नेल को डेबियन तरीके से संकलित करने के लिए, आपको कुछ पैकेजों की आवश्यकता होती है: और कुछ अन्य जो शायद पहले से ही स्थापित हैं (पूरी सूची के लिए देखें)।

यह विधि आपके कर्नेल स्रोत का .deb बनाएगी, और, यदि आपके पास गैर-मानक मॉड्यूल हैं, तो उनमें से एक सिंक्रनाइज़ आश्रित .deb भी बनाएं। यह कर्नेल छवियों को प्रबंधित करने का एक बेहतर तरीका है; कर्नेल, System.map, और बिल्ड के लिए सक्रिय कॉन्फ़िग फ़ाइल का एक लॉग रखेगा।

ध्यान दें कि आप नहीं पासअपने कर्नेल को "डेबियन वे" संकलित करने के लिए; लेकिन हम पाते हैं कि आपके कर्नेल को प्रबंधित करने के लिए पैकेजिंग सिस्टम का उपयोग करना वास्तव में सुरक्षित और आसान है। वास्तव में, आप अपने कर्नेल स्रोतों को लिनुस के बजाय सीधे प्राप्त कर सकते हैं, फिर भी संकलन विधि का उपयोग कर सकते हैं।

ध्यान दें कि आपको के अंतर्गत उपयोग करने के बारे में संपूर्ण दस्तावेज़ मिलेंगे। इस खंड में केवल एक संक्षिप्त ट्यूटोरियल है।

इसके बाद, हम मान लेंगे कि आपके पास अपनी मशीन पर पूरी तरह से लगाम है और आपके कर्नेल स्रोत को आपकी होम निर्देशिका में कहीं पर निकाल देगा। हम यह भी मानेंगे कि आपका कर्नेल संस्करण 3.16 है। सुनिश्चित करें कि आप उस निर्देशिका में हैं जहां आप कर्नेल स्रोतों को अनपैक करना चाहते हैं, उनका उपयोग करके उन्हें निकालें और उस निर्देशिका में बदलें जो बनाई गई होगी।

अब, आप अपने कर्नेल को कॉन्फ़िगर कर सकते हैं। चलाएँ यदि X11 स्थापित है, कॉन्फ़िगर किया गया है और चलाया जा रहा है; अन्यथा चलाएं (आपको स्थापित करने की आवश्यकता होगी)। ऑनलाइन सहायता पढ़ने के लिए समय निकालें और ध्यान से चुनें। जब संदेह होता है, तो आमतौर पर डिवाइस ड्राइवर (सॉफ्टवेयर जो हार्डवेयर बाह्य उपकरणों का प्रबंधन करता है, जैसे ईथरनेट कार्ड, एससीएसआई नियंत्रक, और इसी तरह) को शामिल करना बेहतर होता है, जिसके बारे में आप अनिश्चित हैं। सावधान रहें: अन्य विकल्प, जो किसी विशिष्ट हार्डवेयर से संबंधित नहीं हैं, उन्हें डिफ़ॉल्ट मान पर छोड़ दिया जाना चाहिए यदि आप उन्हें नहीं समझते हैं। "लोड करने योग्य मॉड्यूल समर्थन" में "कर्नेल मॉड्यूल लोडर" का चयन करना न भूलें (यह डिफ़ॉल्ट रूप से चयनित नहीं है)। यदि शामिल नहीं है, तो आपकी डेबियन संस्थापन समस्याओं का अनुभव करेगी।

स्रोत ट्री को साफ करें और मापदंडों को रीसेट करें। ऐसा करने के लिए, करें।

अब, कर्नेल संकलित करें: . "1.0" के संस्करण संख्या को इच्छानुसार बदला जा सकता है; यह केवल एक संस्करण संख्या है जिसका उपयोग आप अपने कर्नेल बिल्ड को ट्रैक करने के लिए करेंगे। इसी तरह, आप "कस्टम" (जैसे, एक होस्ट नाम) के स्थान पर अपनी पसंद का कोई भी शब्द रख सकते हैं। आपकी मशीन की शक्ति के आधार पर कर्नेल संकलन में काफी समय लग सकता है।

एक बार संकलन पूरा हो जाने पर, आप अपने कस्टम कर्नेल को किसी भी पैकेज की तरह स्थापित कर सकते हैं। जड़ के रूप में, करो। भाग एक वैकल्पिक उप-आर्किटेक्चर है, जो आपके द्वारा सेट किए गए कर्नेल विकल्पों पर निर्भर करता है। कुछ अन्य अच्छी सहायक फाइलों के साथ कर्नेल स्थापित करेगा। उदाहरण के लिए, वसीयत को ठीक से स्थापित किया जाएगा (कर्नेल समस्याओं को डीबग करने के लिए सहायक), और आपके वर्तमान कॉन्फ़िगरेशन सेट को शामिल करते हुए स्थापित किया जाएगा। आपका नया कर्नेल पैकेज आपके बूट लोडर को नए कर्नेल का उपयोग करने के लिए स्वचालित रूप से अद्यतन करने के लिए पर्याप्त चतुर है। यदि आपने एक मॉड्यूल पैकेज बनाया है, तो आपको उस पैकेज को भी इंस्टॉल करना होगा।

यह सिस्टम को रीबूट करने का समय है: उपरोक्त चरण द्वारा उत्पन्न किसी भी चेतावनी को ध्यान से पढ़ें, फिर .

डेबियन कर्नेल और कर्नेल संकलन के बारे में अधिक जानकारी के लिए, डेबियन लिनक्स कर्नेल हैंडबुक देखें। के बारे में अधिक जानकारी के लिए, में ठीक दस्तावेज़ पढ़ें।

यदि आपको याद हो, तो बहुत समय पहले हमने सीखा था कि स्रोत से फ्रीबीएसडी कर्नेल कैसे बनाया जाता है। सवाल यह है कि क्यों न लिनक्स कर्नेल के साथ ऐसा करना सीखें? स्रोत से लिनक्स कर्नेल के निर्माण के कारण, सामान्य तौर पर, एक ही हैं - कर्नेल का नवीनतम संस्करण प्राप्त करना, तत्काल सुरक्षा पैच लागू करना, विशिष्ट कार्यों और विशिष्ट हार्डवेयर के लिए अनुकूलन, साथ ही साथ कर्नेल विकास में भाग लेने की इच्छा, क्यूए की भूमिका में भी।

जरूरी!इस पोस्ट में दिए गए निर्देशों का पालन करने से आपके डेटा की हानि हो सकती है। बैकअप लें और याद रखें कि आप सब कुछ अपने जोखिम और जोखिम पर करते हैं। नीचे वर्णित सभी चीजों का परीक्षण Ubuntu 14.04 LTS पर किया गया है। लेकिन उबंटू के अन्य संस्करणों के साथ-साथ अन्य लिनक्स वितरणों पर, अंतर न्यूनतम होना चाहिए।

बूटलोडर सेट करना

इस तरह संपादित करें / आदि / डिफ़ॉल्ट / ग्रब:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=10
#GRUB_HIDDEN_TIMEOUT_QUIET=सच
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i-s2>/dev/null || इको डेबियन`
GRUB_CMDLINE_LINUX_DEFAULT="शांत स्पलैश"
GRUB_CMDLINE_LINUX=""

संपादन के बाद हम कहते हैं:

सुडो अपडेट-ग्रब

परिणामस्वरूप, सिस्टम बूट होने से पहले, आपको 10 सेकंड के लिए उस कर्नेल का चयन करने के लिए कहा जाएगा जिसके साथ आप बूट करना चाहते हैं। यदि आप अपने कर्नेल कॉन्फ़िगरेशन को गड़बड़ करते हैं और पिछले संस्करण के साथ बूट करना चाहते हैं तो बहुत आसान है!

निर्भरता स्थापित करें

हमें कम से कम निम्नलिखित पैकेजों की आवश्यकता होगी:

sudoapt-get installgitgccmakebc fakeroot dpkg-dev\
libncurses5-देव

कई प्रणालियों पर, हालांकि, वे सभी पहले से मौजूद होंगे।

स्रोत प्राप्त करना

wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.4.tar.xz
tar-xz-xvf linux-4.6.4.tar.xz
सीडी लिनक्स-4.6.4

या, यदि आप नवीनतम चाहते हैं, तो आप सीधे गिट से स्रोत प्राप्त कर सकते हैं:

# मिरर: https://github.com/torvalds/linux
गिट क्लोन'गिट: //git.kernel.org/pub/scm/linux/kernel/git/'\
'टोरवाल्ड्स/linux.git'
सीडी लिनक्स

इस तथ्य को देखते हुए कि मुझे Git में v4.6.4 टैग नहीं मिला, लिनक्स कर्नेल रिलीज़ विशेष रूप से संपीड़ित टार अभिलेखागार के रूप में बनाए गए हैं।

यदि, वेनिला कर्नेल के बजाय, आप कैननिकल से पैच के साथ कर्नेल बनाना चाहते हैं:

git क्लोन git://kernel.ubuntu.com/ubuntu/ubuntu-trusty.git
सीडी उबंटू-भरोसेमंद
गिट टैग | कम
गिट चेकआउट उबंटू-एलटीएस-4.4.0-31.50_14.04.1

मेरे अपने अनुभव से, यदि आप उबंटू का उपयोग करते हैं, तो आप सुरक्षित रूप से वेनिला कर्नेल का उपयोग कर सकते हैं। यह संभावना नहीं है कि आपको इससे कोई समस्या होगी।

टिप्पणी:दिलचस्प बात यह है कि मौजूदा अपेक्षाकृत लोकप्रिय लिनक्स वितरणों में, केवल जेंटू, स्लैकवेयर और आर्क लिनक्स अपने स्वयं के पैच के बिना कर्नेल का उपयोग करते प्रतीत होते हैं।

वैसे भी, अब आपके पास स्रोत कोड है।

कर्नेल को संकलित और स्थापित करना

उन विकल्पों का चयन करें जिनके साथ कर्नेल बनाया जाएगा:

यदि आवश्यक हो, सेटिंग्स बदलें, सहेजें पर क्लिक करें, फिर बाहर निकलें पर क्लिक करें। नतीजतन, हमारे द्वारा चुने गए मापदंडों वाली एक फाइल बनाई जाएगी।

पर अपडेट करेंकर्नेल (क्या आप पहले से ही किसी प्रकार के कर्नेल का उपयोग कर रहे हैं?) वर्तमान कर्नेल की कॉन्फ़िगरेशन लेना सुविधाजनक है, और नए विकल्पों को उनके डिफ़ॉल्ट मानों पर सेट करना सुविधाजनक है:

zcat/proc/config.gz > ./.config
Olddefconfig बनाओ

अंत में, हम एकत्र करते हैं:

मेक-जे4 बिंदेब-पीकेजी लोकलवर्शन=-कस्टम

कोर को काफी लंबे समय तक इकट्ठा किया जाता है। मेरे लैपटॉप पर, असेंबली में 1 घंटा 15 मिनट का समय लगा। हालांकि, इस समय से के विषय मेंबाकी डिबग प्रतीकों के साथ एक विशाल कर्नेल पैकेज बनाने में खर्च किया जाता है।

लिनक्स कर्नेल का मैनुअल निर्माण और विन्यास

कॉन्फ़िगरेशन में CONFIG_DEBUG_INFO पैरामीटर पर टिप्पणी करके इस पैकेज की असेंबली को अक्षम किया जा सकता है। बस इस बात से अवगत रहें कि यह पैकेज सिस्टमटैप और अन्य उपयोगी उपकरणों के लिए आवश्यक है।

कर्नेल के अलावा, आप दस्तावेज़ीकरण भी एकत्र कर सकते हैं:

# वहाँ भी है 'pdfdocs' और अन्य, देखें 'मदद करें'
htmldocs बनाओ
क्रोमियम-ब्राउज़र दस्तावेज़ीकरण/DocBook/index.html

विधानसभा के पूरा होने पर सहायकनिर्देशिका हम कुछ इस तरह देखते हैं:

linux-फर्मवेयर-इमेज-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-headers-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-image-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-image-4.4.13-custom-dbg_4.4.13-custom-1_amd64.deb
linux-libc-dev_4.4.13-custom-1_amd64.deb

हम कर्नेल के डीबीजी-संस्करण को छोड़कर सभी डेब-पैकेज को सामान्य वाले के साथ रखते हैं और रिबूट करते हैं। रिबूट करने के बाद, हम कमांड के आउटपुट को देखते हैं। हम सुनिश्चित करते हैं कि हमने वास्तव में नए कर्नेल के साथ बूट किया है। यदि नए कर्नेल में कुछ गड़बड़ है, तो बूटलोडर में हम केवल उसी का चयन करते हैं जिसके साथ सिस्टम को पहले बूट किया गया था। पुराने कर्नेल के साथ बूट करने के बाद, हम नए कर्नेल के संकुल को जल्दी से हटा देते हैं, और वॉयला - सिस्टम अपनी पिछली स्थिति में वापस आ जाता है।

इसके अतिरिक्त, एक नया कर्नेल लोड करने के बाद, आप उस पर परीक्षण चला सकते हैं:

सुडोमेक सेल्फटेस्ट
सुडोमेक सेल्फटेस्ट-क्लीन

बधाई हो, अब आप जानते हैं कि लिनक्स कर्नेल कैसे बनाया जाता है!

निष्कर्ष

लिनक्स कर्नेल के आंतरिक भाग पर सामग्री:

  • KernelNewbies.org, अपने स्वयं के मेलिंग सूची, IRC चैनल, फ़ोरम, विकी, और बहुत कुछ के साथ Linux कर्नेल में नए शौक़ीन लोगों के लिए एक साइट;
  • LKML.org, एक ब्राउज़र के माध्यम से Linux कर्नेल डेवलपर्स की मेलिंग सूची को आराम से पढ़ने के लिए एक साइट। सावधान रहें, यह अक्सर अक्षरों के स्वरूपण को खराब कर देता है! इस अर्थ में, marc.info पर मेलिंग सूची संग्रह काफी बेहतर है;
  • लिनक्स क्रॉस रेफरेंस, एक ब्राउज़र के माध्यम से लिनक्स कर्नेल कोड को आसानी से पढ़ने के लिए एक साइट;
  • लिनक्स कर्नेल डेवलपमेंट, तीसरा संस्करण पुस्तक अंग्रेजी में लिनक्स कर्नेल पर सबसे हाल की पुस्तक है (2010, कर्नेल 2.6.x), रूसी में अनुवाद है;
  • Linux-Treiber entwickeln, 4th Edition पुस्तक हाल ही में (2015, कर्नेल 4.x) है, लेकिन जर्मन में लिखी गई है और इसका कोई अनुवाद नहीं है;
  • अलेक्जेंडर कुलेशोव a.k.a @ 0xAX द्वारा मुफ्त लिनक्स इनसाइड बुक सबसे अधिक सुलभ और अप-टू-डेट लगती है, लेकिन वर्तमान में लिखे जाने की प्रक्रिया में है;
  • कभी-कभी आप Linux कर्नेल HTML दस्तावेज़ीकरण, Linux कर्नेल स्रोतों से आधिकारिक दस्तावेज़ीकरण में कुछ उपयोगी पा सकते हैं;
  • लिनक्स डिवाइस ड्राइवर्स पुस्तक के उदाहरण, तीसरा संस्करण, जो अद्यतित रखने की कोशिश कर रहे हैं, साथ ही चौथे संस्करण के लिए स्रोत, जो वर्तमान में लिखा जा रहा है;

क्या आप स्रोत से कर्नेल बनाते हैं, और यदि हां, तो क्यों? मैं

योग:आपको लिनक्स पर कर्नेल कोड डिबगिंग के बारे में द स्कैंडलस ट्रुथ लेख में भी रुचि हो सकती है।

टैग: लिनक्स, रिंग0.

लिनक्स कर्नेल का संकलन


कई लोग खुद को एक स्मार्ट और उन्नत "लिनक्सॉइड" के रूप में दिखाने के लिए इसे समय की व्यर्थ बर्बादी मानते हैं। वास्तव में, कर्नेल को संकलित करना एक बहुत ही महत्वपूर्ण बात है। मान लें कि आपने एक नया लैपटॉप खरीदा है जिसमें काम करने वाला वेबकैम नहीं है। आपके कार्य? आप खोज इंजन में देखें और इस मुद्दे पर समस्या के समाधान की तलाश करें। अक्सर यह पता चल सकता है कि आपका वेबकैम कर्नेल के नए संस्करण पर चल रहा है जो आपके पास है। यदि आप नहीं जानते कि आपके पास कौन सा संस्करण है, तो टर्मिनल में uname -r टाइप करें, परिणामस्वरूप आपको कर्नेल संस्करण मिलेगा (उदाहरण के लिए, linux-2.6.31-10)। इसके अलावा, कर्नेल संकलन का व्यापक रूप से प्रदर्शन बढ़ाने के लिए उपयोग किया जाता है: तथ्य यह है कि कर्नेल वितरण डिफ़ॉल्ट रूप से "सभी के लिए" संकलित किया जाता है, इस वजह से, इसमें बड़ी संख्या में ड्राइवर शामिल होते हैं जिनकी आपको आवश्यकता नहीं हो सकती है। इसलिए यदि आप अपने हार्डवेयर को अच्छी तरह जानते हैं, तो आप कॉन्फ़िगरेशन चरण में अनावश्यक ड्राइवरों को अक्षम कर सकते हैं। सिस्टम की थोड़ी गहराई को बदले बिना 4 गीगाबाइट से अधिक रैम के लिए समर्थन को सक्षम करना भी संभव है।

कैसे एक लिनक्स कर्नेल बनाने के लिए? लिनक्स कर्नेल का निर्माण

इसलिए, यदि आपको अभी भी अपना कर्नेल रखने की आवश्यकता है, तो चलिए संकलन शुरू करते हैं!


करने के लिए पहली बात वांछित कर्नेल संस्करण के लिए स्रोत कोड प्राप्त करना है। आमतौर पर आपको नवीनतम स्थिर संस्करण प्राप्त करने की आवश्यकता होती है। सभी आधिकारिक कर्नेल संस्करण kernel.org पर उपलब्ध हैं।

यदि आपके पास पहले से एक एक्स सर्वर (होम कंप्यूटर) स्थापित है, तो आप अपने पसंदीदा ब्राउज़र में साइट पर जा सकते हैं और वांछित संस्करण को tar.gz (gzip संपीड़ित) संग्रह में डाउनलोड कर सकते हैं। यदि आप कंसोल में काम कर रहे हैं (उदाहरण के लिए, आपने अभी तक X सर्वर स्थापित नहीं किया है या सर्वर को कॉन्फ़िगर कर रहे हैं), तो आप टेक्स्ट ब्राउज़र (उदाहरण के लिए, elinks) का उपयोग कर सकते हैं।

आप मानक wget डाउनलोड प्रबंधक का भी उपयोग कर सकते हैं:


टार -zxvf path_to_archive

कर्नेल विन्यास।

संकलन।
बनाना और स्थापित करना
हम 20 मिनट से लेकर कई घंटों तक (कंप्यूटर की शक्ति के आधार पर) प्रतीक्षा करते हैं। कर्नेल स्थापित है। इसे ग्रब (2) सूची में प्रदर्शित करने के लिए, टाइप करें (रूट के रूप में)
अद्यतन-कोड़ना


लेख संग्रह:
मई 2017
मार्च 2017
अप्रैल 2016
मार्च 2016
अक्टूबर 2013
सितम्बर 2013
मई 2013
मार्च 2013
नवंबर 2012
जुलाई 2012
जून 2012
अप्रैल 2012
मार्च 2012
फरवरी 2012
अप्रैल 2011
मार्च 2011
फरवरी 2011
जनवरी 2011
दिसंबर 2010
नवंबर 2010
अक्टूबर 2010
सितंबर 2010
अगस्त 2010
जुलाई 2010
जून 2010
मई 2010
अप्रैल 2010
मार्च 2010

अनियमित:

तारामंडल आभासी तारामंडल: नई सुविधाओं का अवलोकन

BOINC: विज्ञान के लिए कंप्यूटिंग

गाम्बस: लिनक्स पर बुनियादी विकास

SSH 2.0 सीरियल डायग्राम

Linuxnow.ru: भविष्य के लिए योजनाएं

अचानक डिस्क स्थान खाली हो रहा है? शायद समस्या लॉग में है।

सहकर्मी: सभी
सभी के लिए लिनक्स

हमारे बैनर:


बैनर सेट करें

लिनक्स कर्नेल विन्यास

स्रोत पैकेज की जाँच करना

कर्नेल को पुन: संकलित करने के लिए इसके स्रोतों की आवश्यकता होती है।

सिस्टम प्रशासन के बारे में ब्लॉग। Linux, Windows, NetApp संग्रहण और वर्चुअलाइजेशन के बारे में लेख।

Red Hat कर्नेल स्रोत को एकल rpm संकुल में रखता है, लेकिन मूलभूत रूप से संस्थापित नहीं है. इस पैकेज का नाम:

कर्नेल-स्रोत-2.4.2-2.1386.rpm

स्रोत कोड के अलावा, कर्नेल को फिर से संकलित करने के लिए, आपको एक कंपाइलर की आवश्यकता होती है जिसमें दो घटक होते हैं:

उपयोगिता बनाना;

C भाषा का कंपाइलर ही gcc या egcs है।

वर्तमान कर्नेल की बैकअप प्रतिलिपि बनाना तीन चरणों में किया जाता है:

1. कर्नेल स्रोतों की बैकअप प्रतिलिपि बनाना, जो आपको कॉन्फ़िगरेशन क्षतिग्रस्त होने पर इसे पुनर्स्थापित करने की अनुमति देता है।

2. सिस्टम को लॉन्च करने के एक ज्ञात कार्य साधन के रूप में कर्नेल की बैकअप प्रतिलिपि बनाना।

3. ऑपरेटिंग सिस्टम लोडर के लिए एक नई प्रविष्टि का निर्माण, जिसका उपयोग कर्नेल बैकअप से बूट करने के लिए किया जा सकता है।

एक स्रोत बैकअप बनाना कर्नेल स्रोत निर्देशिका को डिस्क पर कॉपी करके किया जाता है। विपरीत दिशा में कॉपी करके रिकवरी की जाती है।

जब कर्नेल को पुन: संकलित किया जाता है, तो पुराने कर्नेल को .old एक्सटेंशन वाली फ़ाइल में लिखा जाता है। हालांकि, कर्नेल की यह प्रति अभी तक सिस्टम को बूट करने के लिए उपयोग नहीं की जा सकती है। यह उपरोक्त कार्यों को करने की आवश्यकता की व्याख्या करता है।

LILO- प्रकार का ऑपरेटिंग सिस्टम लोडर, जो आमतौर पर Linux को बूट करने के लिए उपयोग किया जाता है, रूट फ़ाइल सिस्टम में कर्नेल फ़ाइल से लिंक करके कॉन्फ़िगर किया गया है।

कर्नेल का बैकअप लेने के बाद, आपको /etc/lilo.conf फ़ाइल में एक और प्रविष्टि जोड़ने की आवश्यकता है ताकि आप पुराने कर्नेल के साथ Linux प्रारंभ कर सकें:

फ़ाइल खोलें /etc/lilo. एक पाठ संपादक में conf

पूरे विभाजन की एक प्रति बनाएँ;

कॉपी में दो स्थान बदलें:

कर्नेल फ़ाइल नाम को उसकी बैकअप प्रतिलिपि (एक्सटेंशन के साथ) के नाम से बदलें;

विभाजन लेबल को linux जैसी किसी चीज़ से बदलें। मूल (मूल लिनक्स) या लिनक्स-पिछला (पुराना लिनक्स)।

initrd से शुरू होने वाली लाइनों को उपयुक्त फ़ॉलबैक से बदला जाना चाहिए, जैसे कि initrd-2 .4.2-2। मूल आईएमजी;

/etc/lilo में परिवर्तन लिखें। कॉन्फ़.

बूटलोडर में एक नई प्रविष्टि दर्ज करने के लिए /sbin/lilo कमांड दर्ज करें। जब आप लिलो कमांड चलाते हैं, तो ऑपरेटिंग सिस्टम बूट लोडर में दर्ज छवियों के लेबल स्क्रीन पर प्रदर्शित होते हैं।

अगली बार जब सिस्टम रिबूट होगा, तो नई कर्नेल आईडी LILO बूट लोडर टूलटिप में प्रदर्शित होगी।

एक नया कर्नेल कॉन्फ़िगर करना

कॉन्फ़िगरेशन तय करता है कि कर्नेल में कौन-सी सुविधाएँ शामिल करनी हैं, किन-किन को शामिल नहीं करना है, इत्यादि। आप एक पुराने कर्नेल को कॉन्फ़िगर करने और एक नया स्थापित/कॉन्फ़िगर करने के बीच चयन कर सकते हैं। उदाहरण के लिए, Red Hat Linux 7.1 का उपयोग करके, आप मौजूदा 2.4.2 कर्नेल को नए विकल्पों के साथ पुन: विन्यस्त कर सकते हैं। आप नया 2.4.4 कर्नेल डाउनलोड और इंस्टॉल भी कर सकते हैं। हालांकि कॉन्फ़िगरेशन विवरण दो मामलों में भिन्न हैं, उपयोग की जाने वाली उपयोगिताओं और कॉन्फ़िगरेशन पद्धति स्वयं समान हैं।

लिनक्स में तीन अलग-अलग कॉन्फ़िगरेशन उपयोगिताएँ हैं, प्रत्येक की अपनी विशेषताओं के साथ।

कमांड लाइन इंटरफेस के साथ एक उपयोगिता। उपयोगकर्ता लगातार उन सुविधाओं के बारे में सवालों के जवाब देता है जिन्हें कर्नेल में शामिल करने की आवश्यकता होती है। यह उपयोगिता उन लोगों के लिए उपयोगी है जो कर्नेल के साथ काम करना जानते हैं, और उनके लिए जिनके पास इस उपयोगिता के लिए कॉन्फ़िगरेशन स्क्रिप्ट हैं।

पाठ मोड मेनू के साथ उपयोगिता। इस उपयोगिता का बहु-स्तरीय मेनू आपको कर्नेल पैरामीटर को किसी भी क्रम में सेट और पुनर्स्थापित करने की अनुमति देता है।

जीयूआई उपयोगिता। यह सबसे आकर्षक उपयोगिता है, लेकिन यह केवल ग्राफिकल एक्स विंडो सिस्टम पर चलती है।

सूचीबद्ध उपयोगिताएँ पूर्ण या आंशिक कर्नेल को संकलित करते समय मेक यूटिलिटी द्वारा उपयोग की जाने वाली समान कॉन्फ़िगरेशन फ़ाइल बनाती हैं।

कर्नेल विकल्प

किसी भी कॉन्फ़िगरेशन प्रोग्राम (कमांड लाइन, टेक्स्ट-आधारित या GUI) में सेटिंग्स की समीक्षा करते समय, आपको कर्नेल के संचालन पर इन सेटिंग्स के प्रभाव के बारे में स्पष्ट होना चाहिए।

प्रत्येक कार्यक्रम में मापदंडों की पहचान अलग होती है, लेकिन तीनों में एक ही सेट प्रस्तुत किया जाता है। मापदंडों को दो मुख्य समूहों में विभाजित किया गया है:

मॉड्यूलर;

गैर मॉड्यूलर।

यदि इस पैरामीटर के अनुरूप प्रोग्राम ब्लॉक को कर्नेल मॉड्यूल के रूप में लोड नहीं किया जाता है, तो यह दो चीजों में से एक हो सकता है:

[*] गिरी का एक अभिन्न अंग;

कर्नेल का एक अभिन्न अंग।

वर्गाकार कोष्ठकों में वर्ण (कोष्ठक के साथ) कॉन्फ़िगरेशन प्रोग्राम मेनू (कमांड लाइन उपयोगिता को छोड़कर) में विकल्प लेबल के अनुरूप हैं।

मॉड्यूलर मापदंडों के लिए, सेटिंग के लिए तीन विकल्प हैं (कॉन्फ़िगरेशन उपयोगिताओं मेनू में उनके प्रतिनिधित्व के अनुसार):

<>कर्नेल में शामिल नहीं है और एक मॉड्यूल के रूप में नहीं बनाया गया है जिसे बाद में लोड किया जा सकता है:

<*>कर्नेल में शामिल है, इसलिए इसे बाद में मॉड्यूल के रूप में लोड करने की कोई आवश्यकता नहीं है:

<М>मॉड्यूल के रूप में शामिल है, लेकिन कर्नेल के हिस्से के रूप में नहीं। ब्लॉक को किसी भी समय कर्नेल से स्थापित या हटाया जा सकता है।

कभी-कभी एक पैरामीटर का मान तब तक नहीं बदला जा सकता जब तक कि दूसरा पैरामीटर सेट न हो जाए। उदाहरण के लिए, आप सामान्य रूप से उन उपकरणों के लिए समर्थन सक्षम करने के बाद ही किसी विशिष्ट SCSI उपकरण के लिए समर्थन स्थापित कर सकते हैं।

जब आवश्यक उपकरण (मेक यूटिलिटी और जीसीसी कंपाइलर) और स्रोत टेक्स्ट सिस्टम पर स्थापित होते हैं, तो आप कॉन्फ़िगरेशन उपयोगिताओं में से एक को चला सकते हैं और कर्नेल को कॉन्फ़िगर करना शुरू कर सकते हैं।

जीयूआई विन्यासकर्ता

ग्राफिकल इंटरफ़ेस के साथ कॉन्फ़िगरेशन उपयोगिता का शुभारंभ निम्नलिखित क्रम में किया जाता है।

एक एक्स विंडोज सिस्टम लॉन्च करें (किसी भी ग्राफिकल वातावरण और डेस्कटॉप के साथ)।

एक टर्मिनल एमुलेटर विंडो (कमांड लाइन विंडो) खोलें।

पिछली उपयोगिता के लॉन्च के साथ, उपयोगिता के संकलन के बारे में कई संदेश स्क्रीन पर फ्लैश होंगे, और कुछ मिनटों के बाद इसकी मुख्य विंडो खुल जाएगी।

चावल। 8. ग्राफिकल इंटरफ़ेस के साथ कर्नेल कॉन्फ़िगरेशन उपयोगिता: पैरामीटर मान सेट करने के लिए मेनू-बटन

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

ऐसा डायलॉग बॉक्स अंजीर में दिखाया गया है।

चावल। 9. इस तरह के डायलॉग बॉक्स कर्नेल कॉन्फ़िगरेशन विकल्प सेट करते हैं

Red Hat Linux में 2.4.2 कर्नेल डिफ़ॉल्ट रूप से सममित मल्टीप्रोसेसर आर्किटेक्चर का समर्थन करता है। यदि आपके कंप्यूटर में केवल एक प्रोसेसर है, तो आपको संबंधित विकल्प को n पर सेट करना होगा।

प्रत्येक विकल्प के दाईं ओर एक सहायता बटन है।

आलेखीय विन्यास उपयोगिता (विशेषकर पहली बार कर्नेल विन्यासकर्ताओं के लिए) का एक बड़ा लाभ यह है कि मेनू विभिन्न विकल्पों के बीच निर्भरता प्रदर्शित करता है। उदाहरण के लिए, डिवाइस को ब्लॉक करें अनुभाग में, आप कर्नेल में निर्मित RAID समर्थन को तब तक स्थापित नहीं कर सकते जब तक कि एकाधिक डिवाइस ड्राइवर समर्थन विकल्प सक्षम न हो जाए।

यदि मेन्यूकॉन्फिग उपयोगिता में एक दूसरे पर मापदंडों की निर्भरता को मेनू में पैरामीटर नामों के इंडेंटेशन द्वारा दिखाया गया है, तो ग्राफिकल उपयोगिता में मापदंडों के अस्वीकृत संयोजनों को सेट करना असंभव है। ग्राफिकल यूटिलिटी के साथ काम करने से विभिन्न मॉड्यूल के बीच निर्भरता को समझने में मदद मिलती है।

ग्राफिकल यूटिलिटी के मुख्य मेनू के अंत में टेक्स्ट मोड मेनू से संबंधित यूटिलिटी कमांड के समान कमांड होते हैं।

सहेजें और बाहर निकलें (बचत के साथ बाहर निकलें)। कर्नेल कॉन्फ़िगरेशन फ़ाइल बनाना और उपयोगिता को बंद करना।

सहेजे बिना बाहर जाएं। कर्नेल कॉन्फ़िगरेशन फ़ाइल बनाए बिना उपयोगिता को बंद करना।

सूचीबद्ध उपयोगिताओं में से किसी एक का उपयोग करके कर्नेल कॉन्फ़िगरेशन फ़ाइल बनाए बिना, कर्नेल को पुन: संकलित करना संभव नहीं है।

फ़ाइल से कॉन्फ़िगरेशन लोड करें। पहले बनाई गई कॉन्फ़िगरेशन फ़ाइल लोड हो रही है।

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

एक नया कर्नेल संकलित करना और चलाना

कॉन्फ़िगरेशन पूर्ण होने के बाद, आपको /usr/src/linux-2 .4.2 निर्देशिका (संस्करण संख्या के आधार पर) में स्थित एक नई कॉन्फ़िगरेशन फ़ाइल (.config) की जांच करने की आवश्यकता है। यदि .config कॉन्फ़िगरेशन फ़ाइल जगह में है, तो आप कर्नेल को फिर से संकलित करने के लिए मेक कमांड का उपयोग कर सकते हैं।

आमतौर पर, कर्नेल पुनर्संकलन में 15 मिनट से लेकर कई घंटे तक का समय लगता है। यह प्रोसेसर की गति, रैम की मात्रा और कई अन्य कारकों पर निर्भर करता है, इसलिए संकलन के दौरान दर्ज किए गए सभी कमांड को अर्धविराम से अलग करके एक में जोड़ना सुविधाजनक होता है, ताकि उन्हें क्रमिक रूप से निष्पादित किया जा सके।

पुन: संकलन प्रक्रिया शुरू करना

नीचे दिए गए कमांड को एक नया कर्नेल बनाने के लिए डिज़ाइन किया गया है, इसके सभी मॉड्यूल को फिर से संकलित करके और उन्हें उपयुक्त सिस्टम निर्देशिकाओं में लिखकर। (वहां वे कर्नेल कमांड के लिए उपलब्ध होंगे।)

सिस्टम को पुन: संकलित करने के लिए, निम्न आदेश दर्ज किए जाएंगे।

# डेप बनाओ; साफ करना; bzlmage बनाओ; मॉड्यूल बनाना; मॉड्यूल बनाएं_इंस्टॉल करें

पिछले एक के पूरा होने के बाद, प्रत्येक मेक कमांड को अलग से दर्ज किया जा सकता है।

इन आदेशों को दर्ज करने के बाद, मेक प्रोग्राम द्वारा एक्सेस की गई निर्देशिकाओं का वर्णन करने वाली स्क्रीन पर लाइनें फ्लैश होंगी, जीसीसी कंपाइलर का लॉन्च। विभिन्न स्रोत फाइलों को संकलित करने और विभिन्न ब्लॉकों को जोड़ने के लिए। इनमें से प्रत्येक आदेश को पूरा होने में कई मिनट लगेंगे।

अब आप कमांड के साथ नए कर्नेल के लिए बूट डिस्क बना सकते हैं

इस आदेश को निष्पादित करने से पहले, आपको ड्राइव में एक स्वरूपित फ़्लॉपी डिस्क सम्मिलित करनी होगी। तैयार बूट डिस्क का परीक्षण किया जाना चाहिए। फ्लॉपी को ड्राइव से हटाए बिना अपने कंप्यूटर को पुनरारंभ करें।

कर्नेल संकलन कमांड निष्पादित करने और कमांड लाइन पर लौटने के बाद, एक नया कर्नेल बनाया जाता है। एक नए कर्नेल के साथ एक सिस्टम को बूट करने के लिए, इसे उस मानक निर्देशिका में ले जाया जाना चाहिए जिससे यह चलेगा। यह कमांड दर्ज करके किया जाता है

# cf /usr/src/linux-2.4.2/arch/i386/boot/bzlmage /boot/vmlinuz-2.4.2-2

अंत में, बूट मैप को अपडेट करने के लिए, लिलो कमांड चलाएँ:

आप प्रतिलिपि करने के लिए कर्नेल छवि के नाम पर एक संस्करण संख्या निर्दिष्ट कर सकते हैं। यह महत्वपूर्ण है कि इस फ़ाइल का नाम /etc/lilo.conf फ़ाइल में निर्दिष्ट नाम से मेल खाता है।

एक नए कर्नेल का परीक्षण

नई कर्नेल फ़ाइल को डिफ़ॉल्ट निर्देशिका में ले जाने के बाद (lilo.conf फ़ाइल में निर्दिष्ट), सिस्टम को इस कर्नेल के साथ रिबूट किया जा सकता है।

रिबूट के तुरंत बाद, उन नए उपकरणों के संचालन की जांच करें जिनके लिए पुन: संकलन शुरू किया गया था। आप निम्न कार्य कर सकते हैं।

पुराने और नए कोर की मात्रा की तुलना। आपको फ्री कमांड जारी करके ऑपरेटिंग सिस्टम द्वारा कब्जा की गई मेमोरी की मात्रा की जांच करनी चाहिए।

फ़ाइल सिस्टम को माउंट करना या किसी डिवाइस को समर्थन देने के लिए कर्नेल मॉड्यूल लोड किए बिना एक्सेस करने का प्रयास करना (यदि उस डिवाइस के लिए समर्थन कर्नेल में बनाया गया है)।

नेटवर्क संसाधनों (जैसे आईपी उपनाम) का उपयोग करना जो पुराने कर्नेल में मौजूद नहीं थे।

वर्तमान कर्नेल फ़ाइल के टाइमस्टैम्प की जाँच करना आवश्यक हो सकता है। ऐसा करने के लिए, uname कमांड दर्ज करें। यह आपको यह सुनिश्चित करने की अनुमति देता है कि सिस्टम वर्तमान में पुनर्संकलित कर्नेल के साथ चल रहा है। कर्नेल का टाइमस्टैम्प और दिनांक उस समय से मेल खाना चाहिए जब इसे पुन: संकलित किया गया था।

यदि uname कमांड से प्रतिक्रिया यह इंगित करती है कि सिस्टम को नए कर्नेल के साथ बूट नहीं किया गया था, LILO बूटलोडर में देखें। जाँच करें कि बूट करने योग्य कर्नेल का नाम /etc/lilo.conf फ़ाइल में सही है या नहीं।

और देखें:

डेबियन में स्रोत से लिनक्स कर्नेल को संकलित और स्थापित करना

ब्रांस्क लिनक्स उपयोगकर्ता समूह और www.rm.pp.ru . से सामग्री

प्रत्येक वितरण की अपनी कर्नेल बिल्ड विशिष्टताएँ होती हैं, और यह लेख इस बात पर ध्यान केंद्रित करता है कि इसे डेबियन एच में कैसे किया जाए। यह इस सवाल का भी खुलासा करता है कि इस या उस पैच को कर्नेल पर कैसे लागू किया जाए जब आपके सिस्टम में कुछ कार्यक्षमता या नए हार्डवेयर का समर्थन करना आवश्यक हो। लेख मुख्य रूप से अधिक उन्नत उपयोगकर्ताओं के लिए अभिप्रेत है और इस बात की कोई गारंटी नहीं है कि यह विधि उसी तरह काम करेगी जैसा उसे करना चाहिए और सभी वर्णित क्रियाएं और जिम्मेदारी आप पर आती है।

  1. टिप्पणी
  2. विधि एक। कर्नेल को .deb संकुल में बनाना
  3. पैच लागू
  4. कर्नेल विन्यास
  5. कर्नेल को संकलित करना
  6. एक नया कर्नेल स्थापित करना
  7. विधि दो। "पारंपरिक तरीका
  8. समस्या
  9. लिंक

टिप्पणी

कर्नेल के निर्माण की दो विधियों का वर्णन किया जाएगा। आपके या किसी अन्य सिस्टम पर संस्थापित हो सकने वाले .deb संकुल के निर्माण संस्करण का वर्णन पहले किया जाएगा।

दूसरी विधि तथाकथित "पारंपरिक" तरीका है।

विधि एक। कर्नेल को .deb संकुल में बनाना

कर्नेल को संकलित करने के लिए आवश्यक पैकेजों को संस्थापित करना

सबसे पहले, पैकेज सूचियों को अपडेट करते हैं:

# उपयुक्त-अपडेट प्राप्त करें

हमें आवश्यक पैकेज स्थापित करें:

# उपयुक्त-कर्नेल-पैकेज स्थापित करें libncurses5-देव नकलीरूट wget bzip2 बिल्ड-आवश्यक

कर्नेल स्रोतों को डाउनलोड करना

/usr/src निर्देशिका में जाएं, www.kernel.org पर जाएं और वांछित कर्नेल संस्करण का चयन करें। इस मामले में, संस्करण linux-2.6.23.1.tar.bz2 पर विचार किया जाएगा। डाउनलोड हो रहा है:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2

स्रोतों को अनपैक करें और एक प्रतीकात्मक लिंक बनाएं:

# टार xjf linux-2.6.23.1.tar.bz2 # rm linux (पिछले सिमलिंक को हटा दें) # ln -s linux-2.6.23.1 linux # cd /usr/src/linux

पैच लागू

वैकल्पिक और अनावश्यक रूप से ऐसा न करें!

कभी-कभी ड्राइवरों या सुविधाओं की आवश्यकता होती है जो वर्तमान कर्नेल में समर्थित नहीं हैं, जैसे कि वर्चुअलाइजेशन तकनीक या अन्य विशिष्टताएं जो वर्तमान रिलीज में नहीं हैं। किसी भी मामले में, तथाकथित पैच (यदि कोई हो) लगाने से इसे ठीक किया जाता है।

तो मान लें कि आपने आवश्यक पैच डाउनलोड कर लिया है (उदाहरण के लिए इसे पैच.bz2 कहते हैं) /usr/src पर। डाउनलोड किए गए पैच को हमारे स्रोतों पर लागू करें (आपको अभी भी /usr/src/linux निर्देशिका में होना चाहिए):

# bzip2 -dc /usr/src/patch.bz2 | पैच -p1 --ड्राई-रन # bzip2 -dc /usr/src/patch.bz2 | पैच-पी1

पहला आदेश केवल एक परीक्षण है और स्रोतों पर कोई परिवर्तन लागू नहीं किया जाएगा। यदि पहली कमांड के बाद कोई त्रुटि नहीं लौटाई गई, तो आप पैच लगाने के लिए दूसरा कमांड चला सकते हैं। किसी भी स्थिति में दूसरी कमांड को निष्पादित न करें यदि पहले के बाद त्रुटियाँ जारी की गई थीं!

इस तरह आप कर्नेल स्रोतों पर पैच लागू कर सकते हैं। उदाहरण के लिए, कुछ विशेषताएं हैं जो केवल 2.6.23.8 कर्नेल में उपलब्ध हैं, और स्रोतों में आवश्यक कार्यक्षमता नहीं थी, लेकिन पैच-2.6.23.8.bz2 जारी किया गया था। आप इस पैच को 2.6.23 कर्नेल स्रोतों पर लागू कर सकते हैं, लेकिन 2.6.23.1 या 2.6.23.3 आदि पर नहीं। आप इसके बारे में और अधिक यहां पढ़ सकते हैं:

उपसर्ग (प्रीपैच) - अल्फा रिलीज के बराबर; पैच को पूर्ण पिछले रिलीज़ के स्रोतों पर 3-अंकीय संस्करण के साथ लागू किया जाना चाहिए (उदाहरण के लिए, पैच 2.6.12-rc4 को संस्करण 2.6.11 के स्रोतों पर लागू किया जा सकता है, लेकिन संस्करण 2.6.11.10 पर नहीं।)

इसका अर्थ यह है कि यदि हम 2.6.23.8 कर्नेल बनाना चाहते हैं, तो हमें संस्करण 2.6.23 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.2) के लिए स्रोत डाउनलोड करने होंगे। 23.tar.gz) दूसरे तरीके से "पारंपरिक" तरीके से लागू किया गया!

पैच-2.6.23.8.bz2 को कर्नेल 2.6.23 पर लागू करें:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.22.8.bz2 # cd /usr/src/linux # bzip2 -dc /usr/ src/पैच-2.6.23.8.bz2 | पैच -p1 --ड्राई-रन # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | पैच-पी1

कर्नेल विन्यास

नए के लिए भी चल रहे कर्नेल की मौजूदा कॉन्फ़िगरेशन फ़ाइल का उपयोग करना एक अच्छा विचार है। इसलिए, हम मौजूदा कॉन्फ़िगरेशन को /usr/src/linux पर कॉपी करते हैं:

# साफ करें && mrproper बनाएं # cp /boot/config-`uname -r` ./.config

# मेन्यूकॉन्फिग बनाएं

जिसके बाद आलेखीय कर्नेल विन्यास मेनू लोड किया जाएगा। विन्यासकर्ता मेनू में "एक वैकल्पिक विन्यास फाइल लोड करें" चुनें और "ओके" पर क्लिक करें। फिर (यदि आवश्यक हो) मेनू के माध्यम से नेविगेट करके कर्नेल कॉन्फ़िगरेशन में आवश्यक परिवर्तन करें (कर्नेल कॉन्फ़िगरेशन विवरण www.google.com पर पाया जा सकता है)। जब आप कर लें और "बाहर निकलें" दबाएं, तो प्रश्न "क्या आप अपना नया कर्नेल कॉन्फ़िगरेशन सहेजना चाहते हैं?" पूछा जाएगा, हम सकारात्मक "हां" में उत्तर देते हैं।

लिनक्स कर्नेल का निर्माण

कर्नेल को संकलित करना

कर्नेल का निर्माण केवल दो आदेशों में किया जाता है:

# मेक-केपीकेजी क्लीन

--append-to-version= के बाद, आप जो चाहें नाम लिख सकते हैं, लेकिन यह एक ऋण चिह्न (-) से शुरू होना चाहिए और इसमें रिक्त स्थान नहीं होना चाहिए।

.deb पैकेजों के संकलन और निर्माण की प्रक्रिया में काफी लंबा समय लग सकता है। सब कुछ कर्नेल के विन्यास और आपके प्रोसेसर की क्षमताओं पर निर्भर करेगा।

initrd.img . बनाने की समस्या का समाधान

हाल ही में, डेबियन में एक बग सामने आया है, जिसमें यह तथ्य शामिल है कि यहां वर्णित तरीके से निर्मित कर्नेल के साथ पैकेज स्थापित करने के बाद, उनके अनुरूप /boot/initrd.img फ़ाइल नहीं बनाई जाती है। पहले से स्थापित कर्नेल को ठीक करने के लिए, आपको मैन्युअल रूप से initrd.img बनाना होगा:

अद्यतन-initramfs -c -k<полная-версия-ядра>

"भविष्य के लिए" समस्या को हल करने के लिए - टिप्पणी करें, जैसा कि दिखाया गया है, नीचे दी गई पंक्तियों में से दूसरी /etc/kernel/postinst.d/initramfs-tools फ़ाइल में:

# कर्नेल-पैकेज एक अतिरिक्त तर्क देता है; कर्नेल-पैकेज के तहत नहीं चलने के लिए हैक #[ -z "$2" ] || बाहर निकलें 0

एक नया कर्नेल स्थापित करना

जब कर्नेल बिल्ड सफलतापूर्वक पूर्ण हो जाता है, तो /usr/src निर्देशिका में दो .deb पैकेज बनाए जाएंगे:

# सीडी / यूएसआर / एसआरसी # एलएस -एल

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - वास्तविक कर्नेल ही और linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - हेडर कर्नेल अन्य मॉड्यूल बनाने की आवश्यकता है (उदाहरण के लिए, एनवीडिया ड्राइवर मॉड्यूल का निर्माण करते समय)। उन्हें स्थापित करना:

# dpkg -i linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb # dpkg -i linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb

(ये पैकेज अब किसी अन्य सिस्टम पर स्थापित किए जा सकते हैं बिना उन्हें फिर से बनाने की आवश्यकता के।)

सब कुछ, इंस्टॉलेशन पूरा हो गया है, बूटलोडर मेनू, एक नई रैम डिस्क की स्थापना और कर्नेल स्वचालित रूप से किया जाएगा। यह केवल रीबूट करने के लिए बनी हुई है:

विधि दो। "पारंपरिक तरीका

हम "कर्नेल को संकलित करना" बिंदु से पहले ऊपर वर्णित सभी बिंदुओं को पूरा करते हैं।

#सभी बनाएं#मॉड्यूल बनाएं_इंस्टॉल करें#इंस्टॉल करें

हमेशा की तरह, कर्नेल कॉन्फ़िगरेशन और प्रोसेसर क्षमताओं के आधार पर, बिल्ड में लंबा समय लग सकता है।

इस पद्धति का मुख्य नुकसान यह है कि यदि आप बार-बार गुठली को अद्यतन करते हैं, तो थोड़ी देर बाद उनमें से एक बड़ी संख्या जमा हो जाएगी और आप अप्रयुक्त को हटाना चाहेंगे। इसे आसान बनाने के लिए, आप कर्नेल और अन्य फाइलों का निर्माण कर सकते हैं जो सिस्टम में "मेक मॉड्यूल_इंस्टॉल" और "मेक इंस्टाल" कमांड का उपयोग करके एक डिबेट पैकेज (या बल्कि, कर्नेल 2.6.27 से शुरू होने वाले दो) का उपयोग करके पहले की तरह बना सकते हैं। विधि, लेकिन हम यहां कर्नेल स्क्रिप्ट के साथ उपयोग करेंगे:

#सभी #बनाए #देब-पीकेजी

स्रोत निर्देशिका से एक स्तर ऊपर निर्देशिका में दो .deb फ़ाइलें दिखाई देंगी। मैंने कर्नेल को /usr/src/linux-2.6.27.10 निर्देशिका में संकलित किया और मुझे /usr/src/ निर्देशिका में फ़ाइलें मिलीं

# linux-2.6.27.10_2.6.27.10-1_amd64.deb # linux-फर्मवेयर-इमेज_2.6.27.10-1_all.deb

कर्नेल को कमांड के साथ स्थापित किया गया है

# डीपीकेजी -आई लिनक्स-2.6.27.10_2.6.27.10-1_amd64.deb

पुरानी गुठली को हटाया जा सकता है, उदाहरण के लिए, सिनैप्टिक से

अगले कदम

कर्नेल बनाया और स्थापित किया गया है, लेकिन अब भी आपको एक RAM डिस्क बनाने की आवश्यकता है (जिसके बिना कर्नेल बस बूट नहीं होगा) और आपको GRUB बूटलोडर को अद्यतन करने की आवश्यकता है। ऐसा करने के लिए, निम्न कार्य करें:

# डिपोड 2.6.23.1 # उपयुक्त-स्थापित करें

रैम डिस्क स्थापित करें:

# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1

आइए बूटलोडर को आसानी से और दर्द रहित रूप से अपडेट करें:

सब कुछ, बूटलोडर और नया कर्नेल तैयार है, यह केवल रिबूट करने के लिए बना हुआ है:

समस्या

यदि रिबूट के बाद आपका चुना हुआ नया कर्नेल बूट नहीं होता है, तो रिबूट करें और अपने पिछले कर्नेल का चयन करें और आप एक कार्यशील कर्नेल बनाने के लिए पूरी प्रक्रिया को फिर से करने का प्रयास कर सकते हैं। इस स्थिति में, /boot/grub/menu.lst में गैर-कार्यरत कर्नेल की पंक्तियों को हटाना न भूलें।

लिनक्स कर्नेल का संकलन

कर्नेल को स्वयं संकलित क्यों करें?
शायद कर्नेल को संकलित करने के बारे में पूछा जाने वाला मुख्य प्रश्न है: "मुझे ऐसा क्यों करना चाहिए?"।
कई लोग खुद को एक स्मार्ट और उन्नत "लिनक्सॉइड" के रूप में दिखाने के लिए इसे समय की व्यर्थ बर्बादी मानते हैं। वास्तव में, कर्नेल को संकलित करना एक बहुत ही महत्वपूर्ण बात है। मान लें कि आपने एक नया लैपटॉप खरीदा है जिसमें काम करने वाला वेबकैम नहीं है। आपके कार्य? आप खोज इंजन में देखें और इस मुद्दे पर समस्या के समाधान की तलाश करें। अक्सर यह पता चल सकता है कि आपका वेबकैम कर्नेल के नए संस्करण पर चल रहा है जो आपके पास है। यदि आप नहीं जानते कि आपके पास कौन सा संस्करण है, तो टर्मिनल में uname -r टाइप करें, परिणामस्वरूप आपको कर्नेल संस्करण मिलेगा (उदाहरण के लिए, linux-2.6.31-10)। इसके अलावा, कर्नेल संकलन का व्यापक रूप से प्रदर्शन बढ़ाने के लिए उपयोग किया जाता है: तथ्य यह है कि कर्नेल वितरण डिफ़ॉल्ट रूप से "सभी के लिए" संकलित किया जाता है, इस वजह से, इसमें बड़ी संख्या में ड्राइवर शामिल होते हैं जिनकी आपको आवश्यकता नहीं हो सकती है। इसलिए यदि आप अपने हार्डवेयर को अच्छी तरह जानते हैं, तो आप कॉन्फ़िगरेशन चरण में अनावश्यक ड्राइवरों को अक्षम कर सकते हैं।

सिस्टम की थोड़ी गहराई को बदले बिना 4 गीगाबाइट से अधिक रैम के लिए समर्थन को सक्षम करना भी संभव है। इसलिए, यदि आपको अभी भी अपना कर्नेल रखने की आवश्यकता है, तो चलिए संकलन शुरू करते हैं!

कर्नेल स्रोत कोड प्राप्त करना।
करने के लिए पहली बात वांछित कर्नेल संस्करण के लिए स्रोत कोड प्राप्त करना है। आमतौर पर आपको नवीनतम स्थिर संस्करण प्राप्त करने की आवश्यकता होती है। सभी आधिकारिक कर्नेल संस्करण kernel.org पर उपलब्ध हैं। यदि आपके पास पहले से एक एक्स सर्वर (होम कंप्यूटर) स्थापित है, तो आप अपने पसंदीदा ब्राउज़र में साइट पर जा सकते हैं और वांछित संस्करण को tar.gz (gzip संपीड़ित) संग्रह में डाउनलोड कर सकते हैं। यदि आप कंसोल में काम कर रहे हैं (उदाहरण के लिए, आपने अभी तक X सर्वर स्थापित नहीं किया है या सर्वर को कॉन्फ़िगर कर रहे हैं), तो आप टेक्स्ट ब्राउज़र (उदाहरण के लिए, elinks) का उपयोग कर सकते हैं। आप मानक wget डाउनलोड प्रबंधक का भी उपयोग कर सकते हैं:
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.1.tar.gz
लेकिन ध्यान दें कि आपको सटीक संस्करण संख्या पता होनी चाहिए जिसकी आपको आवश्यकता है।

स्रोत कोड संग्रह को अनपैक करना।
स्रोत कोड के साथ संग्रह प्राप्त करने के बाद, आपको संग्रह को एक फ़ोल्डर में अनपैक करने की आवश्यकता है। यह ग्राफिकल फाइल मैनेजर (डॉल्फ़िन, नॉटिलस, आदि) या एमसी के माध्यम से किया जा सकता है। या पारंपरिक टार कमांड का उपयोग करें:
टार -zxvf path_to_archive
अब आपके पास एक स्रोत फ़ोल्डर है, cd kernel_source_code_dir का उपयोग करके उस पर नेविगेट करें (फ़ोल्डर में निर्देशिकाओं को सूचीबद्ध करने के लिए, ls कमांड का उपयोग करें)।

कर्नेल विन्यास।
एक बार जब आप कर्नेल स्रोत निर्देशिका में बदल जाते हैं, तो आपको "20 मिनट" कर्नेल कॉन्फ़िगरेशन करने की आवश्यकता होती है। इसका उद्देश्य केवल आवश्यक ड्राइवरों और कार्यों को छोड़ना है। सुपरयुसर की ओर से सभी कमांड को पहले से ही निष्पादित करने की आवश्यकता है।

विन्यासकर्ता का विन्यास - कंसोल मोड बनाएं।

एक सूची के रूप में menuconfig - कंसोल मोड बनाएं।

xconfig बनाएं - ग्राफिकल मोड।

आवश्यक परिवर्तन करने के बाद, सेटिंग्स को सहेजें और विन्यासकर्ता से बाहर निकलें।

संकलन।
यह विधानसभा के अंतिम चरण - संकलन का समय है। यह दो आदेशों के साथ किया जाता है:
बनाना और स्थापित करना
पहला कमांड सभी फाइलों को मशीन कोड में संकलित करेगा, और दूसरा आपके सिस्टम पर नया कर्नेल स्थापित करेगा।
हम 20 मिनट से लेकर कई घंटों तक (कंप्यूटर की शक्ति के आधार पर) प्रतीक्षा करते हैं।

लिनक्स कर्नेल को कॉन्फ़िगर और संकलित करना

कर्नेल स्थापित है। इसे ग्रब (2) सूची में प्रदर्शित करने के लिए, टाइप करें (रूट के रूप में)
अद्यतन-कोड़ना
अब रिबूट के बाद "एस्केप" दबाएं और आपको सूची में नया कर्नेल दिखाई देगा। यदि कर्नेल चालू नहीं होता है, तो बस पुराने कर्नेल से बूट करें और अधिक सावधानी से कॉन्फ़िगर करें।

कर्नेलचेक - कंसोल में प्रवेश किए बिना कर्नेल का संकलन।
KernelCheck आपको कर्नेल को पूरी तरह से ग्राफिकल मोड में बनाने की अनुमति देता है डेबियन और उसके आधारित वितरण के लिए. लॉन्च होने पर, कर्नेलचेक नवीनतम कर्नेल संस्करण और पैच पेश करेगा, और आपकी सहमति के बाद, स्रोत कोड डाउनलोड करें, ग्राफिकल कॉन्फिगरेटर लॉन्च करें। प्रोग्राम कर्नेल को .deb संकुल में निर्मित करेगा और उन्हें संस्थापित करेगा। आपको बस रिबूट करना है।

लेख संग्रह:
मई 2017
मार्च 2017
अप्रैल 2016
मार्च 2016
अक्टूबर 2013
सितम्बर 2013
मई 2013
मार्च 2013
नवंबर 2012
जुलाई 2012
जून 2012
अप्रैल 2012
मार्च 2012
फरवरी 2012
अप्रैल 2011
मार्च 2011
फरवरी 2011
जनवरी 2011
दिसंबर 2010
नवंबर 2010
अक्टूबर 2010
सितंबर 2010
अगस्त 2010
जुलाई 2010
जून 2010
मई 2010
अप्रैल 2010
मार्च 2010

अनियमित:

औरोरा: केडीई के लिए विंडो डेकोरेशन इंजन

Sblog को .NET . में फिर से लिखा जाएगा

Linuxnow.ru: भविष्य के लिए योजनाएं

बोल्गेनोस। टेलीकॉम का खंडन

GRUB 2 त्वरित पुनर्प्राप्ति

फ्री सॉफ्टवेयर फाउंडेशन और कॉपीलेफ्ट।

सहकर्मी: सभी
सभी के लिए लिनक्स

हमारे बैनर:


बैनर सेट करें

इस चरण-दर-चरण मार्गदर्शिका में, आप सीखेंगे कि उबंटू ओएस परिवार पर> 2.6 शाखा कर्नेल को ठीक से कैसे बनाया और स्थापित किया जाए।

चरण 1: कर्नेल स्रोत प्राप्त करें

उबंटू कर्नेल स्रोत दो तरीकों से प्राप्त किए जा सकते हैं:

    नवीनतम आधिकारिक पैच के स्वचालित ओवरले के साथ, संग्रह से संग्रह स्थापित करके। यह वर्तमान फ़ोल्डर में ~150 एमबी पैकेज डाउनलोड करेगा। कर्नेल का स्रोत प्राप्त करने के लिए, जिसका संस्करण कंप्यूटर पर स्थापित है, कमांड चलाएँ: apt-get source linux-image-`uname -r`

    या, `uname -r` के बजाय, आप रिपॉजिटरी में उपलब्ध संस्करणों में से एक विशिष्ट संस्करण निर्दिष्ट कर सकते हैं।

रिपॉजिटरी में उपलब्ध संस्करणों की सूची को कमांड टाइप करके देखा जा सकता है: "apt-get source linux-image-" और, एंटर दबाए बिना, टैब की को दो बार दबाएं।

रिपॉजिटरी में सोर्स शेयरिंग को सक्षम करना न भूलें (सिस्टम सेटिंग्स → प्रोग्राम्स और अपडेट्स → उबंटू सॉफ्टवेयर → सोर्स कोड)। यह कंसोल से /etc/apt/sources.list फ़ाइल में deb-src से शुरू होने वाली लाइनों को असम्बद्ध करके और फिर कमांड के साथ अपडेट करके किया जा सकता है: "sudo apt-get update"।

    नवीनतम कर्नेल संस्करण git से उपलब्ध है। डाउनलोड किए गए पैकेज का आकार ~500-800 एमबी है। git क्लोन git://kernel.ubuntu.com/ubuntu/ubuntu- .गिट

    कहाँ - रिलीज नाम, उदाहरण के लिए:

    गिट क्लोन गिट: //kernel.ubuntu.com/ubuntu/ubuntu-xenial.git

अन्य कोर

ऐसे कर्नेल भी हैं जिन्हें उबंटू के तहत काम करने की गारंटी नहीं है। उदाहरण के लिए, कई लोकप्रिय सिस्टम अनुप्रयोगों (विशेष रूप से, एनवीडिया ड्राइवर, वर्चुअलबॉक्स) के साथ एक ज्ञात समस्या है, जो स्थापित होने पर, स्थापित कर्नेल के लिए संकलित की जाती है। इसलिए, उन्हें एक कर्नेल पर स्थापित करने के लिए जो उबंटू के इस संस्करण के लिए गैर-मानक है (उदाहरण के लिए, उबंटू 16.04 कर्नेल 4.4.0 के साथ आता है), उन्हें अलग मैनुअल संकलन या विशेष पैच की आवश्यकता हो सकती है, और एप्लिकेशन नवीनतम का समर्थन नहीं कर सकता है कर्नेल.ऑर्ग संस्करण बिल्कुल।

    बिना पैच के मूल संस्करण से संग्रहित करें, अर्थात जैसे "4.8.0", "4.8.10": sudo apt-get install linux-source

आदेशों का उपयोग करके परिणामी संग्रह को अनपैक करें:

सीडी ~/ टार -xjf linux-2.6.x.y.tar.bz2

या लिनक्स-स्रोत के मामले में:

सीडी /usr/src टार -xjf linux-source-2.6.x.y.tar.bz2

चरण 2: निर्माण के लिए आवश्यक पैकेज प्राप्त करना

यह चरण केवल तभी आवश्यक है जब पहली बार कंप्यूटर पर कर्नेल बनाया जा रहा हो।

कोर पैकेज स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:

sudo apt-get update sudo apt-get build-dep linux sudo apt-get install कर्नेल-पैकेज

    कॉन्फ़िग- विन्यास का पारंपरिक तरीका। प्रोग्राम एक-एक करके कॉन्फ़िगरेशन पैरामीटर प्रदर्शित करता है, आपको उनमें से प्रत्येक के लिए एक अलग मान सेट करने के लिए प्रेरित करता है। अनुभवहीन उपयोगकर्ताओं के लिए अनुशंसित नहीं है।

    पुराना कॉन्फिग- कॉन्फ़िगरेशन फ़ाइल वर्तमान कर्नेल कॉन्फ़िगरेशन के आधार पर स्वचालित रूप से बनाई जाती है। शुरुआती के लिए अनुशंसित।

    defconfig- डिफ़ॉल्ट मानों के आधार पर कॉन्फ़िगरेशन फ़ाइल स्वचालित रूप से बनाई जाती है।

    मेन्यूकॉन्फिग- मैनुअल कॉन्फ़िगरेशन के लिए छद्म ग्राफिकल इंटरफ़ेस, पैरामीटर मानों के अनुक्रमिक इनपुट की आवश्यकता नहीं है। टर्मिनल में उपयोग के लिए अनुशंसित।

    xconfig- मैनुअल कॉन्फ़िगरेशन के लिए ग्राफिकल (एक्स) इंटरफ़ेस, पैरामीटर मानों के अनुक्रमिक इनपुट की आवश्यकता नहीं है।

    gconfig- ग्राफिकल (GTK+) मैनुअल कॉन्फ़िगरेशन इंटरफ़ेस, पैरामीटर मानों के अनुक्रमिक इनपुट की आवश्यकता नहीं है। गनोम वातावरण में उपयोग के लिए अनुशंसित।

    लोकलमोडकॉन्फिग- स्वचालित रूप से बनाई गई एक कॉन्फ़िगरेशन फ़ाइल, जिसमें केवल वही शामिल है जो इस विशेष उपकरण के लिए आवश्यक है। जब इस कमांड को कॉल किया जाता है, तो अधिकांश कर्नेल मॉड्यूलेट हो जाएगा

यदि आप उपयोग करना चाहते हैं कॉन्फ़िग, पुराना कॉन्फिग, defconfig, लोकलमोडकॉन्फिगया localyesconfig, अब आपको किसी अतिरिक्त पैकेज की आवश्यकता नहीं है। शेष तीन विकल्पों के मामले में, अतिरिक्त पैकेज भी संस्थापित किए जाने चाहिए।

मेन्यूकॉन्फिगनिम्न आदेश चलाएँ:

sudo apt-libncurses5-dev स्थापित करें

उपयोग करने के लिए आवश्यक संकुल को स्थापित करने के लिए gconfigनिम्न आदेश चलाएँ:

sudo apt-get install libgtk2.0-dev libglib2.0-dev libglade2-dev

उपयोग करने के लिए आवश्यक संकुल को स्थापित करने के लिए xconfigनिम्न आदेश चलाएँ:

Ubuntu 12.04 से पहले: sudo apt-get install qt3-dev-tools libqt3-mt-dev

sudo apt-libqt4-dev स्थापित करें

चरण 3. पैच लगाना

यह चरण वैकल्पिक है।

यदि कर्नेल ऊपर वर्णित कमांड द्वारा प्राप्त किया गया था तो आधिकारिक पैच पहले ही स्रोतों पर लागू हो चुके हैं:

उपयुक्त-प्राप्त स्रोत linux-image-`unname -r`

यदि आपने पहले कभी स्रोत कोड पर पैच लागू नहीं किया है, तो निम्न आदेश चलाएँ:

sudo apt-get install पैच

यह आदेश पैच प्रोग्राम को स्थापित करेगा, जिसे आप अनुमान लगा सकते हैं, पैच लागू करें। अब पैच फाइल को उस फोल्डर में डाउनलोड करें जहां आपने कर्नेल को अनपैक किया था। यह या तो एक संग्रह फ़ाइल (जैसे Bzip2 या Gzip) या एक असम्पीडित पैच फ़ाइल हो सकती है।

इस बिंदु पर, यह माना जाता है कि आपने फ़ाइल को पहले ही उस फ़ोल्डर में सहेज लिया है जहाँ आपने पहले कर्नेल को अनपैक किया था और पैच प्रोग्राम स्थापित किया था।
यदि आपके द्वारा डाउनलोड की गई फ़ाइल Gzip (*.gz) प्रारूप में थी, तो संग्रह की सामग्री निकालने के लिए निम्न आदेश चलाएँ:

गनज़िप पैच-2.6.x.y.gz

यदि आपके द्वारा डाउनलोड की गई फ़ाइल Bzip2 (*.bz2) प्रारूप में थी, तो संग्रह की सामग्री को निकालने के लिए निम्न आदेश चलाएँ:

Bunzip2 पैच-2.6.x.y.bz2

जहां 2.6.x.y कर्नेल पैच संस्करण है। संबंधित कमांड पैच फ़ाइल को कर्नेल स्रोत फ़ोल्डर में खोल देगा। पैच लगाने से पहले, आपको यह सुनिश्चित करना होगा कि यह बिना किसी त्रुटि के काम करेगा। ऐसा करने के लिए, कमांड चलाएँ:

पैच -p1 -i पैच-2.6.x.y --dry-run

जहां 2.6.x.y कर्नेल पैच संस्करण है। यह कमांड स्वयं फाइलों को बदले बिना पैच के अनुप्रयोग का अनुकरण करेगा।

यदि इसके निष्पादन के दौरान कोई त्रुटि नहीं होती है, तो परिवर्तनों को स्वयं फ़ाइलों में सुरक्षित रूप से लागू किया जा सकता है। ऐसा करने के लिए, कमांड चलाएँ:

पैच -p1 -i पैच-2.6.x.y

जहां 2.6.x.y कर्नेल पैच संस्करण है। यदि कोई त्रुटि नहीं थी, तो पैच को स्रोत कोड पर सफलतापूर्वक लागू किया गया था।

ध्यान!पैच लगाने से पहले, निम्न कार्य करें: 1. http://www.kernel.org से अपने स्रोतों के समान संस्करण का पैच डाउनलोड करें। 2. निम्न आदेश चलाएँ: पैच -p1 -R

जहां 2.6.x.y पैच और आपके स्रोतों का संस्करण है

चरण 4. भविष्य के कर्नेल बिल्ड का विन्यास

उस फ़ोल्डर में नेविगेट करें जहां आपने कमांड चलाकर कर्नेल को अनपैक किया था

सीडी ~/लिनक्स-2.6.x.y

जहां 2.6.x.y आपके द्वारा डाउनलोड किए गए कर्नेल का संस्करण है।

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

    कॉन्फ़िग- विन्यास का पारंपरिक तरीका। प्रोग्राम एक-एक करके कॉन्फ़िगरेशन पैरामीटर प्रदर्शित करता है, आपको उनमें से प्रत्येक के लिए एक अलग मान सेट करने के लिए प्रेरित करता है। मेक कॉन्फिग कमांड द्वारा कॉल किया गया

    पुराना कॉन्फिग- कॉन्फ़िगरेशन फ़ाइल वर्तमान कर्नेल कॉन्फ़िगरेशन के आधार पर स्वचालित रूप से बनाई जाती है। शुरुआती के लिए अनुशंसित। मेक Oldconfig कमांड द्वारा कॉल किया जाता है

    defconfig- इस विशेष आर्किटेक्चर के लिए डिफ़ॉल्ट मानों के आधार पर कॉन्फ़िगरेशन फ़ाइल स्वचालित रूप से बनाई जाती है। मेक defconfig कमांड द्वारा कॉल किया गया

    मेन्यूकॉन्फिग- मैनुअल कॉन्फ़िगरेशन के लिए छद्म ग्राफिकल इंटरफ़ेस, पैरामीटर मानों के अनुक्रमिक इनपुट की आवश्यकता नहीं है। टर्मिनल में उपयोग के लिए अनुशंसित। कॉल करें: मेन्यूकॉन्फिग बनाएं

    gconfigऔर xconfig- मैनुअल विन्यास के लिए ग्राफिकल विन्यासकर्ता। कॉल करें: gconfig बनाएं

    एक्सकॉन्फिग बनाएं

    क्रमश:

    लोकलमोडकॉन्फिगऔर localyesconfig- स्वचालित विन्यासकर्ता। कॉन्फिग वर्तमान में बुलाए गए मॉड्यूल और चल रहे कर्नेल के आधार पर बनाया गया है। इन दो विन्यासकों के बीच का अंतर मॉड्यूल की संख्या है। पहले मामले में, कोर का कम से कम 50% होगा, और दूसरे में, 2 से अधिक मॉड्यूल नहीं होंगे। कॉल करें: लोकलमोडकॉन्फिग बनाएं

    localyesconfig बनाएं

    क्रमश:

कॉल के बाद, संबंधित कॉन्फ़िगरेशन प्रोग्राम लॉन्च किया जाएगा। अपनी आवश्यकताओं के अनुसार आवश्यक सेटिंग्स करें, कॉन्फ़िगरेशन फ़ाइल को सहेजें और अगले चरण पर आगे बढ़ें।

चरण 5कर्नेल का निर्माण

इसलिए तैयारी पूरी है। अब आप कर्नेल निर्माण प्रक्रिया शुरू कर सकते हैं। ऐसा करने के लिए, कमांड चलाएँ:

Fakeroot मेक-kpkg -j 5 --initrd --append-to-version=-कस्टम कर्नेल_इमेज कर्नेल_हेडर #-j<количество ядер процессора>+1

कर्नेल के कॉन्फ़िगरेशन और कंप्यूटर के तकनीकी मापदंडों के आधार पर कर्नेल के निर्माण में 20 मिनट से लेकर कई घंटे तक का समय लग सकता है। मल्टी-कोर प्रोसेसर पर निर्माण कई गुना तेज हो सकता है

चरण 6कर्नेल छवियाँ और शीर्षलेख स्थापित करना

जब कर्नेल बिल्ड समाप्त हो जाता है, तो आपके होम फोल्डर में दो डिबेट पैकेज दिखाई देंगे। उन्हें स्थापित करने की आवश्यकता है। ऐसा करने के लिए, कमांड चलाएँ:

सीडी ~/ sudo dpkg -i linux-image-2.6.x.y-custom_2.6.x.y-custom-10.00.Custom_arc.deb sudo dpkg -i linux-headers-2.6.x.y-custom_2.6.x.y-custom-10.00. Custom_arc.deb

जहां 2.6.x.y निर्मित कर्नेल का संस्करण है, आर्क प्रोसेसर आर्किटेक्चर (i386 - 32-बिट, amd64 - 64-बिट) है।
यदि आप सटीक पैकेज नाम नहीं जानते हैं, तो कमांड के साथ अपने होम डायरेक्टरी में फाइलों को सूचीबद्ध करें

और इन दो पैकेजों को खोजें।

चरण 7आरंभिक RAM डिस्क जनरेट करें

उबंटू को ठीक से काम करने के लिए एक प्रारंभिक रैम डिस्क छवि की आवश्यकता होती है। इसे बनाने के लिए, कमांड चलाएँ:

sudo अद्यतन-initramfs -c -k 2.6.x.y-custom

जहां 2.6.x.y बिल्ड कर्नेल संस्करण है।

चरण 8GRUB बूट लोडर कॉन्फ़िगरेशन का अद्यतन करना

कंप्यूटर के बूट होने पर नए कर्नेल संस्करण को चयन के लिए उपलब्ध कराने के लिए, निम्न कमांड चलाएँ:

सुडो अपडेट-ग्रब

menu.lst (GRUB संस्करण 1 के लिए) या grub.cfg (GRUB संस्करण 2 के लिए) फ़ाइल को संस्थापित ऑपरेटिंग सिस्टम और कर्नेल छवियों को प्रतिबिंबित करने के लिए अद्यतन किया जाएगा।

चरण 9कर्नेल की जाँच करना

कर्नेल का संकलन और स्थापना सफलतापूर्वक पूर्ण! अब अपने कंप्यूटर को पुनरारंभ करें और सिस्टम को नए कर्नेल के साथ बूट करने का प्रयास करें। यह सुनिश्चित करने के लिए कि सिस्टम नए कर्नेल के साथ शुरू हुआ है, कमांड चलाएँ

अनाम -r

यह उपयोग किए जा रहे कर्नेल संस्करण को प्रदर्शित करेगा।

यदि सही तरीके से किया जाता है, तो आप अपने होम फोल्डर में स्रोत संग्रह और संपूर्ण linux-2.6.x.y निर्देशिका को हटा सकते हैं। यह आपकी हार्ड ड्राइव पर लगभग 5 जीबी खाली कर देगा (मुक्त स्थान का आकार बिल्ड विकल्पों पर निर्भर करता है)।

यह असेंबली और इंस्टॉलेशन प्रक्रिया को पूरा करता है, बधाई!

हाल ही में, गुठली के नए संस्करण काफी बार जारी किए गए हैं। हर कुछ महीनों में एक स्थिर रिलीज होती है। खैर, अस्थिर रिलीज उम्मीदवार और भी अधिक बार सामने आते हैं। लिनुस टॉर्वाल्ड्स और दुनिया भर के कई डेवलपर लगातार नए कर्नेल को बेहतर बनाने और उनमें अधिक से अधिक कार्यक्षमता जोड़ने के लिए काम कर रहे हैं।

प्रत्येक नए संस्करण के साथ, लिनक्स कर्नेल कई नए उपकरणों के लिए समर्थन जोड़ता है, जैसे कि नए प्रोसेसर, ग्राफिक्स कार्ड, या यहां तक ​​कि टच स्क्रीन। हाल ही में, नए हार्डवेयर के लिए समर्थन में बहुत सुधार हुआ है। साथ ही, कर्नेल में नए फाइल सिस्टम को शामिल किया गया है, नेटवर्क स्टैक में सुधार किया गया है, त्रुटियों और बग्स को ठीक किया गया है।

यदि आपको किसी विशेष कर्नेल संस्करण में परिवर्तनों के बारे में अधिक जानकारी की आवश्यकता है, तो इसका चेंजलॉग कर्नेल.ऑर्ग पर देखें, और इस लेख में हम नवीनतम संस्करण में लिनक्स कर्नेल को अपडेट करने के बारे में बात करेंगे। मैं एक विशिष्ट कर्नेल संस्करण के लिए निर्देश को टाई नहीं करने का प्रयास करूंगा, नए कर्नेल बहुत बार जारी किए जाते हैं और यह उनमें से प्रत्येक के लिए प्रासंगिक होगा।

Ubuntu और CentOS कर्नेल को अपडेट करने पर विचार करें। सबसे पहले, आइए देखें कि उबंटू 16.04 में कर्नेल को कैसे अपडेट किया जाए।

आइए पहले देखें कि आपने कौन सा कर्नेल स्थापित किया है। ऐसा करने के लिए, एक टर्मिनल खोलें और चलाएँ:

उदाहरण के लिए, मैं वर्तमान में संस्करण 4.3 का उपयोग कर रहा हूं और नवीनतम संस्करण में अपग्रेड कर सकता हूं। उबंटू डेवलपर्स ने पहले ही सुनिश्चित कर लिया है कि उनके उपयोगकर्ता हाथ से कर्नेल का निर्माण नहीं करते हैं और नए कर्नेल संस्करण के डेब पैकेज नहीं बनाते हैं। उन्हें आधिकारिक कैननिकल वेबसाइट से डाउनलोड किया जा सकता है।

यदि कर्नेल संस्करण ज्ञात होता तो मैं यहां डाउनलोड करने के लिए wget कमांड दे सकता था, लेकिन हमारे मामले में ब्राउज़र का उपयोग करना बेहतर होगा। http://kernel.ubuntu.com/~kernel-ppa/mainline/ पर जाएं। उबंटू कर्नेल टीम द्वारा संकलित सब कुछ यहाँ है। वितरण के कोड नाम और सामान्य वाले दोनों के साथ कर्नेल विशिष्ट वितरण के लिए बनाए गए हैं। इसके अलावा, उबंटू 16.10 से कर्नेल 16.04 में सबसे अधिक काम करेगा, लेकिन उबंटू 16.04 पर 9.04 से आपको कर्नेल स्थापित नहीं करना चाहिए।

नीचे स्क्रॉल करें, यहीं पर गुठली के नए संस्करण स्थित हैं:

इसके अलावा, सबसे ऊपर एक दैनिक/वर्तमान फ़ोल्डर होता है, जिसमें नवीनतम, रात्रिकालीन कर्नेल बिल्ड होता है। वांछित कर्नेल संस्करण का चयन करें और अपने आर्किटेक्चर के लिए दो फाइलें linux-headers और linux-image डाउनलोड करें:

डाउनलोड पूरा होने के बाद, आप इंस्टॉलेशन के साथ आगे बढ़ सकते हैं। ऐसा करने के लिए, टर्मिनल में निम्नलिखित चलाएँ:

स्थापना पैकेज वाले फ़ोल्डर में नेविगेट करें, उदाहरण के लिए, ~/डाउनलोड:

स्थापना चलाएँ:

यदि यह आदेश काम नहीं करता है, तो आप दूसरे रास्ते पर जा सकते हैं। gdebi उपयोगिता स्थापित करें:

sudo apt-gdebi स्थापित करें

फिर कर्नेल को स्थापित करने के लिए इसका इस्तेमाल करें:

sudo gdebi linux-headers*.deb linux-image-*.deb

कर्नेल स्थापित है, यह बूटलोडर को अद्यतन करने के लिए रहता है:

सुडो अपडेट-ग्रब

अब आप अपने कंप्यूटर को पुनरारंभ कर सकते हैं और देख सकते हैं कि क्या हुआ। रिबूट के बाद, सुनिश्चित करें कि नवीनतम संस्करण में लिनक्स कर्नेल अपडेट सफल रहा:

जैसा कि आप देख सकते हैं, कर्नेल सफलतापूर्वक स्थापित और चल रहा है। लेकिन कर्नेल के पुराने संस्करण को हटाने में जल्दबाजी न करें, सिस्टम में कर्नेल के कई संस्करण रखने की सिफारिश की जाती है ताकि समस्याओं के मामले में आप पुराने कार्यशील संस्करण से बूट कर सकें।

उबंटू में स्वचालित लिनक्स कर्नेल अपडेट

ऊपर, हमने देखा कि वांछित कर्नेल संस्करण को मैन्युअल रूप से कैसे स्थापित किया जाए। उबंटू में दैनिक कर्नेल बिल्ड के लिए पीपीए हुआ करता था, लेकिन अब यह बंद हो गया है। इसलिए, आप कर्नेल को केवल डिबेट पैकेज डाउनलोड करके और इसे स्थापित करके अपडेट कर सकते हैं। लेकिन यह सब एक विशेष लिपि के साथ सरल बनाया जा सकता है।

स्क्रिप्ट स्थापित करना:

सीडी / टीएमपी
$ git क्लोन git://github.com/GM-Script-Writer-62850/Ubuntu-Mainline-Kernel-Updater
$ बैश उबंटू-मेनलाइन-कर्नेल-अपडेटर/इंस्टॉल

अपडेट्स के लिए जांच हो रही है:

KernelUpdateChecker -r yakkety

-r विकल्प आपको वितरण शाखा को निर्दिष्ट करने की अनुमति देता है जिसके लिए गुठली की खोज करना है। xenial के लिए, गुठली अब नहीं बनी है, लेकिन अगले संस्करण से गुठली यहाँ ठीक काम करेगी। इसके अलावा, -no-rc विकल्प का उपयोग उपयोगिता को यह बताने के लिए किया जा सकता है कि रिलीज उम्मीदवारों का उपयोग न करें, और -v विकल्प स्थापित किए जाने वाले सटीक कर्नेल संस्करण को निर्दिष्ट करता है। यदि आपको परवाह नहीं है कि कर्नेल किस वितरण के लिए है, जब तक कि यह नवीनतम है, --any-release विकल्प का उपयोग करें। स्क्रिप्ट निम्नलिखित आउटपुट देगी:

कर्नेल स्थापित करने से पहले, आप /tmp/kernel-update फ़ाइल खोलकर विवरण देख सकते हैं:

यहाँ हम देख सकते हैं कि yakkety की खोज की गई थी, और कर्नेल संस्करण 4.7-rc6 वर्तमान में उपलब्ध है। हम स्थापित कर सकते हैं:

सुडो / टीएमपी / कर्नेल-अपडेट

स्क्रिप्ट हमें वर्तमान कर्नेल का संस्करण, साथ ही स्थापित किए जाने वाले कर्नेल का संस्करण, इसकी निर्माण तिथि और अन्य विवरण दिखाएगी। आपसे यह भी पूछा जाएगा कि क्या आपको परिवर्तन लॉग रखने की आवश्यकता है। अगला इंस्टॉलेशन आता है:

पुरानी गुठली, बस मामले में, हटाएं नहीं (एन):

हो गया, कर्नेल को नवीनतम संस्करण में अपडेट करना पूरा हो गया है, अब अपने कंप्यूटर को पुनरारंभ करें (y):

जाँच कर रहा है कि क्या उबंटू कर्नेल अपडेट वास्तव में काम करता है:

इसके अलावा, स्क्रिप्ट को ऑटोलोड में जोड़ा गया है और अब लॉगिन के 60 सेकंड बाद अपडेट के लिए स्वचालित रूप से जांच करेगा। ऑटोलैड शॉर्टकट फ़ाइल में है:

vi ~/.config/autostart/KernelUpdate.desktop

आप इसे अपनी पसंद के अनुसार बदल सकते हैं या इसे हटा सकते हैं। यदि आप स्क्रिप्ट को सिस्टम से पूरी तरह से हटाना चाहते हैं, तो चलाएँ:

आरएम ~/.config/autostart/KernelUpdate.desktop
$ सुडो आरएम / यूएसआर / स्थानीय / बिन / कर्नेल अपडेट (चेकर, स्क्रिप्ट जेनरेटर)

डाउनलोड नहीं हो रहा है

यदि संस्थापन के दौरान कोई त्रुटि हुई या कर्नेल को गलत तरीके से अद्यतन किया गया था और अब सिस्टम नए कर्नेल के साथ बूट नहीं होता है, तो आप पुराने कर्नेल का उपयोग कर सकते हैं। साथ ही, यदि आप NVIDIA वीडियो कार्ड के लिए एक मालिकाना ड्राइवर का उपयोग कर रहे हैं तो सिस्टम शुरू नहीं हो सकता है, इस मामले में, नवीनतम कर्नेल संस्करण को डाउनलोड करने के लिए जल्दी मत करो, केवल स्थिर कर्नेल का उपयोग करें, वे आमतौर पर पहले से ही इस मॉड्यूल के लिए समर्थन जोड़ते हैं।

और सिस्टम को पुनर्स्थापित करने के लिए, आइटम का चयन करें उबंटू के लिए उन्नत विकल्पग्रब मेनू में:

और पिछले चल रहे कर्नेल को प्रारंभ करें:

डाउनलोड करने के बाद, यह गलत तरीके से स्थापित कर्नेल को हटाने और ग्रब को फिर से अपडेट करने के लिए रहता है, 4.7 के बजाय वांछित कर्नेल संस्करण को प्रतिस्थापित करता है:

sudo apt हटाएँ linux-header-4.7* linux-image-4.7*

सुडो अपडेट-ग्रब

आपका सिस्टम अब अपनी पिछली स्थिति में वापस आ गया है। आप पुराने कर्नेल संस्करण को स्थापित करने का प्रयास कर सकते हैं या पुनः प्रयास कर सकते हैं।

CentOS पर Linux कर्नेल को 4.4 में अपग्रेड करना

और अब देखते हैं कि CentOS में Linux कर्नेल के नवीनतम संस्करण को कैसे अपडेट किया जाए। निर्देशों का परीक्षण CentOS 7 पर किया गया है, लेकिन सबसे अधिक संभावना RedHat 7, Fedora और इसी तरह के अन्य वितरणों पर काम करेगी।

एक नियम के रूप में, आधिकारिक CentOS रिपॉजिटरी में नए कर्नेल शामिल नहीं हैं, इसलिए नवीनतम स्थिर संस्करण प्राप्त करने के लिए, हमें ELRepo रिपॉजिटरी को जोड़ना होगा। यह वाणिज्यिक पैकेज (एंटरप्राइज लिनक्स पैकेज) का भंडार है और इसे रेडहैट और फेडोरा पर भी बनाए रखा जाता है।

रिपॉजिटरी जोड़ने के लिए, इन चरणों का पालन करें:

सबसे पहले आपको कुंजी आयात करने की आवश्यकता है:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

RHEL/Scientific Linux/CentOS-7 में रिपॉजिटरी और आवश्यक घटकों को जोड़ें:

आरपीएम -यूवीएच http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

यम यम-प्लगइन-फास्टेस्टमिरर स्थापित करें

फेडोरा 22 और इसके बाद के संस्करण पर:

लिनक्स ऑपरेटिंग सिस्टम का सबसे बुनियादी घटक कर्नेल है। यह कर्नेल है जो उपयोगकर्ता प्रोग्राम और कंप्यूटर हार्डवेयर के बीच एक मध्यवर्ती कड़ी के रूप में कार्य करता है। सभी बाइनरी वितरणों में, हमें कर्नेल के निर्माण और विन्यास की देखभाल करने की आवश्यकता नहीं है, वितरण डेवलपर्स द्वारा हमारे लिए सब कुछ पहले ही किया जा चुका है। लेकिन अगर हम अपना खुद का वितरण बनाना चाहते हैं या नवीनतम कर्नेल स्थापित करना चाहते हैं, तो हमें मैन्युअल रूप से कर्नेल बनाना होगा।

पहला विकल्प उन लोगों के लिए प्रासंगिक हुआ करता था जो अपने उपकरणों से अधिकतम प्रदर्शन प्राप्त करना चाहते थे, लेकिन अब, कंप्यूटर की शक्ति में तेजी से वृद्धि को देखते हुए, कर्नेल को असेंबल करते समय प्रदर्शन में वृद्धि पूरी तरह से ध्यान देने योग्य नहीं है। अब, गैर-बाइनरी वितरण के उपयोगकर्ताओं द्वारा कर्नेल बिल्ड की आवश्यकता हो सकती है जैसे कि Gentoo, जो कर्नेल में कुछ बदलाव करना चाहते हैं, नवीनतम कर्नेल संस्करण प्राप्त करते हैं, और निश्चित रूप से, जो पूरी तरह से समझना चाहते हैं कि उनका सिस्टम कैसे काम करता है .

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

करने के लिए सबसे पहली चीज कर्नेल स्रोतों को डाउनलोड करना है। सर्वोत्तम स्रोत आपके वितरण की साइट से लिए गए हैं, यदि वे वहां हैं, या कर्नेल की आधिकारिक साइट: kernel.org। हम कर्नेल.ऑर्ग से स्रोत को डाउनलोड करने पर विचार करेंगे।

स्रोतों को डाउनलोड करने से पहले, हमें कर्नेल के उस संस्करण पर निर्णय लेना होगा जिसे हम बनाएंगे। दो मुख्य रिलीज संस्करण हैं - स्थिर (स्थिर) और रिलीज उम्मीदवार (आरसी), निश्चित रूप से, लंबी समर्थन अवधि (दीर्घकालिक) के साथ अभी भी स्थिर हैं, लेकिन पहले दो से निपटने के लिए अब यह महत्वपूर्ण है। स्थिर, एक नियम के रूप में, नवीनतम नहीं है, लेकिन कम से कम बग के साथ पहले से ही अच्छी तरह से परीक्षण किया गया कर्नेल है। परीक्षण - इसके विपरीत, नवीनतम, लेकिन इसमें विभिन्न त्रुटियां हो सकती हैं।

इसलिए, जब हमने संस्करण पर निर्णय लिया है, तो हम kernel.org पर जाते हैं और tar.xz प्रारूप में आवश्यक स्रोत डाउनलोड करते हैं:

यह आलेख नवीनतम वर्तमान अस्थिर संस्करण, 4.4.rc7 का उपयोग करेगा।

आप git उपयोगिता का उपयोग करके Linux कर्नेल स्रोत भी प्राप्त कर सकते हैं। सबसे पहले, आइए स्रोतों के लिए एक फ़ोल्डर बनाएँ:

एमकेडीआईआर कर्नेल_स्रोत

नवीनतम संस्करण डाउनलोड करने के लिए, टाइप करें:

गिट क्लोन https://github.com/torvalds/linux

कर्नेल स्रोतों को खोलना

अब हमारे पास सहेजे गए स्रोत हैं। स्रोत फ़ोल्डर पर जाएं:

सीडी linux_sources

या यदि आपने ब्राउज़र का उपयोग करके लिनक्स कर्नेल डाउनलोड किया है, तो पहले यह फ़ोल्डर बनाएं और इसमें संग्रह की प्रतिलिपि बनाएँ:

mkdir linux_sources

सीपी ~/डाउनलोड/लिनक्स* ~/linux_sources

टार उपयोगिता का उपयोग करके संग्रह को अनपैक करें:

और अनपैक्ड कर्नेल वाले फ़ोल्डर में जाएं, मेरे पास यह है:

सीडी लिनक्स-4.4-आरसी7/

लिनक्स कर्नेल ऑटोट्यूनिंग का निर्माण करता है

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

उपयोग किए गए कर्नेल के पैरामीटर संग्रह में /proc/config.gz पर संग्रहीत हैं। कॉन्फ़िगरेशन को अनपैक करें और इसे हमारे फ़ोल्डर में zcat उपयोगिता के साथ रखें:

उसके काम के दौरान, आपको कई सवालों के जवाब देने होंगे। ये नए विकल्प हैं जो नए कर्नेल में बदल गए हैं या जोड़े गए हैं और नए हार्डवेयर के लिए समर्थन करते हैं, ज्यादातर मामलों में आप डिफ़ॉल्ट विकल्प चुन सकते हैं। आमतौर पर तीन विकल्प होते हैं y - शामिल करें, n - शामिल न करें, m - मॉड्यूल के रूप में शामिल करें। अनुशंसित विकल्प एक बड़े अक्षर के साथ लिखा गया है, इसे चुनने के लिए, बस एंटर दबाएं।

हर चीज के बारे में आपको लगभग 10 मिनट लगेंगे। प्रक्रिया पूरी होने के बाद, कर्नेल बनने के लिए तैयार है। इसके बाद, हम कर्नेल को मैन्युअल रूप से कॉन्फ़िगर करने पर विचार करेंगे, और आप तुरंत लिनक्स कर्नेल की असेंबली में स्क्रॉल कर सकते हैं।

लिनक्स कर्नेल की मैनुअल ट्यूनिंग

मैनुअल कॉन्फ़िगरेशन एक जटिल और समय लेने वाली प्रक्रिया है, लेकिन यह आपको यह समझने की अनुमति देती है कि आपका सिस्टम कैसे काम करता है, कौन से फ़ंक्शन का उपयोग किया जाता है और आपकी आवश्यकताओं के लिए न्यूनतम आवश्यक फ़ंक्शन के साथ एक कर्नेल बनाता है। हम केवल उन मुख्य कदमों को कवर करेंगे जिन्हें कर्नेल को ऊपर और चलाने के लिए उठाए जाने की आवश्यकता है। बाकी सब चीजों के साथ, आपको कर्नेल प्रलेखन के आधार पर इसे स्वयं समझना होगा। सौभाग्य से, प्रत्येक पैरामीटर के लिए कॉन्फ़िगरेशन उपयोगिता में व्यापक दस्तावेज़ीकरण है जो आपको यह समझने में मदद करेगा कि आपको किन अन्य सेटिंग्स को सक्षम करने की आवश्यकता है।

चलो शुरू करो। लिनक्स कर्नेल सेटिंग्स मेनू लॉन्च करने के लिए, टाइप करें:

यह उपयोगिता को ncurses इंटरफ़ेस के साथ खोलेगा:

जैसा कि आप देख सकते हैं, आपके लिए सेटअप प्रक्रिया को आसान बनाने के लिए कुछ आवश्यक विकल्प पहले से ही शामिल हैं। आइए सबसे बुनियादी सेटिंग्स से शुरू करें। पैरामीटर को सक्षम करने के लिए, y दबाएं, मॉड्यूल को सक्षम करने के लिए - एम, स्थानांतरित करने के लिए, तीर कुंजियों का उपयोग करें और दर्ज करें, आप बाहर निकलें बटन के साथ स्तर पर वापस आ सकते हैं आइटम खोलें सामान्य व्यवस्था.

यहां हम निम्नलिखित पैरामीटर सेट करते हैं:

स्थानीय संस्करण- कर्नेल का स्थानीय संस्करण, प्रत्येक बिल्ड के साथ एक-एक करके बढ़ेगा, ताकि नए कर्नेल संस्थापन के दौरान पुराने को प्रतिस्थापित न करें, मान को 1 पर सेट करें।

संस्करण जानकारी को संस्करण स्ट्रिंग में स्वचालित रूप से संलग्न करें- कर्नेल फ़ाइल नाम में संस्करण जोड़ें।

कर्नेल संपीड़न मोड- कर्नेल छवि संपीड़न मोड, सबसे कुशल lzma।

डिफ़ॉल्ट होस्टनाम- इनपुट प्रॉम्प्ट में प्रदर्शित कंप्यूटर का नाम

पॉज़िक्स संदेश कतार- POSTIX कतारों के लिए समर्थन

अनाम स्मृति के पेजिंग के लिए समर्थन -स्वैप समर्थन सक्षम करें

नियंत्रण समूह का समर्थन- प्रक्रिया समूहों के बीच संसाधन आवंटन के तंत्र के लिए समर्थन

कर्नेल .config समर्थनऔर /proc/config.gz . के माध्यम से .config तक पहुंच सक्षम करें- कर्नेल विन्यास को /proc/config.gz . के माध्यम से निकालने की क्षमता को सक्षम करें

बस इतना ही, हम ऊपर के स्तर पर लौटते हैं और चालू करते हैं लोड करने योग्य मॉड्यूल समर्थन सक्षम करें,यह फ़ंक्शन बाहरी मॉड्यूल को लोड करने की अनुमति देता है, फिर इसका मेनू खोलें और चालू करें:

मॉड्यूल को अक्षम करने के लिए समर्थन

मॉड्यूल के जबरन शटडाउन

फिर से वापस और खोलें प्रोसेसर प्रकार और विशेषताएं:

प्रोसेसर परिवार (Opteron/Athlon64/Hammer/K8)- अपने प्रकार का प्रोसेसर चुनें।

फिर से हम लौटते हैं और सेक्शन में जाते हैं फाइल सिस्टम, फिर सभी आवश्यक चेकबॉक्स चेक करें।

सक्षम करना सुनिश्चित करें विस्तारित 3 (ext3) फाइल सिस्टमऔर विस्तारित 4 (ext4) फाइल सिस्टम- मानक ext3 और ext4 फ़ाइल सिस्टम का समर्थन करने के लिए

हम लौटते हैं और जाते हैं कर्नेल हैकिंग।

यहां हम शामिल हैं मैजिक SysRq कुंजी- SysRq के जादुई कार्यों के लिए समर्थन, एक ऐसी चीज जो जरूरी नहीं है, लेकिन कभी-कभी उपयोगी होती है।

एक और बिंदु बचा है, सबसे कठिन एक, क्योंकि आपको इसे स्वयं ही पार करना होगा। डिवाइस ड्राइवर- आपको अनुभागों के माध्यम से जाने और अपने उपकरणों के लिए ड्राइवरों को चालू करने की आवश्यकता है। हार्डवेयर से मेरा मतलब गैर-मानक हार्ड ड्राइव, चूहों, यूएसबी डिवाइस, वेबकैम, ब्लूटूथ, वाईफ़ाई एडाप्टर, प्रिंटर इत्यादि से है।

आप देख सकते हैं कि कमांड के साथ कौन से उपकरण आपके सिस्टम से जुड़े हैं:

सभी चरणों को पूरा करने के बाद, कर्नेल निर्माण के लिए तैयार है, लेकिन सबसे अधिक संभावना है कि आपको बहुत कुछ करना होगा।

बाहर निकलने के लिए बटन को दो बार दबाएं। बाहर निकलना.

लिनक्स कर्नेल का निर्माण

सभी तैयारियां पूरी होने के बाद, लिनक्स कर्नेल बनाया जा सकता है। निर्माण प्रक्रिया शुरू करने के लिए चलाएँ:

मॉड्यूल बनाएं और बनाएं

अब आप कॉफी पी सकते हैं या सैर कर सकते हैं, क्योंकि असेंबली प्रक्रिया लंबी है और इसमें लगभग आधा घंटा लगेगा।

एक नया कर्नेल स्थापित करना

जब कर्नेल और मॉड्यूल बनाए जाते हैं, तो नया कर्नेल स्थापित किया जा सकता है। आप कर्नेल फ़ाइल को बूटलोडर फ़ोल्डर में मैन्युअल रूप से कॉपी कर सकते हैं:

सीपी आर्क/x86_64/बूट/bzImage/बूट/vmlinuz

या आप बस इंस्टॉलेशन स्क्रिप्ट को निष्पादित कर सकते हैं, तुरंत उसी समय मॉड्यूल स्थापित कर सकते हैं:

sudo make install && sudo make module_install

स्थापना के बाद, ग्रब बूटलोडर कॉन्फ़िगरेशन को अपडेट करना न भूलें:

ग्रब-mkconfig -o /boot/grub/grub.cfg

और नए कर्नेल को क्रिया में देखने के लिए कंप्यूटर को पुनरारंभ करें:

जाँच - परिणाम

बस इतना ही। इस लेख में, हमने स्रोत से लिनक्स कर्नेल का निर्माण करने के तरीके पर एक विस्तृत नज़र डाली। यह उन लोगों के लिए उपयोगी होगा जो अपने सिस्टम को बेहतर ढंग से समझना चाहते हैं, और उनके लिए जो अपने सिस्टम पर नवीनतम कर्नेल संस्करण प्राप्त करना चाहते हैं। यदि आपके कोई प्रश्न हैं, तो टिप्पणी पूछें!

कर्नेल के निर्माण के बारे में उपलब्ध जानकारी बहुत भिन्न होती है, इसलिए हम विशेष रूप से उबंटू के लिए कर्नेल के निर्माण का वर्णन करेंगे। कोशिश करते हैं। ताकि इस आलेख में लिखे गए आदेशों में कोई त्रुटि न हो। संकलन प्रक्रिया का वर्णन करते समय, हम केवल कर्नेल प्राप्त करने पर ही नहीं रुकेंगे। एक कार्यशील कर्नेल प्राप्त करना पर्याप्त नहीं है। एनवीडिया कार्ड के मालिकों के लिए, यहां एक विवरण दिया जाएगा कि नए कोर पर काम करने वाले ग्राफिक्स वाला सिस्टम कैसे प्राप्त किया जाए। इसके अलावा, ग्राफिक्स पुराने कोर और नए दोनों में काम करेंगे।

1. कर्नेल स्रोत स्थापित करना

पहले हमें कर्नेल स्रोतों की आवश्यकता है। के लिए उबंटू 7.04वे पहले से ही भंडार में हैं, आपको पैकेज खोजने की जरूरत है लिनक्स-स्रोत-अपशिष्ट(हमारे मामले में यह होगा लिनक्स स्रोत-2.6.20), और इसे स्थापित करें (यह सब इसके माध्यम से किया जा सकता है synaptic) इस समझौते को स्थापित करने के बाद, निर्देशिका में /usr/srcनाम की एक फाइल linux-source-2-6-20.tar.bz2.

हम नीचे करते हैं सुडोआज्ञा

chmod 777 /usr/src

एक नियमित उपयोगकर्ता के रूप में लॉगिन करें /usr/srcऔर इस फ़ाइल को अनपैक करें

tar -jxvf linux-source-2-6-20.tar.bz2

स्रोत निर्देशिका दिखाई देगी। /usr/src/linux-source-2-6-20. हम संग्रह फ़ाइल को हटाते हैं (रूट अधिकारों की आवश्यकता होगी)।

2. साथ में पैकेज स्थापित करना

निर्माण के लिए और पैकेज की जरूरत कर्नेल-पैकेज, libncurses5-देव, फ़ेकरूट. के माध्यम से उन्हें स्थापित करें synaptic. बेशक, सिस्टम पर एक कंपाइलर भी स्थापित होना चाहिए। जीसीसीऔर देव- सिस्टम लाइब्रेरी के लिए पैकेज, जैसे libc6-देव.

3. कर्नेल कॉन्फ़िगरेशन फ़ाइल बनाना

अब हमें कर्नेल कॉन्फ़िगरेशन की आवश्यकता है जिसके साथ ubunta कर्नेल बनाया गया था। कैटलॉग पर जाएं /गाड़ी की डिक्की, और हमें एक फ़ाइल दिखाई देती है जैसे कॉन्फिग-2.6.20-15-जेनेरिक. वह वही है जो हमें चाहिए। इसे स्रोत निर्देशिका में कॉपी करें /usr/src/linux-source-2-6-20और इसका नाम बदलें .config. कृपया ध्यान दें कि फ़ाइल का नाम डॉट से शुरू होता है, यह टाइपो नहीं है।

अब, निर्देशिका में होने के नाते /usr/src/linux-source-2-6-20, हम एक सामान्य उपयोगकर्ता के रूप में आदेश देते हैं

यह कर्नेल कॉन्फ़िगरेशन टेक्स्ट इंटरफ़ेस लॉन्च करेगा। आप सेटअप को ग्राफ़िकल मोड में भी चला सकते हैं

दोनों ही मामलों में, चेकबॉक्स के साथ एक इंटरफ़ेस खुल जाएगा, जिसके माध्यम से हम कर्नेल को कॉन्फ़िगर करते हैं। ऐसा लगता है कि फ़ाइल डिफ़ॉल्ट रूप से खोली गई है .config, जिसमें वर्तमान में मानक उबंटू कर्नेल विन्यास है।

आप क्या कॉन्फ़िगर करना चाहते हैं - अपने लिए सोचें, इंटरनेट पर इस मुद्दे पर रूसी भाषा के बहुत सारे दस्तावेज हैं। इस लेख का उद्देश्य केवल उबंटू कर्नेल को संकलित करने में शामिल चरणों का वर्णन करना है।

कॉन्फ़िगरेशन के अंत में, "कॉन्फ़िगरेशन कॉन्फ़िगरेशन सहेजें" आइटम का चयन करें, एक फ़ाइल नाम निर्दिष्ट करें जो इससे अलग है .config, उदाहरण के लिए .config_my_01. हम चलते है।

अब नाम बदलें .configमें .config_ubuntu. और आपको दो फाइलें मिलती हैं - .config_ubuntuऔर .config_my_01. आप इस तरह डिफ़ॉल्ट और आपके कॉन्फ़िगरेशन के बीच अंतर देख सकते हैं

अंतर .config .config_my_01

अब अपने कॉन्फ़िगरेशन को कॉपी करें .config_my_01नाम के तहत .config. वे। आपको 3 कॉन्फिग फाइलें मिलेंगी। संकलन फ़ाइल का उपयोग करेगा .config. फ़ाइलें .config_ubuntuऔर .config_my_01हमें भविष्य में एक नए संकलन के लिए मदद मिलेगी। यह तब होता है जब नया कर्नेल निष्क्रिय या छोटी गाड़ी के रूप में सामने आता है।

4. संकलन

संकलन करने से पहले, खाली स्थान की उपलब्धता की जांच करना सुनिश्चित करें (विभाजन पर जहां स्रोत स्थित हैं)। चिह्नित करना अच्छा होगा 4-5 जीबी(!) रिजर्व में। संकलन करते समय, स्रोत निर्देशिका का आकार बढ़ सकता है 3.5 जीबी. आप कमांड के साथ खाली जगह की जांच कर सकते हैं

अब, निर्देशिका में एक सामान्य उपयोगकर्ता के अधीन होने के नाते /usr/src/linux-source-2-6-20, हम एक कमांड देते हैं जो स्रोत में किसी के द्वारा संकलित ऑब्जेक्ट फ़ाइलों को हटा देगा, जो पिछले संकलन से बनी हुई थी और संग्रह में थी।

फिर sudo के माध्यम से हमें root के अधिकार मिल जाते हैं और कंपाइलेशन शुरू हो जाता है.

मेक-केपीकेजी --initrd --revision=mybuild.1.0 कर्नेल_इमेज कर्नेल_हेडर्स

इसके बजाय " mybuild.1.0" आपको जो चाहिए वो लिखें। अंग्रेजी अक्षरों, संख्याओं, बिंदुओं की अनुमति है। अंडरस्कोर और डैश की अनुमति नहीं है।

दरअसल, एक सौहार्दपूर्ण तरीके से, एक नियमित उपयोगकर्ता के अधिकारों के तहत कर्नेल का संकलन किया जाना चाहिए। औपचारिक रूप से, कर्नेल बाइनरी बनाना किसी अन्य प्रोग्राम के बाइनरी को संकलित करने से अलग नहीं है। लेकिन हम संकलन मैन्युअल मोड में नहीं करते हैं (जैसे आदेशों के माध्यम से bzImage मॉड्यूल बनाएं), और अर्ध-स्वचालित (के माध्यम से .) में मेक-केपीकेजी) और यह प्रोग्राम कंपाइल करने के बाद प्रोग्राम को अपने नीचे से चलाएगा डीपीकेजी-देबप्राप्त करना लोगों के सामने पहली उपस्थिति करनेवालीकर्नेल पैकेज। इस बिंदु पर, रूट अधिकारों की आवश्यकता है।

अब देखते हैं कि उपरोक्त आदेश क्या करता है। यह कर्नेल को संकलित करना शुरू करता है, और फिर बनाता है लोगों के सामने पहली उपस्थिति करनेवालीनामित पैकेज linux-image-version.deb, जिसमें कर्नेल बाइनरी और कर्नेल मॉड्यूल होंगे (यह लक्ष्य के लिए धन्यवाद किया जाएगा कर्नेल_इमेज) यह भी बनाया जाएगा लोगों के सामने पहली उपस्थिति करनेवालीनामित पैकेज linux-headers-version.deb, इसमें कर्नेल हेडर फाइलें होंगी (यह लक्ष्य के लिए धन्यवाद किया जाएगा कर्नेल_हेडर) परिणामी पैकेज निर्देशिका में होंगे /usr/src.

देखिए इनमें कौन सी फाइलें हैं लोगों के सामने पहली उपस्थिति करनेवाली-पैकेज, में हो सकता है विजेता(कुबंटू में) रुचि के एक पर राइट-क्लिक करके लोगों के सामने पहली उपस्थिति करनेवाली-फ़ाइल और चयन " कुबंटू पैकेज मेनू" -> "पैकेज की जानकारी दिखाएं"। पैकेट बड़े होने के बाद से, लगभग एक मिनट में, सूचना धीरे-धीरे बन जाएगी।

5. कर्नेल स्थापित करना

अब कर्नेल स्थापित करें। निर्देशिका में सुपरयुसर अधिकारों के साथ होना /usr/src, आज्ञा दे

dpkg -i linux-image-version.deb

जिसके बाद आपका कर्नेल (file vmlinuz-2.6.20.3-ubuntu1) निर्देशिका में रखा जाएगा /गाड़ी की डिक्की(पिछले सभी गुठली कहीं नहीं जाएंगे, वे अपने स्थान पर रहेंगे), और निर्देशिका में /lib/मॉड्यूल, नियमित कर्नेल मॉड्यूल वाली निर्देशिका के बगल में (in उबंटू 7.04बुलाया /lib/मॉड्यूल/2.6.20-15-जेनेरिक) आपके नए कर्नेल के मॉड्यूल के साथ एक निर्देशिका दिखाई देगी (हमारे मामले में यह होगा /lib/मॉड्यूल/2.6.20.3-ubuntu1) नया कर्नेल स्वचालित रूप से लिखा जाएगा /boot/grub/menu.lst.

सिद्धांत रूप में, आप पहले से ही रीबूट कर सकते हैं, और लोडिंग स्क्रीन में भोजनआपके कर्नेल के साथ एक नया आइटम दिखाई देगा। नया कोर सूची में सबसे ऊपर दिखाई देगा। लेकिन हम जल्दी में नहीं हैं, लेकिन हम एक और आदेश देंगे

dpkg -i linux-headers-version.deb

जो निर्देशिका में कर्नेल हेडर स्थापित करेगा /usr/src/linux-headers-version, हमारे मामले में यह एक निर्देशिका होगी /usr/src/linux-headers-2.6.20.3-ubuntu1. हमें इन हेडर की आवश्यकता होगी, उदाहरण के लिए, ड्राइवरों को पुन: संकलित करने के लिए nVidiaनए कर्नेल के लिए।

6. पुनरारंभ करें

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

लेकिन कार्ड यूजर्स के लिए nVidia, जिन्होंने "मालिकाना चालक प्रबंधक" के माध्यम से स्थापित ड्राइवरों का उपयोग किया या पैकेज से ड्राइवरों का उपयोग किया एनवीडिया-ग्लक्स(या वहाँ एनवीडिया-जीएलएक्स-नया), मैं 99% गारंटी देता हूं कि आप भाग्यशाली नहीं होंगे! और आप नए कर्नेल के अंतर्गत ग्राफ़िक्स नहीं देखेंगे!

7. nvidia.com से nVidia ड्राइवर स्थापित करना

नए कर्नेल के तहत काम करने वाले x को प्राप्त करने के लिए, पहली बात जो दिमाग में आती है वह है ड्राइवरों को nvidia.com से नए कर्नेल के तहत स्थापित करना। और यह गलत फैसला है! जैसे ही नए कर्नेल के तहत जलाऊ लकड़ी स्थापित की जाती है, आपके पुराने परीक्षण किए गए कर्नेल में ग्राफिक्स काम करना बंद कर देंगे (इस तथ्य के कारण कि एनवीडिया ड्राइवर फाइलें कर्नेल के संस्करण और नाम से कसकर जुड़ी हुई हैं)। और चूंकि आपने अभी तक नए कर्नेल के प्रदर्शन का वास्तव में परीक्षण नहीं किया है, आप "एक देशी कर्नेल के साथ, लेकिन ग्राफिक्स के बिना" और "एक छोटी गाड़ी कर्नेल, लेकिन ग्राफिक्स के साथ" एक सिस्टम प्राप्त कर सकते हैं। मुझे नहीं लगता कि किसी को यह स्थिति पसंद है।

लोकप्रिय लेख "गृहिणियों के लिए परमाणु भौतिकी" में, दोनों कोर के तहत ग्राफिक्स कैसे प्राप्त करें, इस पर सिफारिशें हैं। निम्नलिखित तरीका प्रस्तावित है - nvidia.com से जलाऊ लकड़ी का संस्थापन पैकेज तैयार करने के लिए, और यदि आप एक विशिष्ट कर्नेल के तहत बूट करना चाहते हैं, तो आपको पहले इस कर्नेल के कंसोल मोड में बूट करना होगा, जलाऊ लकड़ी को स्थापित करना होगा, और फिर सामान्य रूप से बूट करना होगा . मुझे नहीं लगता कि कोई भी इस दृष्टिकोण से खुश होगा।

हम यह सुनिश्चित करेंगे कि ग्राफिक्स पुराने कर्नेल और नए कर्नेल दोनों में काम करेंगे, और इसके लिए हर बार जलाऊ लकड़ी के इंस्टॉलेशन (संकलन) को चलाने की आवश्यकता नहीं होगी। ऐसा करने के लिए, हमें केवल एक शर्त को पूरा करने की आवश्यकता होगी - कि विभिन्न कोर के तहत ग्राफिक जलाऊ लकड़ी एक ही संस्करण की हो।

संक्षिप्त कार्य योजना- हम साइट से जलाऊ लकड़ी डालते हैं एनवीडिया.कॉमपूर्ण मानक कर्नेल के लिए। हम सुनिश्चित करते हैं कि वे काम करें। फिर, उसी पैकेज से, हम स्व-निर्मित कर्नेल के लिए जलाऊ लकड़ी स्थापित करते हैं, लेकिन "केवल ग्राफिक्स मॉड्यूल" मोड में।

8. नियमित कर्नेल के लिए nVidia ड्राइवर स्थापित करना

सब कुछ जो नीचे लिखा गया है, उन लोगों के लिए भी उपयुक्त है जिन्होंने मानक कर्नेल के लिए नए nVidia ड्राइवर स्थापित करने का निर्णय लिया है!

साइट से डाउनलोड करना एनवीडिया.कॉमलिनक्स के तहत जलाऊ लकड़ी। मैंने जलाऊ लकड़ी का संस्करण डाउनलोड किया 96.43 . फ़ाइल कहा जाता है एनवीडिया-लिनक्स-x86-96.43.01-pkg1.run. लेकिन आप साइट पर मौजूद अन्य स्थिर रिलीज़ को आज़मा सकते हैं। nVidia.

स्थापित करने के लिए, निर्देशिका में बनाएं /usr/srcउपनिर्देशिका नामित NVIDIA, इस फाइल को वहां कॉपी करें। इस उपनिर्देशिका में होने के कारण, हम फ़ाइल को निष्पादित करने की अनुमति देते हैं

chmod 777 NVIDIA-Linux-x86-96.43.01-pkg1.run

ग्राफिकल इंटरफेस में इस काम पर सब कुछ कुछ समय के लिए खत्म हो जाता है। ग्राफ़ मोड से बाहर निकलने से पहले, दौड़ें synapticऔर सुनिश्चित करें कि आपके पास है

  • कौशल। यह टेक्स्ट-मोड के लिए पैकेज मैनेजर के ऊपर एक फ्रंट-एंड रैपर है।
  • लिनक्स-हेडर-2.6.20-15। ये आपके मानक कर्नेल की शीर्षलेख फ़ाइलें (शीर्षलेख) हैं।
  • लिनक्स-हेडर-2.6.20-15-जेनेरिक। मैं यह नहीं कहूंगा कि यह पैकेज किस लिए है, लेकिन इसे रहने दें।

एक अच्छी युक्ति यह है कि इस लेख के पाठ को कागज पर मुद्रित किया जाए, या इसे एक पाठ फ़ाइल में सहेजा जाए जिसे पाठ मोड से देखा जा सके।

हम नियमित कर्नेल के कंसोल मोड में रीबूट करते हैं (in भोजनऐसा एक बिंदु है)। पर उबंटूआपको स्वचालित रूप से रूट अधिकार मिल जाएंगे, आपको पासवर्ड दर्ज करने की भी आवश्यकता नहीं है। अब हमें लकड़ी को हटाने की जरूरत है nVidiaजो सिस्टम में हैं। यदि आपने "मालिकाना चालक प्रबंधक" (या पैकेज स्थापित करके) के माध्यम से जलाऊ लकड़ी स्थापित की है एनवीडिया-ग्लक्सया एनवीडिया-जीएलएक्स-नया), फिर पैकेज nvidia-glx/nvidia-glx-newसिस्टम से हटा दिया जाना चाहिए, और न केवल अनइंस्टॉल किया जाना चाहिए, बल्कि मोड में अनइंस्टॉल किया जाना चाहिए शुद्ध करना.

मैं एक गूंगा उपयोगकर्ता हूं, और विकल्पों से निपटने के बजाय डीपीकेजी, कंसोल में मैं प्रोग्राम का उपयोग करता हूं कौशल. एक टीम डायल करें

और आप अपने आप को एक खोल में पाएंगे, जो की याद दिलाता है synaptic. शीर्ष पर एक महत्वपूर्ण संकेत होगा। मेनू तक पहुंचने के लिए, दबाएं Ctrl+t(असुविधाजनक, लेकिन क्या करना है)। व्यंजक सूची में
तीर और चाबियाँ दर्जढूंढें और चुनें " पाना"। हम खोज स्ट्रिंग लिखते हैं - एनवीडिया-ग्लक्स. वांछित पैकेज पर प्रकाश पड़ेगा। हम मेनू को फिर से कॉल करते हैं, और आइटम ढूंढते हैं " शुद्ध करना"। इसे क्लिक करें, और जिस पैकेज पर फ्लैश स्थित है, उसे सिस्टम से इसकी सभी फाइलों की पूर्ण स्थापना रद्द करने के लिए चिह्नित किया जाएगा (पैकेज स्वयं कैश में रहेगा, यदि आवश्यक हो तो इसे फिर से स्थापित किया जा सकता है)। नीचे एक संकेत दिखाई देगा - " ई - जांच करें,! - हटाना"। प्रेस " " - और देखें कि कौन से पैकेज हटा दिए जाएंगे। यदि से एनवीडिया-ग्लक्सपैकेज पर निर्भर करते हैं, उन्हें भी अनइंस्टॉल कर दिया जाएगा। यह आमतौर पर एक पैकेज है। एनवीडिया-ग्लक्स-देव. वह भी चला जाए तो ठीक है।

अब हम दबाते हैं" ! "(विशेष रूप से प्रतिभाशाली के लिए - शिफ्ट+1), इसके द्वारा हम अपने परिवर्तनों से सहमत हैं। फिर हम दबाते हैं " क्यू"(बाहर निकलें)। बाहर निकलने पर, प्रोग्राम हमारे द्वारा चिह्नित किए गए पैकेजों को हटा देगा।

अब ऐसा क्षण है। हम अब स्तर पर हैं init 1(केवल कंसोल, बहुत सारी सेवाएं नहीं चल रही हैं)। यदि आप ड्राइवर स्थापना चलाते हैं nVidia, तो वह शपथ लेगी कि आपने सेवा शुरू नहीं की होगी देवफ्स, जो आमतौर पर स्तर पर शुरू होता है 3 . इसलिए, हम आज्ञा देते हैं

टेलिनिट 3

और सिस्टम आवश्यक सेवाओं को लोड करना समाप्त कर देगा, और साथ ही एकल-उपयोगकर्ता मोड से बाहर निकलें (कई कंसोल दिखाई देंगे जिन्हें चाबियों के साथ स्विच किया जा सकता है एएलटी+एफ1...ऑल्ट+F6) आगे के काम के लिए, हमें बस दो कंसोल चाहिए। वैसे, सिस्टम ग्राफिक्स लोड करने का प्रयास करेगा, लेकिन यह सफल नहीं होगा, क्योंकि। हमने अभी ड्राइवर को अनइंस्टॉल किया है। और वह रहेगी 7 एक खाली स्क्रीन के साथ वें कंसोल। घबराएं नहीं, धक्का दें एएलटी+एफ1, हम पहला कंसोल देखते हैं, वहां हम लॉगिन, पासवर्ड के साथ-साथ ग्राफिकल इनपुट में प्रवेश करते हैं (केवल लॉगिन और पासवर्ड के बाद, दबाएं दर्जलेकिन नहीं टैब).

लॉग इन करने के बाद, हम कॉल करते हैं एम सीसुपरयूज़र के तहत

कैटलॉग पर जाएं /usr/src/एनवीडिया

./NVIDIA-लिनक्स-x86-96.43.01-pkg1.run -e

विकल्प " -इ" हमें कार्रवाई रिपोर्ट देखने और परस्पर विरोधी फाइलें देखने की अनुमति देगा। आइए स्थापना शुरू करें। हम लाइसेंस से सहमत हैं। हम स्रोतों को फिर से शुरू करने से इनकार करते हैं एफ़टीपीएनवीडिया। हमने बोला ठीक हैकि मॉड्यूल हमारे द्वारा बनाए जाएंगे। पथ में प्रवेश करने के बारे में प्रश्नों के लिए, बस क्लिक करें दर्ज.

अंत में, इंस्टॉलेशन से पहले ही, इंस्टॉल की जाने वाली फाइलों की एक सूची दिखाई जाएगी। और इस लिस्ट के शुरुआत में (अगर मिला तो) दिखाई देगा परस्पर विरोधी फ़ाइलें. लिखा जाएगा" बैकअप फ़ाइल ..."- यह वही है जो वे हैं। मेरे मामले में, ये फाइलें थीं

/usr/lib/xorg/modules/extensions/libGLcore.so
/usr/lib/xorg/modules/extensions/libglx.so
/usr/lib/libGL.so
/usr/lib/libGL.so.1
/usr/lib/libGL.so.1.2
/lib/मॉड्यूल/2.6.20-15-जेनेरिक/अस्थिर/nvidia.ko
/usr/include/GL/glext.h
/usr/include/gl/gl.h
/usr/include/GL/glxext.h
/usr/include/GL/glx.h

ये पैकेज की फाइलें हैं एनवीडिया-प्रतिबंधित-मॉड्यूल. तथ्य यह है कि यदि आप केवल इस पैकेज को हटाते हैं, तो इन फ़ाइलों के साथ, सभी फ़ाइलों के लिए nVidia- चिपसेट ( nVidiaआखिरकार, यह न केवल वीडियो कार्ड बनाता है)। आपको आश्रित पैकेजों को हटाने की भी आवश्यकता होगी। लिनक्स-प्रतिबंधित-मॉड्यूल-2.6.20-15-जेनेरिक, लिनक्स-प्रतिबंधित-मॉड्यूल-जेनेरिकऔर लिनक्स जेनेरिक. इसलिए, इस पैकेज को हटाना अवांछनीय है। इसलिए, हम इसे अलग तरह से करेंगे।

जैसे ही आप ऐसी सूची देखते हैं, दूसरे कंसोल में लॉग इन करें (संक्रमण - एएलटी+F2), Daud

और पहले कंसोल में सूची का जिक्र करते हुए, इन परस्पर विरोधी फ़ाइलों को होम निर्देशिका में एक अलग निर्देशिका में कहीं स्थानांतरित करें। क्यों चलते हैं और हटाते नहीं हैं? तथ्य यह है कि लिनक्स में फ़ाइल नाम "मानव-पठनीय" हैं, और आप आसानी से गलती कर सकते हैं और गलत फ़ाइल को हटा सकते हैं।

के लिए इच्छित सभी फाइलों को हटाने के बाद बैकअप, पहले कंसोल पर लौटें। स्थापना रद्द करें ( Ctrl+सी) और इसे पुनरारंभ करें। यदि एक " बैकअप फ़ाइल ..." अब नहीं रहेगा, फिर इंस्टॉलेशन पूरा करें। सब कुछ सुचारू रूप से चलना चाहिए। आप फिक्स से सहमत हो सकते हैं xorg.conf, अभी भी एक बैकअप फ़ाइल बनाएँ।

अब ध्यान!सबसे महत्वपूर्ण बात, इस समय ओवरलोड न करें! और फाइल पर जाएं /आदि/डिफ़ॉल्ट/लिनक्स-प्रतिबंधित-मॉड्यूल-सामान्य, और विकल्प में जोड़ें DISABLED_MODULESमॉड्यूल एन.वी.और एनवीडिया_नया. मैंने इसे इस तरह किया है

DISABLED_MODULES="nv nvidia_new"

यदि ऐसा नहीं किया जाता है, तो अगली बार जब आप फ़ाइल लोड करते हैं (जिसे आपने हटा दिया है!) /lib/मॉड्यूल/2.6.20-15-जेनेरिक/अस्थिर/nvidia.koस्वचालित रूप से होगा बहालपैकेज से एनवीडिया-प्रतिबंधित-मॉड्यूल. और आपकी फ़ाइल जिसे आपने ड्राइवरों को स्थापित करते समय संकलित किया था, कहलाती है /lib/मॉड्यूल/2.6.20-15-जेनेरिक/कर्नेल/ड्राइवर/वीडियो/nvidia.ko. और इसलिए, प्रारंभ में ksov पहली फ़ाइल मिलेगी। और यह आपकी फाइल तक नहीं पहुंचेगा। और X बूट नहीं कर पाएगा।

हम मानक कर्नेल में पूर्ण मोड में रीबूट करते हैं। अगर सब कुछ सही ढंग से किया जाता है, तो एक्स शुरू हो जाएगा। आनन्दित, कम से कम आपके पास अभी भी एक कार्य प्रणाली है।

9. कस्टम कर्नेल के लिए nVidia ड्राइवर स्थापित करना

अब अंतिम चरण बाकी है - ग्राफिक्स को नए कर्नेल में काम करने के लिए। यहां सब कुछ काफी सरल है। हम होममेड कर्नेल के कंसोल मोड में बूट करते हैं। हम आज्ञा देते हैं

लॉग इन करें, और पहले कंसोल रन में

कैटलॉग पर जाएं /usr/src/एनवीडियाऔर आदेश के साथ जलाऊ लकड़ी स्थापित करना शुरू करें

./NVIDIA-लिनक्स-x86-96.43.01-pkg1.run -के

विकल्प " -के"आपको केवल ग्राफिक्स मॉड्यूल बनाने की अनुमति देता है एनवीडिया.कोवर्तमान कर्नेल के अंतर्गत (और फ़ाइल को निर्देशिका में रखा जाएगा /lib/मॉड्यूल/current_kernel_name/कर्नेल/ड्राइवर) कोई अन्य साझा फ़ाइल, जैसे कि इसमें नहीं रखी जाएगी /usr/lib...जैसे कि "-e" विकल्प के साथ संकलन करते समय, नहीं बनाया जाएगा।

उसी तरह जैसे मानक कर्नेल में संकलन करते समय, हम दबाकर पथों से सहमत होते हैं दर्ज. हम उस स्क्रीन पर पहुँचते हैं जहाँ स्थापित की जाने वाली फ़ाइलें सूचीबद्ध होंगी। यदि इस सूची की शुरुआत में परस्पर विरोधी फ़ाइलें हैं " बैकअप फ़ाइल ...", आसन्न कंसोल पर स्विच करें और इन फ़ाइलों को हटाएं (स्थानांतरित करें)।

विरोधी फाइलों को हटाने के बाद, पहले कंसोल में, इंस्टॉलेशन को निरस्त करें ( Ctrl+सी), और इसे फिर से चलाएँ (विकल्प के साथ " -के"बेशक। स्थापना पूर्ण होने के बाद, मेनू से चयन करके रीबूट करें भोजनअपने कर्नेल के साथ पूर्ण मोड में।

एक्स शुरू होना चाहिए। आप दूसरी बार आनन्दित हो सकते हैं - आपके पास एक कस्टम कर्नेल और कार्यशील ग्राफ़िक्स वाला सिस्टम है।

किसी भी समय, आप अब वांछित कर्नेल के तहत बूट कर सकते हैं, और ग्राफिक्स को हर जगह काम करना चाहिए। बस इतना ही।