कैसे अपने Ubuntu कर्नेल को अनुकूलित करने के लिए
कर्नेल अनुकूलन सभी के लिए नहीं है। कृपया ध्यान दें कि इससे पहले कि आप किसी भी तरह की कोशिश करें, यह आपके सिस्टम को तोड़ सकता है.
वहाँ कारणों का एक गुच्छा है कि आप अपने कर्नेल को अनुकूलित करना चाहते हैं। आप केवल आवश्यक सेवाओं के लिए अपने कर्नेल को ट्रिम करना चाह सकते हैं, खासकर यदि आप एक सर्वर या समर्पित डिवाइस चला रहे हैं जिसके लिए केवल आवश्यक है। आपको अपने कर्नेल को हार्डवेयर का समर्थन करने की आवश्यकता हो सकती है जो वर्तमान में आपके द्वारा चलाए जा रहे कर्नेल के साथ समर्थित नहीं है.
यह लेख यह नहीं समझाएगा कि कैसे अपने कर्नेल को पैच करें, बस अपने वर्तमान को कैसे अनुकूलित करें। मेरे पास एक और फॉलोअप लेख होगा जो बताता है कि अपने कर्नेल को कैसे पैच करना है, और कुछ व्यावहारिक कारण हैं कि आप ऐसा क्यों करना चाहते हैं.
शुरू करने के लिए, हमें यह पता लगाने की आवश्यकता है कि वर्तमान में चल रहे कर्नेल का कौन सा संस्करण है। हम उसके लिए uname कमांड का उपयोग करेंगे
$ uname -r
2.6.17-10-सामान्य
अब हमें अपने कर्नेल के लिए लिनक्स स्रोत को स्थापित करने की आवश्यकता है, ध्यान दें कि मैं 2.6.17-10 कर्नेल चला रहा हूं, इसलिए इंस्टॉलर लाइन यह दर्शाती है। इस लेख के प्रयोजनों के लिए, आप जो भी चल रहे हैं उसके लिए कर्नेल संख्या को प्रतिस्थापित कर सकते हैं। हमें संकलित पुस्तकालय और कुछ अन्य उपकरणों को भी संकलित करने में मदद करने की आवश्यकता है.
sudo apt-get install linux-source-2.6.17 कर्नेल-पैकेज libncurses5-dev fakeroot
यदि आप उत्सुक हैं कि लिनक्स स्रोत कहां स्थापित हो गया है, तो आप एक पैकेज के भीतर फाइलों को बताने के लिए dpkg कमांड का उपयोग कर सकते हैं। यहाँ मेरे सिस्टम पर आउटपुट है:
$ dpkg -L linux-source-2.6.17
/.
/ usr
/ Usr / src
/usr/src/linux-source-2.6.17.tar.bz2
/ Usr / share
/ Usr / share / doc
/usr/share/doc/linux-source-2.6.17
(छंटनी)
हम देख सकते हैं कि स्रोत को ज़िपित फ़ाइल में / usr / src निर्देशिका में स्थापित किया गया है.
चीजों को आसान बनाने के लिए, हम एक नया शेल खोलने के लिए sudo का उपयोग करके खुद को रूट मोड में डालेंगे। ऐसा करने के अन्य तरीके हैं, लेकिन मैं इस तरह से पसंद करता हूं.
सुडो / बिन / बैश
अब डायरेक्टरी को सोर्स लोकेशन में बदलें ताकि हम इंस्टॉल कर सकें। ध्यान दें कि अगर आपने इसे स्थापित नहीं किया है, तो आपको बंजिप उपयोगिता स्थापित करने की आवश्यकता हो सकती है। (यह मेरा था)
सीडी / यूएसआर / src
bunzip2 linux-source-2.6.17.tar.bz2
tar xvf linux-source-2.6.17.tar
ln -s linux-source-2.6.17 linux
कस्टम संकलन प्रक्रिया के लिए उपयोग करने के लिए अपने मौजूदा कर्नेल कॉन्फ़िगरेशन की एक प्रतिलिपि बनाएँ। ध्यान दें कि 'वर्ण tilde के नीचे वाला एक है ~
cp / boot / config-'uname -r '/usr/src/linux/.config
अब हम उपयोगिता को लॉन्च करेंगे जो हमें कर्नेल को कस्टमाइज़ करने देगा:
cd / usr / src / linux
menuconfig करें
सबसे पहले, एक वैकल्पिक कॉन्फ़िगरेशन फ़ाइल लोड करने के लिए नीचे जाएं, और .config फ़ाइल लोड करें। (बस हिट दर्ज करें)
अब जब हम उपयोगिता के अंदर हैं, तो हम अपने कस्टम कर्नेल के लिए विकल्प निर्धारित कर सकते हैं। नेविगेशन बहुत सरल है, यदि आप खो जाते हैं तो शीर्ष पर एक किंवदंती है। मैंने नेटवर्किंग का चयन करने का निर्णय लिया और उस श्रेणी में नीचे जाने के लिए Enter कुंजी मारा.
शौकिया रेडियो समर्थन? क्या नरक में स्थापित किया गया है? आप इस बात पर ध्यान देंगे कि यह कर्नेल में अंतर्निहित है.
दबाकर? कुंजी, हम उस विशेष आइटम के लिए मदद देख सकते हैं। यहाँ स्पष्टीकरण है:
ठीक है, मैं इसे तुरंत अक्षम करने जा रहा हूं। पृथ्वी पर ऐसा क्यों है जो मेरे कर्नेल में वैसे भी स्थापित है? मैंने मदद स्क्रीन से बाहर निकलने के लिए Esc को मारा, और फिर N को अपने कर्नेल से बाहर करने के लिए मारा.
जब आप जो चाहें विकल्प बनाना समाप्त कर लें, बाहर निकलें पर हिट करें और संकेत मिलने पर कॉन्फ़िगरेशन सहेजें.
अब हमारे पास संकलन के लिए एक विन्यास तैयार है। पहले हम एक साफ सफाई करेंगे, बस यह सुनिश्चित करने के लिए कि सब कुछ संकलन के लिए तैयार है.
make-kpkg साफ
आगे हम वास्तव में कर्नेल को संकलित करेंगे। यह एक लंबा समय लगेगा, इसलिए कुछ दिलचस्प करने के लिए जाओ.
फ़ेकरूट मेक-केपीके -इंटरिट -एपेंड-टू-वर्ज़न = -कस्टम कर्नेल_जिम केटरिंग_एकर्स
यह प्रक्रिया दो .deb फ़ाइलें / usr / src बनाएगी जिसमें कर्नेल होता है। Linux- छवि **** फ़ाइल वास्तविक कर्नेल छवि है, और दूसरी फ़ाइल में आप dpkg के साथ दोनों को स्थापित कर सकते हैं। फ़ाइलनाम शायद आपके सिस्टम पर अलग होंगे.
कृपया ध्यान दें कि जब आप ये अगली कमांड चलाते हैं, तो यह नए कर्नेल को नए डिफ़ॉल्ट कर्नेल के रूप में सेट करेगा। इससे चीजें टूट सकती हैं! यदि आपकी मशीन बूट नहीं करती है, तो आप Esc को GRUB लोडिंग मेनू पर हिट कर सकते हैं, और अपने पुराने कर्नेल का चयन कर सकते हैं। फिर आप /boot/grub/menu.lst में कर्नेल को अक्षम कर सकते हैं या फिर कोशिश कर सकते हैं और संकलित कर सकते हैं.
dpkg -i linux-image-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb
अब अपनी मशीन को रिबूट करें। यदि सब कुछ काम करता है, तो आपको अपना नया कस्टम कर्नेल चलाना चाहिए। आप इसे uname का उपयोग करके देख सकते हैं। ध्यान दें कि आपकी मशीन पर सटीक संख्या भिन्न होगी.
बेमिसाल -r
2.6.17.14-ubuntu1-रिवाज
मैं कर्नेल अनुकूलन पर लेखों की एक श्रृंखला लिखने की योजना बना रहा हूं, इसलिए अपडेट के लिए आरएसएस फ़ीड की सदस्यता लें.
इसके अलावा, पूर्ण प्रकटीकरण के हितों में, मैंने हॉवटोफॉर्ग के लेख से यह करना सीखा, जो कि लिनक्स पर कुछ बहुत ही उन्नत ट्यूटोरियल के लिए एक शानदार वेबसाइट है। आप ध्यान देंगे कि इस लेख के कई चरण समान हैं, हालाँकि मैंने इस लेख को और अधिक "उबंटू" बनाने की कोशिश की है.