कर्नेल अनुकूलन हर किसी के लिए नहीं है। इससे पहले कि आप इनमें से किसी भी कोशिश कीजिए कि यह आपके सिस्टम को तोड़ सकता है, कृपया ध्यान दें।
कारणों का एक समूह है कि आप अपने कर्नेल को कस्टमाइज़ करना चाहते हैं। आप अपने कर्नेल को केवल आवश्यक सेवाओं तक ट्रिम करना चाहते हैं, खासकर यदि आप एक सर्वर या समर्पित डिवाइस चला रहे हैं जिसके लिए केवल आवश्यक आवश्यकताएं हैं। आपको हार्डवेयर का समर्थन करने के लिए अपने कर्नेल को पैच करने की भी आवश्यकता हो सकती है जो वर्तमान में आपके द्वारा चलाए जा रहे कर्नेल के साथ समर्थित नहीं है।
यह आलेख यह नहीं बताएगा कि अपने कर्नेल को कैसे पैच करना है, बस अपने वर्तमान को कैसे अनुकूलित करें। मेरे पास एक और अनुवर्ती आलेख होगा जो बताता है कि अपने कर्नेल को कैसे पैच करना है, और कुछ व्यावहारिक कारणों से आप ऐसा क्यों करना चाहते हैं।
शुरू करने के लिए, हमें यह पता लगाने की आवश्यकता है कि कर्नेल का कौन सा संस्करण वर्तमान में चल रहा है। हम इसके लिए uname कमांड का उपयोग करेंगे
$ uname -r
2.6.17-10-generic
अब हमें आपके कर्नेल के लिए लिनक्स स्रोत स्थापित करने की आवश्यकता है, ध्यान दें कि मैं 2.6.17-10 कर्नेल चला रहा हूं, इसलिए इंस्टॉलर लाइन उसको प्रतिबिंबित करती है। इस आलेख के प्रयोजनों के लिए, आप जो कुछ भी चल रहे हैं उसके लिए आप कर्नेल संख्या को प्रतिस्थापित कर सकते हैं। संकलन करने में हमारी सहायता के लिए हमें शाप पुस्तकालय और कुछ अन्य टूल इंस्टॉल करने की भी आवश्यकता है।
sudo apt-get install linux-source-2.6.17 kernel-package 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 (trimmed)
हम देख सकते हैं कि स्रोत ज़िप / फ़ाइल में / usr / src निर्देशिका में स्थापित किया गया है।
चीजों को आसान बनाने के लिए, हम एक नया खोल खोलने के लिए सुडो का उपयोग करके खुद को रूट मोड में डाल देंगे। ऐसा करने के अन्य तरीके हैं, लेकिन मैं इस तरह से पसंद करता हूं।
sudo /bin/bash
अब निर्देशिका स्थान में निर्देशिका बदलें ताकि हम इंस्टॉल कर सकें। ध्यान दें कि यदि यह स्थापित नहीं है तो आपको बंजीज़ उपयोगिता स्थापित करने की आवश्यकता हो सकती है। (यह मेरा था)
cd /usr/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
make menuconfig
सबसे पहले, वैकल्पिक कॉन्फ़िगरेशन फ़ाइल लोड करने के लिए नीचे जाएं, और.config फ़ाइल लोड करें। (बस दर्ज करें)
अब जब हम उपयोगिता के अंदर हैं, तो हम अपने कस्टम कर्नेल के लिए विकल्प सेट कर सकते हैं। नेविगेशन बहुत आसान है, अगर आप खो जाते हैं तो शीर्ष पर एक किंवदंती है। मैंने नेटवर्किंग का चयन करने का फैसला किया और उस श्रेणी में जाने के लिए एंटर कुंजी दबाएं।
जब आप जो भी विकल्प चाहते हैं उसे पूरा कर लेते हैं, तो बाहर निकलें और संकेत दिए जाने पर कॉन्फ़िगरेशन को सहेजें।
अब हमारे पास संकलन के लिए एक कॉन्फ़िगरेशन तैयार है। सबसे पहले हम यह सुनिश्चित करने के लिए एक साफ कर लेंगे कि सब कुछ संकलन के लिए तैयार है।
make-kpkg clean
इसके बाद हम वास्तव में कर्नेल संकलित करेंगे। इसमें एक लंबा फर्किंग समय लगेगा, इसलिए कुछ दिलचस्प करने के लिए जाएं।
fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers
यह प्रक्रिया कर्नेल युक्त / usr / src में दो.deb फ़ाइलों को बनाएगी। लिनक्स-छवि **** फ़ाइल वास्तविक कर्नेल छवि है, और दूसरी फ़ाइल में आप दोनों को डीपीकेजी के साथ स्थापित कर सकते हैं। फ़ाइल नाम शायद आपके सिस्टम पर अलग होंगे।
कृपया ध्यान दें कि जब आप इन अगले आदेशों को चलाते हैं, तो यह नया कर्नेल नया डिफ़ॉल्ट कर्नेल के रूप में सेट करेगा। यह चीजों को तोड़ सकता है! अगर आपकी मशीन बूट नहीं होती है, तो आप GRUB लोडिंग मेनू पर Esc को दबा सकते हैं और अपना पुराना कर्नेल चुन सकते हैं। फिर आप कर्नेल को /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-custom
मैं कर्नेल अनुकूलन पर लेखों की एक श्रृंखला लिखने की योजना बना रहा हूं, इसलिए अपडेट के लिए आरएसएस फ़ीड की सदस्यता लें।
इसके अलावा, पूर्ण प्रकटीकरण के हित में, मैंने सीटोफोर्ज में आलेख से ऐसा कैसे किया, यह लिनक्स पर कुछ बहुत ही उन्नत ट्यूटोरियल के लिए एक महान वेबसाइट है। आप ध्यान दें कि इस आलेख में कई कदम समान हैं, हालांकि मैंने इस लेख को और अधिक "उबंटू" बनाने की कोशिश की।