यहाँ कदम हैं। यह प्रक्रिया nixCraft की हाउ टू: कंपाइल लिनक्स कर्नेल 2.6 - लेकिन आधुनिकीकरण पर आधारित है।
जिस कर्नेल को आप बनाना चाहते हैं उसका सोर्स कोड डाउनलोड करें और निकालें।
आप kernel.org पर अपस्ट्रीम कर्नेल सोर्स कोड प्राप्त कर सकते हैं । संस्करण 3.16.1 (इस लेखन के रूप में नवीनतम स्थिर कर्नेल) का उपयोग यहां किया जाएगा। यदि आपको किसी भिन्न संस्करण का उपयोग कर रहे हैं, तो आपको इन आदेशों को संशोधित करने की आवश्यकता हो सकती है।
वर्तमान में कर्नेल स्रोत कोड प्रदान किया गया है। टार । xz अभिलेखागार, इसलिए जो भी संस्करण आप चाहते हैं, उसके द्वारा "tar.xz" लिंक पर क्लिक करें:
cd
उस निर्देशिका में शामिल होने के बाद जहां आपने संग्रह डाउनलोड किया है, आप इसे इसके साथ निकाल सकते हैं tar
:
tar xf linux-3.16.1.tar.xz
आवश्यक बिल्ड टूल इंस्टॉल करें और कर्नेल कॉन्फ़िगरेशन करें।
उबंटू के प्राप्त करने के लिए toolchain ( gcc
, make
, और आगे) स्थापित निर्माण आवश्यक metapackage:
sudo apt-get update
sudo apt-get install build-essential
क्या आपके कर्नेल में चला जाता है कॉन्फ़िगर करने के लिए दो यथोचित उपयोगकर्ता के अनुकूल तरीके से प्रदान की जाती हैं make
लक्ष्यों xconfig
और menuconfig
।
xconfig
menuconfig
पाठ आधारित (यानी, इसका इंटरफ़ेस आपके टर्मिनल के भीतर पूरी तरह से दिखाई देता है) , जबकि एक ग्राफिकल कॉन्फ़िगरेशन उपयोगिता चलाता है । प्रत्येक को कुछ अतिरिक्त सॉफ़्टवेयर की आवश्यकता होती है जो बिल्ड-एसेंशियल द्वारा प्रदान नहीं किए जाते हैं ।
ग्राफिक रूप से कॉन्फ़िगर करने के लिए , libqt4-dev और pkg-config इंस्टॉल करेंऔर चलाएंmake xconfig
:
sudo apt-get install libqt4-dev pkg-config
make xconfig
टर्मिनल में कॉन्फ़िगर करने के लिए , इंस्टॉल करेंlibncurses5-dev
(इस जानकारी केलिए हन्नू को धन्यवाद) और चलाएंmake menuconfig
:
sudo apt-get install libncurses5-dev
make menuconfig
कॉन्फ़िगर किए गए कर्नेल का निर्माण करें।
कर्नेल को संकलित करने और बनाने के लिए पहले इसे चलाएं vmlinuz
:
make
vmlinuz
"कर्नेल है।" विशेष रूप से, यह कर्नेल छवि है जो असम्पीडित होगी और मेमोरी में GRUB या आपके द्वारा उपयोग किए जाने वाले अन्य बूट लोडर द्वारा लोड की जाएगी ।
फिर लोड करने योग्य कर्नेल मॉड्यूल बनाएं :
make modules
अपने नव निर्मित गिरी स्थापित करें।
उन make
आदेशों को सफलतापूर्वक पूरा करने पर, नए कर्नेल को स्थापित करने का समय आ गया है। पहले मॉड्यूल स्थापित करें:
sudo make modules_install
फिर कर्नेल को स्वयं स्थापित करें :
sudo make install
वह vmlinuz-3.16.1
( vmlinuz
), config-3.16.1
(एक पाठ फ़ाइल को कर्नेल कॉन्फ़िगरेशन पैरामीटर को संग्रहीत करता है), और System.map-3.16.1
( कर्नेल प्रतीक लुकअप तालिका ) में डालता है /boot
। अधिक जानकारी के लिए, Hadron द्वारा इस comp.os.linux.misc पोस्ट को देखें और man installkernel
।
अंतिम सेटअप, ताकि कर्नेल को शुरू किया जा सके और सिस्टम को बूट किया जा सके:
यह खंड आंशिक रूप से कर्नेल / संकलन में जानकारी पर आधारित है ।
कर्नेल के साथ अब इसे कहाँ होना चाहिए, इसकी आवश्यकता है:
के साथ अपने initramfs उत्पन्न करेंmkinitramfs
:
cd /boot
sudo mkinitramfs -ko initrd.img-3.16.1 3.16.1
जब आप GRUB2 बूट लोडर के कॉन्फ़िगरेशन को अपडेट करते हैं - जो उबंटू में 9.10-- के बाद से डिफॉल्ट हो गया है , तो नए कर्नेल का स्वतः पता लगा लेना चाहिए और उससे बूट करने के लिए एक विकल्प जोड़ना चाहिए।
sudo update-grub
अपनी गिरी को आजमाएं।
अब आप अपने नए कर्नेल का परीक्षण करने के लिए रीबूट कर सकते हैं। GRUB बूट मेनू देखने के लिए आपको बूट के दौरान नीचे दबाए रखने Shiftया प्रेस करने की आवश्यकता हो सकती है Escजहां आप स्थापित किए गए विभिन्न कर्नेल के बीच चयन कर सकते हैं।
अपने कर्नेल (या अन्य एक) को डिफ़ॉल्ट बनाने के लिए, मैं GRUB बूट ऑर्डर को कैसे बदलूं?