CentOS 7 पर लिनक्स कर्नेल को कैसे संकलित करें


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

इस लेख में, मैं समझाऊंगा कि CentOS 7 वितरण में स्रोतों से नवीनतम लिनक्स कर्नेल को कैसे संकलित और उपयोग किया जाए (यहां दिए गए निर्देश भी RHEL और Fedora पर काम करते हैं) )।

यदि आप इन जटिल सेटअप से गुजरना नहीं चाहते हैं, तो हमारे आसान लेख का पालन करें जो बताता है कि कैसे स्थापित करें या अप करने के लिए अपग्रेड करें CentOS 7 पर तृतीय-पक्ष RPM रिपॉजिटरी का उपयोग कर।

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

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

# yum update
# yum install -y ncurses-devel make gcc bc bison flex elfutils-libelf-devel openssl-devel grub2

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

/usr/src/ निर्देशिका के तहत नवीनतम कमांड कर्नेल 4.17 स्रोतों को डाउनलोड करें या आप kernel.org पर जाकर नवीनतम कर्नेल डाउनलोड कर सकते हैं।

# cd /usr/src/
# wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.11.tar.xz

निम्न आदेशों का उपयोग करके संग्रहीत फ़ाइलों और निर्देशिकाओं को बदलें।

# tar -xvf linux-4.17.11.tar.xz
# cd linux-4.17.11/

CentOS 7 में कर्नेल को कॉन्फ़िगर करें

कर्नेल को CentOS 7 वातावरण में निम्नलिखित आवश्यक कॉन्फ़िगरेशन विकल्पों के साथ सही ढंग से कॉन्फ़िगर किया जाना चाहिए।

CONFIG_KVM_GUEST=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_BLK_DEV_SD
CONFIG_SCSI_VIRTIO=y
CONFIG_VIRTIO_NET=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y

मैं आपको दृढ़ता से चल रहे कर्नेल कॉन्फ़िगरेशन (<कोड> .config ) को /बूट निर्देशिका से नई कर्नेल linux-4.17.11 निर्देशिका में कॉपी करने का सुझाव देता हूं।

# cp -v /boot/config-3.10.0-693.5.2.el7.x86_64 /usr/src/linux-4.17.11/.config

अब लिनक्स कर्नेल को कॉन्फ़िगर करने के लिए make menuconfig कमांड चलाएँ। एक बार जब आप नीचे दिए गए कमांड को निष्पादित करते हैं तो सभी मेनू के साथ एक पॉप अप विंडो दिखाई देती है। यहां आप कुछ कर्नेल सुविधाओं को सक्षम या अक्षम कर सकते हैं। यदि आप इन मेनू से अपरिचित हैं, तो बस बाहर निकलने के लिए ESC कुंजी दबाएं।

# cd /usr/src/linux-4.17.11/
# make menuconfig

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

CentOS 7 में कर्नेल संकलित करें

कर्नेल संकलन शुरू करने से पहले, सुनिश्चित करें कि आपके सिस्टम में फ़ाइल सिस्टम पर खाली स्थान का 25GB अधिक है। पुष्टि करने के लिए, आप दिखाए गए अनुसार df कमांड का उपयोग करके फ़ाइल सिस्टम मुक्त स्थान की जांच कर सकते हैं।

# df -h

अब कर्नेल और मॉड्यूल को निम्न कमांड्स का उपयोग करके संकलित और स्थापित करें ( इसमें कई घंटे लग सकते हैं )। संकलन प्रक्रिया /बूट निर्देशिका के तहत फ़ाइलों को रखती है और आपकी grub.conf फ़ाइल में एक नई कर्नेल प्रविष्टि भी बनाती है।

# make bzImage
# make modules
# make
# make install
# make modules_install

संकलन पूरा होने के बाद, सिस्टम को रिबूट करें और नव स्थापित कर्नेल को सत्यापित करें।

# uname -sr

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