CentOS 7-ൽ ലിനക്സ് കേർണൽ എങ്ങനെ കംപൈൽ ചെയ്യാം


ഒരു ഇഷ്uടാനുസൃത കംപൈൽ ചെയ്uത ലിനക്uസ് കേർണൽ പ്രവർത്തിപ്പിക്കുന്നത് എല്ലായ്uപ്പോഴും ഉപയോഗപ്രദമാണ്, പ്രത്യേകിച്ചും ഡിഫോൾട്ട് വിതരണ-വിതരണ കേർണലുകളിൽ ലഭ്യമല്ലാത്ത നിർദ്ദിഷ്ട കേർണൽ സവിശേഷതകൾ പ്രവർത്തനക്ഷമമാക്കാനോ പ്രവർത്തനരഹിതമാക്കാനോ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ.

ഈ ലേഖനത്തിൽ, CentOS 7 വിതരണത്തിലെ ഉറവിടങ്ങളിൽ നിന്ന് ഏറ്റവും പുതിയ ലിനക്സ് കേർണൽ എങ്ങനെ കംപൈൽ ചെയ്യാമെന്നും ഉപയോഗിക്കാമെന്നും ഞാൻ വിശദീകരിക്കും (ഇവിടെ നൽകിയിരിക്കുന്ന നിർദ്ദേശങ്ങൾ RHEL, Fedora എന്നിവയിലും പ്രവർത്തിക്കുന്നു).

നിങ്ങൾക്ക് ഈ സങ്കീർണ്ണമായ സജ്ജീകരണത്തിലൂടെ കടന്നുപോകാൻ താൽപ്പര്യമില്ലെങ്കിൽ, മൂന്നാം കക്ഷി RPM ശേഖരം ഉപയോഗിച്ച് CentOS 7-ൽ കേർണൽ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം അല്ലെങ്കിൽ അപ്uഗ്രേഡ് ചെയ്യാം എന്ന് വിശദീകരിക്കുന്ന ഞങ്ങളുടെ ലളിതമായ ലേഖനം പിന്തുടരുക.

കേർണൽ സമാഹരണത്തിന് ആവശ്യമായ പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക

ആദ്യം, നിങ്ങളുടെ സോഫ്uറ്റ്uവെയർ പാക്കേജ് റിപ്പോസിറ്ററികൾ അപ്uഡേറ്റ് ചെയ്യുന്നത് ഉറപ്പാക്കുക, ഒരു കേർണൽ കംപൈൽ ചെയ്യുന്നതിന് ആവശ്യമായ ഡെവലപ്uമെന്റ് ടൂളുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക, ഇനിപ്പറയുന്ന yum കമാൻഡ് ഉപയോഗിച്ച് ncurses ലൈബ്രറി ഇൻസ്റ്റാൾ ചെയ്യുക.

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

CentOS 7-ൽ കേർണൽ കംപൈൽ ചെയ്ത് ഇൻസ്റ്റാൾ ചെയ്യുക

kernel.org ഉപയോഗിച്ച് ഏറ്റവും പുതിയ കേർണൽ 4.17 ഉറവിടങ്ങൾ ഡൗൺലോഡ് ചെയ്യുക.

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

ആർക്കൈവുചെയ്uത ഫയലുകൾ എക്uസ്uട്രാക്uറ്റ് ചെയ്uത് ഇനിപ്പറയുന്ന കമാൻഡുകൾ ഉപയോഗിച്ച് ഡയറക്uടറികൾ മാറ്റുക.

# 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) /boot ഡയറക്ടറിയിൽ നിന്ന് പുതിയ കേർണൽ ലിനക്സ്-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

നിങ്ങളുടെ കേർണൽ കോൺഫിഗറേഷൻ ഓപ്uഷനുകൾ സജ്ജീകരിച്ചുകഴിഞ്ഞാൽ, കോൺഫിഗറേഷൻ ഇന്റർഫേസ് സംരക്ഷിച്ച് മെനുവിൽ നിന്ന് പുറത്തുകടക്കാൻ സംരക്ഷിക്കുക എന്നതിൽ ക്ലിക്ക് ചെയ്യുക.

CentOS 7-ൽ കേർണൽ കംപൈൽ ചെയ്യുക

കേർണൽ കംപൈലേഷൻ ആരംഭിക്കുന്നതിന് മുമ്പ്, നിങ്ങളുടെ സിസ്റ്റത്തിന് ഫയൽ സിസ്റ്റത്തിൽ 25GB-ൽ കൂടുതൽ ഇടം ഉണ്ടെന്ന് ഉറപ്പാക്കുക. സ്ഥിരീകരിക്കുന്നതിന്, കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾക്ക് df കമാൻഡ് ഉപയോഗിച്ച് ഫയൽ സിസ്റ്റം ഫ്രീ സ്പേസ് പരിശോധിക്കാം.

# df -h

ഇപ്പോൾ താഴെ പറയുന്ന കമാൻഡുകൾ ഉപയോഗിച്ച് കേർണലും മൊഡ്യൂളുകളും കംപൈൽ ചെയ്ത് ഇൻസ്റ്റാൾ ചെയ്യുക (ഇതിന് മണിക്കൂറുകൾ എടുത്തേക്കാം). കംപൈലേഷൻ പ്രക്രിയ ഫയലുകൾ /boot ഡയറക്ടറിക്ക് കീഴിൽ സ്ഥാപിക്കുകയും നിങ്ങളുടെ grub.conf ഫയലിൽ ഒരു പുതിയ കേർണൽ എൻട്രി ഉണ്ടാക്കുകയും ചെയ്യുന്നു.

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

സമാഹാരം പൂർത്തിയായിക്കഴിഞ്ഞാൽ, സിസ്റ്റം റീബൂട്ട് ചെയ്ത് പുതുതായി ഇൻസ്റ്റാൾ ചെയ്ത കേർണൽ പരിശോധിക്കുക.

# uname -sr

അത്രയേയുള്ളൂ. ഈ ലേഖനം നിങ്ങൾക്കെല്ലാവർക്കും വളരെ സഹായകരമാകുമെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു. കേർണൽ കംപൈൽ ചെയ്യുമ്പോഴോ ഇൻസ്റ്റാൾ ചെയ്യുമ്പോഴോ നിങ്ങൾക്ക് എന്തെങ്കിലും പ്രശ്uനങ്ങളോ ബുദ്ധിമുട്ടുകളോ നേരിടുകയാണെങ്കിൽ ചുവടെയുള്ള ഞങ്ങളുടെ കമന്റ് ഫോം ഉപയോഗിച്ച് നിങ്ങളുടെ ചോദ്യങ്ങൾ ചോദിക്കാനോ പോസ്റ്റുചെയ്യാനോ മടിക്കേണ്ടതില്ല.