லினக்ஸ் கருநிரலை உள்ளமைத்தல்

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:AMD64/Installation/Kernel and the translation is 100% complete.
AMD64 கையேடு
நிறுவல்
நிறுவலைப் பற்றி
ஊடகத்தைத் தேர்ந்தெடுத்தல்
வலையமைப்பை உள்ளமைத்தல்
தகடுகளை ஆயத்தப்படுத்தல்
நிலை3 ஐ நிறுவுதல்
அடிப்படை முறைமையை நிறுவுதல்
கருநிரலை உள்ளமைத்தல்
முறைமையை உள்ளமைத்தல்
கருவிகளை நிறுவுதல்
துவக்க ஏற்றியை உள்ளமைத்தல்
நிறுவலை முடித்தல்
சென்டூவோடு வேளை செய்தல்
Portage முன்னுரை
USE கொடிகள்
Portage தனிச்சிறப்புகள்
Init குறுநிரல் முறைமை
சூழல் மாறிகள்
Portage ஓடு வேளை செய்தல்
கோப்புகள் மற்றும் அடைவுகள்
மாறிகள்
மென்பொருள் கிளைகளைக் கலக்குதல்
கூடுதல் கருவிகள்
தனிப்பயன் தொகுப்பு கருவூலம்
மேம்பட்ட தனிச்சிறப்புகள்
வலையமைப்பு உள்ளமைவு
தொடங்குதல்
மேம்பட்ட உள்ளமைவு
கூறுநிலை வலையமாக்கம்
கம்பியில்லா
செயல்பாடுகளைச் சேர்த்தல்
இயக்க மேலாண்மை


விரும்பினால்: திடப்பொருள் அல்லது நுண் குறிமுறையை நிறுவுதல்

திடப்பொருள்

Linux Firmware

சில இயக்கிகள் வேளை செய்வதற்கு முன் கூடுதல் திடப்பொருட்கள் முறைமையில் நிறுவப்பட்டிருக்க வேண்டும். இதை பெரும்பாலும் வலையமைப்பு இடைமுகங்களின் குறிப்பாகக் கம்பியில்லா வலையமைப்பு இடைமுகங்களின் வழக்கில் காணலாம். மேலும், AMD, NVidia மற்றும் Intel ஆகிய விற்பவர்களின் அண்மைக் காலத்து ஒளிஉரு சில்லுகள் திறந்த மூல இயக்கிகளைப் பயன்படுத்தும்போது, வெளி திடப்பொருள் கோப்புகள் பெரும்பாலும் தேவைப்படும். பெரும்பாலான திடப்பொருட்கள் sys-kernel/linux-firmware என்னும் தொகுப்பில் பொதி கட்டப்பட்டுள்ளன:

முறைமை துவக்கத்தில் திடப்பொருள் தேவைப்படும் என்பதால் முதல் முறை முறைமையை துவக்குவதற்கு முன் sys-kernel/linux-firmware தொகுப்பை நிறுவுவது பரிந்துரைக்கப்படுகிறது:

root #emerge --ask sys-kernel/linux-firmware
குறிப்பு
குறிப்பிட்ட திடப்பொருள் தொகுப்புகளை நிறுவும்போது அதற்கு தொடர்புடைய திடப்பொருள் உரிமங்களை ஏற்றுக்கொள்ள நேரிடும். உரிமங்களை ஏற்றுக்கொள்ளுவதில் உதவி தேவைப்பட்டால் கையேட்டின் உரிமத்தை கையாளுதல் பக்கத்தை பார்க்கவும்.

கூறுகளாக உருவாக்கப்படும் கருநிரல் சின்னங்கள் கருநிரலால் ஏற்றப்படும்போது கோப்பு முறைமையிலிருந்து அதற்குத் தொடர்புடைய திடப்பொருள் கோப்புகளை ஏற்றும் என்பதைக் குறிப்பிடத்தக்கது. கூறுகளாக ஏற்றப்படும் சின்னங்களுக்கான கருநிரலின் இருமப் படத்தில் சாதனத்தின் திடப்பொருள் கோப்புகளைச் சேர்க்க வேண்டிய தேவையில்லை.

SOF Firmware

Sound Open Firmware (SOF) is a new open source audio driver meant to replace the proprietary Smart Sound Technology (SST) audio driver from Intel. 10th gen+ and Apollo Lake (Atom E3900, Celeron N3350, and Pentium N4200) Intel CPUs require this firmware for certain features and certain AMD APUs also have support for this firmware. SOF's supported platforms matrix can be found here for more information.

root #emerge --ask sys-firmware/sof-firmware

நுண் குறிமுறை

In addition to discrete graphics hardware and network interfaces, CPUs also can require firmware updates. Typically this kind of firmware is referred to as microcode. Newer revisions of microcode are sometimes necessary to patch instability, security concerns, or other miscellaneous bugs in CPU hardware.

Microcode updates for AMD CPUs are distributed within the aforementioned sys-kernel/linux-firmware package. Microcode for Intel CPUs can be found within the sys-firmware/intel-microcode package, which will need to be installed separately. See the Microcode article for more information on how to apply microcode updates.

கருநிரல் உள்ளமைவு மற்றும் தொகுத்தல்

இப்போது கருநிரல் மூலங்களை உள்ளமைத்து தொகுப்பதற்கான நேரம் வந்துவிட்டது. நிறுவல் நோக்கத்திற்காக மூன்று கருநிரல் மேலாண்மை அணுகுமுறைகள் இங்கு விவரிக்கப்பட்டுள்ளது எனினும் நிறுவலுக்கு பின் புதிய அணுகுமுறையையும் பின்பற்றலாம்.

குறைந்த அளவு ஈடுபாடு தேவைப்படுவதில் இருந்து அதிக அளவு ஈடுபாடு தேவைப்படுவது வரை வரிசைப்படுத்தப்பட்டுள்ளது:

முழுமையாக தானியக்கமாக்கப்பட்ட அணுகுமுறை: பகிர்ந்தளிப்பு கருநிரல்கள்
பகிர்ந்தளிப்பு கருநிரல் ஆனது லினக்சு கருநிரலை உள்ளமைத்து தானியக்கமாக உருவாக்கி பின் அதற்கு தொடர்புடைய கூறுகள் மற்றும் (விரும்பினால், எனினும் இது முன்னிருப்பாக செயல்படுத்தப்பட்டுள்ளது) initramfs கோப்புடன் நிறுவ பயன்படுத்தப்படுகிறது. மற்ற முறைமை தொகுப்பை போல கருதப்படுவதால் எதிர்கால கருநிரல் இற்றைப்படுத்தல்களை தானியக்கமாக தொகுப்பு மேலாளர் பார்த்துக்கொள்ளும். தனிப்பயனாக்கல் தேவைப்பட்டால் தனிப்பயனாக்கப்பட்ட கருநிரல் உள்ளமைவு கோப்பை அளிக்கலாம். இது குறைவாக ஈடுபட வேண்டிய செயல்முறை என்பதால் புதிய சென்டூ பயனர்களுக்கு இது பொருத்தமான அணுகுமுறையாக இருக்கும். மேலும் இது முறைமை செயலாட்சியரிடமிருந்து குறைந்த அளவிலான ஈடுபாட்டையை எதிர்ப்பார்க்கிறது.
கலப்பின அணுகுமுறை: Genkernel
புதிய கருநிரல் மூலங்கள் முறைமை தொகுப்பு மேலாளர் மூலம் நிறுவப்படுகிறது. முறைமை செயலாட்சியர்கள் லினக்சு கருநிரலை உள்ளமைத்து தானியக்கமாக உருவாக்கி பின் அதற்கு தொடர்புடைய கூறுகள் மற்றும் (விரும்பினால், எனினும் இது முன்னிருப்பாக செயல்படுத்தப்படுவது இல்லை) initramfs கோப்புடன் நிறுவுவதற்கு சென்டூவின் genkernel கருவியை பயன்படுத்துவார்கள். தனிப்பயனாக்கல் தேவைப்பட்டால் தனிப்பயனாக்கப்பட்ட கருநிரல் உள்ளமைவு கோப்பை அளிக்கலாம். எதிர்கால கருநிரல் உள்ளமைவு, தொகுத்தல் மற்றும் நிறுவலுக்கு eselect kernel, genkernel போன்ற கட்டளைகளை ஒவ்வொரு இற்றைப்படுத்தலின்போதும் இயக்குவதற்கு முறைமை செயலாட்சியரின் ஈடுபாடு தேவைப்படுகிறது.
முழுமையாக கைமுறை அணுகுமுறை
புதிய கருநிரல் மூலங்கள் முறைமை தொகுப்பு மேலாளர் மூலம் நிறுவப்படுகிறது. கருநிரல் கைமுறையாக உள்ளமைக்கப்பட்டு உருவாக்கப்பட்டு பின் eselect kernel மற்றும் make கட்டளைகளை பயன்படுத்தி நிறுவப்படுகிறது. எதிர்காலத்தில் கருநிரலை இற்றைப்படுத்த இந்த செயல்களை (உள்ளமைத்தல், உருவாக்குதல் மற்றும் நிறுவுதல்) கைமுறையாக மீண்டும் செய்ய வேண்டி இருக்கும். இது அதிகமாக ஈடுபட வேணடிய செயல்முறை என்பதால் கருநிரல் இற்றைப்படுத்தல் செயல்முறையில் அதிக கட்டுப்படுத்தும் ஆற்றலை அளிக்கிறது.

எல்லா வழங்கல்களின் கட்டுமானத்திற்கும் கருவாக விளங்குவது லினக்ஸ் கருநிரலாகும். இது பயனர் நிரல்கள் மற்றும் முறைமை வன்பொருட்களின் இடையில் உள்ள ஒரு அடுக்காகும். இந்த கையேடு அதன் பயனர்களுக்கு வாய்ப்புள்ள பல கருநிரல் மூலங்களை அளிக்கிறது எனினும் கூடுதலாக விளக்கப்பட்டு அளிக்கப்படும் கருநிரல்களின் முழுப் பட்டியல் விளக்கங்களுடன் கருநிரல் கண்ணோட்ட பக்கத்தில் உள்ளது.

துணுக்கு
Kernel installation tasks such as, copying the kernel image to /boot or the EFI System Partition, generating an initramfs and/or Unified Kernel Image, updating bootloader configuration, can be automated with installkernel. Users may wish to configure and install sys-kernel/installkernel before proceeding. See the Kernel installation section below for more more information.

பகிர்ந்தளிப்பு கருநிரல்கள்

பகிர்ந்தளிப்பு கருநிரல்கள் கருநிரலை கட்டவிழ்த்து உள்ளமைத்து தொகுத்து பின் நிறுவும் மொத்த செயல்களையும் செய்யும் ebuild களாகும். @world இற்றைப்படுத்தலின் ஒரு பாகமாக கருநிரலை புதிய பதிப்பிற்குத் தொகுப்பு மேலாளர் இற்றைப்படுத்துவது இந்த வழிமுறையால் விளையும் முதன்மை பயனாகும். இதற்கு அதிமாக ஈடுபட தேவையில்லை. emerge கட்டளையை இயக்கினால் போதும். பகிர்ந்தளிப்பு கருநிரல்கள் முன்னிருப்பாகப் பெரும்பான்மையான வன்பொருட்களை ஆதரிக்கும் உள்ளமைவை கொண்டுள்ளது. இருப்பினும் இவற்றைத் தனிப்பயனாக்க savedconfig மற்றும் config துண்டுகளைப் பயன்படுத்தலாம். மேலும் விவரங்களுக்கு கருநிரல் உள்ளமைவை திருத்தியமைத்தல் பற்றிய செயல்திட்ட பக்கத்தை காணவும்.

பகிர்ந்தளிப்பு கருநிரலை நிறுவுதல்

Before installing the kernel package the dracut USE flag needs to be added for the package sys-kernel/installkernel in /etc/portage/package.use:

கோப்பு /etc/portage/package.use/installkernelEnable dracut support
sys-kernel/installkernel dracut

Users may also wish to enable additional sys-kernel/installkernel USE flags at this stage. See the Installation/Kernel#Installkernel section for details.

மூலத்திலிருந்து சென்டூ ஒட்டுகளுடன் கருநிரலை உருவாக்க இதைச் செய்யவும்:

root #emerge --ask sys-kernel/gentoo-kernel

கருநிரலை மூலங்களை உள்ளூரில் தொகுக்க விரும்பாத முறைமை செயலாட்சியர்கள் இதற்குப் பதிலாக முன்-தொகுக்கப்பட்ட கருநிரல் படங்களைப் பயன்படுத்தலாம்:

root #emerge --ask sys-kernel/gentoo-kernel-bin
Optional: Signed kernel modules

The kernel modules in the prebuilt distribution kernel (sys-kernel/gentoo-kernel-bin) are already signed. To sign the modules of kernels built from source enable the modules-sign USE flag, and optionally specify which key to use for signing in /etc/portage/make.conf:

கோப்பு /etc/portage/make.confEnable module signing
USE="modules-sign"
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to use custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate.
MODULES_SIGN_HASH="sha512" # Defaults to sha512.

If MODULES_SIGN_KEY is not specified the kernel build system will generate a key, it will be stored in /usr/src/linux-x.y.z/certs. It is recommended to manually generate a key to ensure that it will be the same for each kernel release. A key may be generated with:

root #openssl req -new -nodes -utf8 -sha256 -x509 -outform PEM -out kernel_key.pem -keyout kernel_key.pem
குறிப்பு
The MODULES_SIGN_KEY and MODULES_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.

OpenSSL will ask some questions about the user generating the key, it is recommended to fill in these questions as detailed as possible.

Store the key in a safe location, at the very least the key should be readable only by the root user. Verify this with:

root #ls -l kernel_key.pem
 -r-------- 1 root root 3164 Jan  4 10:38 kernel_key.pem 

If this outputs anything other then the above, correct the permissions with:

root #chown root:root kernel_key.pem
root #chmod 400 kernel_key.pem
Optional: Signing the kernel image (Secure Boot)

The kernel image in the prebuilt distribution kernel (sys-kernel/gentoo-kernel-bin) is already signed for use with Secure Boot. To sign the kernel image of kernels built from source enable the secureboot USE flag, and optionally specify which key to use for signing in /etc/portage/make.conf. Note that signing the kernel image for use with secureboot requires that the kernel modules are also signed, the same key may be used to sign both the kernel image and the kernel modules:

கோப்பு /etc/portage/make.confEnable custom signing keys
USE="modules-sign secureboot"
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to use custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate.
MODULES_SIGN_HASH="sha512" # Defaults to sha512.
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to boot with secureboot enabled, may be the same or different signing key.
SECUREBOOT_SIGN_KEY="/path/to/kernel_key.pem"
SECUREBOOT_SIGN_CERT="/path/to/kernel_key.pem"
குறிப்பு
The SECUREBOOT_SIGN_KEY and SECUREBOOT_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.
குறிப்பு
For this example the same key that was generated to sign the modules is used to sign the kernel image. It is also possible to generate and use a second separate key for signing the kernel image. The same OpenSSL command as in the previous section may be used again.

See the above section for instructions on generating a new key, the steps may be repeated if a separate key should be used to sign the kernel image.

To successfully boot with Secure Boot enabled, the used bootloader must also be signed and the certificate must be accepted by the UEFI firmware or Shim. This will be explained later in the handbook.

இற்றைப்படுத்தலும் சுத்தம் செய்தலும்

கருநிரல் நிறுவப்பட்டதும் இனி வரும் காலங்களில் தொகுப்பு மேலாளரானது இதன் புதிய பதிப்புகளுக்குத் தானியக்கமாக இற்றைப்படுத்தும். சுத்தம் செய்யுமாறு கோரும்வரை முந்தைய பதிப்புகளைத் தொகுப்பு மேலாளர் வைத்திருக்கும். வட்டு வெற்றிடத்தை அதிகப்படுத்த அவ்வப்போது emerge ஐ --depclean விருப்பத்தேர்வுடன் இயக்கவும்:

root #emerge --depclean

இதற்குப் பதிலாகக் குறிப்பிட்ட பழைய கருநிரல் பதிப்பை மட்டும் நீக்குவதற்கு:

root #emerge --prune sys-kernel/gentoo-kernel sys-kernel/gentoo-kernel-bin

நிறுவலுக்கு/இற்றைப்படுத்தலுக்கு பின் செய்ய வேண்டிய பணிகள்

Distribution kernels are capable of rebuilding kernel modules installed by other packages. Portage provides a hook with dist-kernel USE flag which is part of linux-mod-r1.eclass and controls a subslot dependency on virtual/dist-kernel.

sys-fs/zfs sys-fs/zfs-kmod போன்ற தொகுப்புகளில் இந்த USE கொடியைச் செயல்படுத்துவதன் மூலம் ஒவ்வொரு புதிய கருநிரல் இற்றைப்படுத்தலின்போது தானியக்கமாக இதை மீள் உருவாக்கித் தேவைப்பட்டால் initramfs ஐ மீண்டும் உற்பத்தி செய்யும்.

initramfs ஐ கைமுறையாக மீள் உருவாக்கல்

தேவைப்பட்டால் கருநிரல் இற்றைப்படுத்தலுக்குப் பின் கைமுறையாக மீள் உருவாக்கத்தைத் தூண்ட இதை இயக்கவும்:

root #emerge --ask @module-rebuild

துவக்கத்தில் கருநிரல் கூறுகள் (எ.கா. ZFS) ஏதேனும் தேவைப்பட்டால் இந்த கட்டளையைக் கொண்டு initramfs ஐ மீள் உருவாக்கவும்:

root #emerge --config sys-kernel/gentoo-kernel
root #emerge --config sys-kernel/gentoo-kernel-bin

மூலங்களை நிறுவுதல்

குறிப்பு
This section is only relevant when using the following genkernel (hybrid) or manual kernel management approach.

The use of sys-kernel/installkernel is not strictly required, but highly recommended. When this package is installed, the kernel installation process will be delegated to installkernel. This allows for installing several different kernel versions side-by-side as well as managing and automating several tasks relating to kernel installation described later in the handbook. Install it now with:

root #emerge --ask sys-kernel/installkernel

When installing and compiling the kernel for amd64-based systems, Gentoo recommends the sys-kernel/gentoo-sources package.

பொருத்தமான கர்னல் மூலத்தைத் தேர்வு செய்து emerge கட்டளையைக் கொண்டு நிறுவவும்:

root #emerge --ask sys-kernel/gentoo-sources

இது லினக்ஸ் கருநிரல் மூலத்தை /usr/src/ என்னும் இடத்தில் நிறுவும். மேலும் linux என்றழைக்கப்படும் குறியீட்டுத் தொடுப்பு நிறுவப்பட்ட கருநிரல் மூலத்தை நோக்கி இருக்கும்:

It is conventional for a /usr/src/linux symlink to be maintained, such that it refers to whichever sources correspond with the currently running kernel. However, this symbolic link will not be created by default. An easy way to create the symbolic link is to utilize eselect's kernel module.

For further information regarding the purpose of the symlink, and how to manage it, please refer to Kernel/Upgrade.

முதலில் நிறுவப்பட்டுள்ள கருநிரல்களை பட்டியலிடவும்:

root #eselect kernel list
Available kernel symlink targets:
  [1]   linux-6.6.21-gentoo

linux என அழைக்கப்படும் குறியீட்டுத்தொடுப்பை உருவாக்க:

root #eselect kernel set 1
root #ls -l /usr/src/linux
lrwxrwxrwx    1 root   root    12 Oct 13 11:04 /usr/src/linux -> linux-6.6.21-gentoo

கைமுறை உள்ளமைவு

முன்னுரை

குறிப்பு
In case it was missed, this section requires the kernel sources to be installed. Be sure to obtain the relevant kernel sources, then return here for the rest of section.

கைமுறையாக ஒரு கருநிரலை உள்ளமைப்பதை பெரும்பாலும் ஒரு லினக்ஸ் பயனர் இதுவரை செய்ததிலேயே மிகவும் கடினமான செயலாகப் பார்க்கப்படுகிறது. இது உண்மைதான் - பலமுறை கருநிரல்களை உள்ளமைத்தை பின் ஒருவருக்கு இது கடினம் என்பதே மறந்துபோய் இது எளிமையானதாகத் தோன்றத் தொடங்கிவிடும் (அல்லது பழகிவிடும்) ;)

இருப்பினும், ஒரு விடையம் உண்மையானது: கருநிரலை கைமுறையாக உள்ளமைக்க வேண்டுமென்றால் முறைமையைப் பற்றி அறிந்திருக்க வேண்டியது இன்றியமையாததாகும். பெரும்பாலான தகவல்கள் sys-apps/pciutils தொகுப்பை நிறுவி அதில் உள்ள lspci கட்டளையை இயக்குவதன் மூலம் அறிந்துகொள்ளலாம்:

root #emerge --ask sys-apps/pciutils
குறிப்பு
chroot இனுள் lspci ஏதாவது pcilib எச்சரிக்கைகளை (pcilib: /sys/bus/pci/devices திறக்க முடியவில்லை போன்ற) அளித்தால் அதைத் தவிர்ப்பது பாதுகாப்பானதுதான்.

முறைமை தகவலை அளிக்கும் மற்றொரு வழியாக, lsmod கட்டளையை இயக்குவதன் மூலம் நிறுவல் குறுந்தகடு என்னென்ன கருநிரல் கூறுகளைப் பயன்படுத்துகிறது என்பதைக் கண்டறிந்து நாம் என்னென்னவற்றை இயக்க வேண்டும் என்னும் நல்ல சிறுகுறிப்பை அளிக்கலாம்.

இப்போது கர்னல் மூல அடைவிற்குச் சென்று make menuconfig கட்டளையை இயக்கவும். இது பட்டி-இயக்கு உள்ளமைவு திரையைத் துவக்கும்.

root #cd /usr/src/linux
root #make menuconfig

லினக்ஸ் கருநிரல் உள்ளமைவில் பல பிரிவுகள் உள்ளன. முதலில் செயல்படுத்தப்பட வேண்டிய சில விருப்பத்தேர்வுகளின் பட்டியலைக் காணலாம் (இல்லையென்றால் ஜென்டூ செயல்படாது அல்லது கூடுதல் திருத்தங்கள் செய்யாத வரை முறையாகச் செயல்படாது). உங்களுக்கு மேலும் உதவ எங்களிடம் ஜென்டூ கருநிரல் உள்ளமைவு வழிகாட்டியானது ஜென்டூ விக்கியில் உள்ளது.

தேவையான விருப்பத்தேர்வுகளைச் செயல்படுத்துதல்

sys-kernel/gentoo-sources ஐ பயன்படுத்தும்போது, சென்டூ சார்ந்த உள்ளமைவு விருப்பத்தேர்வுகளைச் செயல்படுத்த உறுதியாகப் பரிந்துரைக்கிறோம். இதன்மூலம் முறையாக இயங்குவதற்கான குறைந்த அளவிலான கருநிரல் தனிச்சிறப்புகள் கிடைப்பதை உறுதி செய்கிறது:

கருநிரல் சென்டூ சார்ந்த விருப்பத்தேர்வுகளை செயல்படுத்தல்
Gentoo Linux --->
  Generic Driver Options --->
    [*] Gentoo Linux support
    [*]   Linux dynamic and persistent device naming (userspace devfs) support
    [*]   Select options required by Portage features
        Support for init systems, system and service managers  --->
          [*] OpenRC, runit and other script based systems and managers
          [*] systemd

Naturally the choice in the last two lines depends on the selected init system (OpenRC vs. systemd). It does not hurt to have support for both init systems enabled.

நீங்கள் sys-kernel/vanilla-sources ஐ பயன்படுத்தினால், தேவையான விருப்பத்தேர்வுகளை நீங்களாகத்தான் கண்டுபிடிக்க வேண்டும்.

குறிப்பிடத்தக்க முறைமை கூறுகளுக்கான ஆதரவை செயல்படுத்துதல்

முறைமையின் துவக்கத்திற்கு இன்றியமையாததாக இருக்கும் எல்லா இயக்கிகளும் (SATA கட்டுப்படுத்திகள், NVMe தொகுப்பு சாதனங்களுக்கான ஆதரவு, கோப்பு முறைமைக்கான ஆதரவு முதலியவை) கூறுகளாகக் கருதாமல் கருநிரலில் தொகுக்கப்பட்டதா என்பதை உறுதிசெய்து கொள்ளவும். இல்லையென்றால் முறைமையை முழுவதுமாக துவக்க முடியாது.

அடுத்து, மிகச்சரியான செயலாக்கி வகையைத் தேர்வு செய்யவும். பயனர்களுக்கு ஏதேனும் வன்பொருள் சிக்கல்கள் உள்ளதா என்பதைத் தெரியப்படுத்தும் MCE தனிச்சிறப்பை (கிடைத்தால்) செயல்படுத்தப் பரிந்துரைக்கப்படுகிறது. சில கட்டமைப்புகளில் (x86_64 போன்றவற்றில்) இவ்வகை பிழைகள் dmesg க்கு பதிலாக /dev/mcelog க்கு அச்சிடப்படுகிறது. இதற்கு app-admin/mcelog தொகுப்பு தேவைப்படுகிறது.

மேலும் தீவிர சாதன கோப்புகள் துவக்க செயலுக்கு முன்னர் கிடைப்பதற்கு Maintain a devtmpfs file system to mount at /dev ஐ தேர்ந்தெடுக்கவும் (CONFIG_DEVTMPFS மற்றும் CONFIG_DEVTMPFS_MOUNT):

கருநிரல் devtmpfs க்கான ஆதரவைச் செயல்படுத்துதல் (CONFIG_DEVTMPFS)
Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [*]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

SCSI வட்டிற்கான ஆதரவு செயல்படுத்தப்பட்டுள்ளதா என்பதைச் சரிபார்க்கவும் (CONFIG_BLK_DEV_SD):

கருநிரல் SCSI வட்டு ஆதரவைச் செயல்படுத்துதல் (CONFIG_SCSI, CONFIG_BLK_DEV_SD)
Device Drivers --->
  SCSI device support  ---> 
    <*> SCSI device support
    <*> SCSI disk support
கருநிரல் அடிப்படை SATA மற்றும் PATA விற்கான ஆதரவை செயல்படுத்துதல் (CONFIG_ATA_ACPI, CONFIG_SATA_PMP, CONFIG_SATA_AHCI, CONFIG_ATA_BMDMA, CONFIG_ATA_SFF, CONFIG_ATA_PIIX)
Device Drivers --->
  <*> Serial ATA and Parallel ATA drivers (libata)  --->
    [*] ATA ACPI Support
    [*] SATA Port Multiplier support
    <*> AHCI SATA support (ahci)
    [*] ATA BMDMA support
    [*] ATA SFF support (for legacy IDE and PATA)
    <*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (ata_piix)

அடிப்படை NVMe ஆதரவு செயல்படுத்தப்பட்டிருப்பதைச் சரிபார்த்துக்கொள்ளவும்:

கருநிரல் லினக்சு 4.4.x கான அடிப்படை NVMe ஆதரவை செயல்படுத்தல் (CONFIG_BLK_DEV_NVME)
Device Drivers  --->
  <*> NVM Express block device
கருநிரல் லினக்சு 5.x.x கான அடிப்படை NVMe ஆதரவை செயல்படுத்தல் (CONFIG_DEVTMPFS)
Device Drivers --->
  NVME Support --->
    <*> NVM Express block device

பின்வரும் கூடுதல் NVMe ஆதரவை செயல்படுத்துவது பயனுள்ளதாக இருக்கும்:

கருநிரல் கூடுதல் NVMe ஆதரவை செயல்படுத்துதல் (CONFIG_NVME_MULTIPATH, CONFIG_NVME_MULTIPATH, CONFIG_NVME_HWMON, CONFIG_NVME_FC, CONFIG_NVME_TCP, CONFIG_NVME_TARGET, CONFIG_NVME_TARGET_PASSTHRU, CONFIG_NVME_TARGET_LOOP, CONFIG_NVME_TARGET_FC, CONFIG_NVME_TARGET_FCLOOP, CONFIG_NVME_TARGET_TCP
[*] NVMe multipath support
[*] NVMe hardware monitoring
<M> NVM Express over Fabrics FC host driver
<M> NVM Express over Fabrics TCP host driver
<M> NVMe Target support
  [*]   NVMe Target Passthrough support
  <M>   NVMe loopback device support
  <M>   NVMe over Fabrics FC target driver
  < >     NVMe over Fabrics FC Transport Loopback Test driver (NEW)
  <M>   NVMe over Fabrics TCP target support

இப்போது கோப்பு முறைமைகள் என்பதற்குள் நுழைந்து உங்கள் முறைமை பயன்படுத்தும் கோப்பு முறைமைக்கான ஆதரவை தேர்வு செய்யவும். வேர் கோப்புமுறைமைக்காக பயன்படுத்தப்படும் கோப்பு முறைமையை கூறாக கருதி தொகுக்க வேண்டாம், இல்லையென்றால் சென்டூ முறைமையால் பகிர்வை ஏற்ற முடியாது. மேலும் Virtual memory மற்றும் /proc file system ஐ தேர்வு செய்யவும். பின்வரும் விருப்பத்தேர்வுகளில் முறைமைக்கு தேவைப்படும் ஒன்றிறண்டு விருப்பத்தேர்வுகளை தேர்ந்தெடுக்கவும்:

கருநிரல் கோப்பு முறைமைக்கான ஆதரவை செயல்படுத்துதல் (CONFIG_EXT2_FS, CONFIG_EXT3_FS, CONFIG_EXT4_FS, CONFIG_BTRFS_FS, CONFIG_MSDOS_FS, CONFIG_VFAT_FS, CONFIG_PROC_FS மற்றும் CONFIG_TMPFS)
File systems --->
  <*> Second extended fs support
  <*> The Extended 3 (ext3) filesystem
  <*> The Extended 4 (ext4) filesystem
  <*> Btrfs filesystem support
  DOS/FAT/NT Filesystems  --->
    <*> MSDOS fs support
    <*> VFAT (Windows-95) fs support
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Tmpfs virtual memory file system support (former shm fs)

இணைய இணைப்பிற்கு அல்லது அழைப்புவழி இணக்கியிற்கு PPPoE பயன்படுத்தப்பட்டிருந்தால், பின்வரும் விருப்பத்தேர்வுகளை செயல்படுத்தவும் (CONFIG_PPP, CONFIG_PPP_ASYNC மற்றும் CONFIG_PPP_SYNC_TTY):

கருநிரல் PPPoE ஆதரவை செயல்படுத்துதல் (PPPoE, CONFIG_PPPOE, CONFIG_PPP_ASYNC, CONFIG_PPP_SYNC_TTY
Device Drivers --->
  Network device support --->
    <*> PPP (point-to-point protocol) support
    <*> PPP over Ethernet
    <*> PPP support for async serial ports
    <*> PPP support for sync tty ports

இவ்விரண்டு அமுக்கல் விருப்பத்தேர்வுகள் எவ்வகை பாதிப்பையும் ஏற்படுத்தாது என்றாலும் கண்டிப்பாகத் தேவை. ஈத்தர்வலைக்கு பதிலாக PPP விருப்பத்தேர்வை எடுத்துக்கொண்டாலும், இதுவும் கருநிரல் பயன்முறை PPPoE ஐ உள்ளமைக்கப்பட்டு ppp யால் மட்டுமே பயன்படுத்தப்படும்.

வலையமைப்பு (ஈத்தர்வலை அல்லது கம்பியில்லா) அட்டைக்கான ஆதரவை கர்னலில் சேர்க்க மறந்துவிடாதீர்.

பெரும்பாலான முறைமைகள் பல கருக்களை அவைகளின் வசம் உள்ளதால் சமச்சீரான பல-செயலாக்க ஆதரவை இயக்குவது முக்கியமானதாகும் (CONFIG_SMP):

கருநிரல் SMP ஆதரவை இயக்குதல் (CONFIG_SMP)
Processor type and features  --->
  [*] Symmetric multi-processing support
குறிப்பு
பல-கருவுள்ள முறைமைகளில், ஒவ்வொரு கருவும் ஒரு செயலாக்கியாக கருதப்படும்.

USB உள்ளீடு சாதனங்கள் (விசைப்பலகை அல்லது சுட்டி) அல்லது மற்ற USB சாதனங்களைப் பயன்படுத்தப் போவதாக இருந்தால், அவற்றையும் செயல்படுத்த மறந்துவிடாதீர்கள்:

கருநிரல் USB மற்றும் மனித உள்ளீடு சாதனத்திற்கான ஆதரவை செயல்படுத்தவும் (CONFIG_HID_GENERIC, CONFIG_USB_HID, CONFIG_USB_SUPPORT, CONFIG_USB_XHCI_HCD, CONFIG_USB_EHCI_HCD, CONFIG_USB_OHCI_HCD, (CONFIG_HID_GENERIC, CONFIG_USB_HID, CONFIG_USB_SUPPORT, CONFIG_USB_XHCI_HCD, CONFIG_USB_EHCI_HCD, CONFIG_USB_OHCI_HCD, CONFIG_USB4)
Device Drivers --->
  HID support  --->
    -*- HID bus support
    <*>   Generic HID driver
    [*]   Battery level reporting for HID devices
      USB HID support  --->
        <*> USB HID transport layer
  [*] USB support  --->
    <*>     xHCI HCD (USB 3.0) support
    <*>     EHCI HCD (USB 2.0) support
    <*>     OHCI HCD (USB 1.1) support
  <*> Unified support for USB4 and Thunderbolt  --->

Optional: Signed kernel modules

To automatically sign the kernel modules enable CONFIG_MODULE_SIG_ALL:

கருநிரல் Sign kernel modules CONFIG_MODULE_SIG_ALL
[*] Enable loadable module support  
  -*-   Module signature verification    
    [*]     Automatically sign all modules    
    Which hash algorithm should modules be signed with? (Sign modules with SHA-512) --->

Optionally change the hash algorithm if desired.

To enforce that all modules are signed with a valid signature, enable CONFIG_MODULE_SIG_FORCE as well:

கருநிரல் Enforce signed kernel modules CONFIG_MODULE_SIG_FORCE
[*] Enable loadable module support  
  -*-   Module signature verification    
    [*]     Require modules to be validly signed
    [*]     Automatically sign all modules
    Which hash algorithm should modules be signed with? (Sign modules with SHA-512) --->

To use a custom key, specify the location of this key in CONFIG_MODULE_SIG_KEY, if unspecified the kernel build system will generate a key. It is recommended to generate one manually instead. This can be done with:

root #openssl req -new -nodes -utf8 -sha256 -x509 -outform PEM -out kernel_key.pem -keyout kernel_key.pem

OpenSSL will ask some questions about the user generating the key, it is recommended to fill in these questions as detailed as possible.

Store the key in a safe location, at the very least the key should be readable only by the root user. Verify this with:

root #ls -l kernel_key.pem
 -r-------- 1 root root 3164 Jan  4 10:38 kernel_key.pem 

If this outputs anything other then the above, correct the permissions with:

root #chown root:root kernel_key.pem
root #chmod 400 kernel_key.pem
கருநிரல் Specify signing key CONFIG_MODULE_SIG_KEY
-*- Cryptographic API  ---> 
  Certificates for signature checking  --->  
    (/path/to/kernel_key.pem) File name or PKCS#11 URI of module signing key

To also sign external kernel modules installed by other packages via linux-mod-r1.eclass, enable the modules-sign USE flag globally:

கோப்பு /etc/portage/make.confEnable module signing
USE="modules-sign"
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, when using custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate
MODULES_SIGN_HASH="sha512" # Defaults to sha512
குறிப்பு
The MODULES_SIGN_KEY and MODULES_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.

Optional: Signing the kernel image (Secure Boot)

When signing the kernel image (for use on systems with Secure Boot enabled) it is recommended to set the following kernel config options:

கருநிரல் Lockdown for secureboot
General setup  --->
  Kexec and crash features  --->   
    [*] Enable kexec system call                                                                                          
    [*] Enable kexec file based system call                                                                               
    [*]   Verify kernel signature during kexec_file_load() syscall                                                        
    [*]     Require a valid signature in kexec_file_load() syscall                                                        
    [*]     Enable ""image"" signature verification support
</div>  

<div lang="en" dir="ltr" class="mw-content-ltr">
[*] Enable loadable module support  
  -*-   Module signature verification    
    [*]     Require modules to be validly signed
    [*]     Automatically sign all modules
    Which hash algorithm should modules be signed with? (Sign modules with SHA-512) --->
</div>  

<div lang="en" dir="ltr" class="mw-content-ltr">
Security options  ---> 
[*] Integrity subsystem   
  [*] Basic module for enforcing kernel lockdown                                                                       
  [*]   Enable lockdown LSM early in init                                                                       
        Kernel default lockdown mode (Integrity)  --->
</div>            

  <div lang="en" dir="ltr" class="mw-content-ltr">
[*]   Digital signature verification using multiple keyrings                                                            
  [*]     Enable asymmetric keys support                                                                                     
  -*-       Require all keys on the integrity keyrings be signed                                                              
  [*]       Provide keyring for platform/firmware trusted keys                                                                
  [*]       Provide a keyring to which Machine Owner Keys may be added                                                        
  [ ]         Enforce Machine Keyring CA Restrictions

Where ""image"" is a placeholder for the architecture specific image name. These options, from the top to the bottom: enforces that the kernel image in a kexec call must be signed (kexec allows replacing the kernel in-place), enforces that kernel modules are signed, enables lockdown integrity mode (prevents modifying the kernel at runtime), and enables various keychains.

On arches that do not natively support decompressing the kernel (e.g. arm64 and riscv), the kernel must be built with its own decompressor (zboot):

கருநிரல் zboot CONFIG_EFI_ZBOOT
Device Drivers --->                                                                                                                           
  Firmware Drivers --->                                                                                                                       
    EFI (Extensible Firmware Interface) Support --->                                                                                               
      [*] Enable the generic EFI decompressor

After compilation of the kernel, as explained in the next section, the kernel image must be signed. First install app-crypt/sbsigntools and then sign the kernel image:

root #emerge --ask app-crypt/sbsigntools
root #sbsign /usr/src/linux-x.y.z/path/to/kernel-image --cert /path/to/kernel_key.pem --key /path/to/kernel_key.pem --out /usr/src/linux-x.y.z/path/to/kernel-image
குறிப்பு
For this example the same key that was generated to sign the modules is used to sign the kernel image. It is also possible to generate and use a second sperate key for signing the kernel image. The same OpenSSL command as in the previous section may be used again.

Then proceed with the installation.

To automatically sign EFI executables installed by other packages, enable the secureboot USE flag globally:

கோப்பு /etc/portage/make.confEnable Secure Boot
USE="modules-sign secureboot"
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to use custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate.
MODULES_SIGN_HASH="sha512" # Defaults to sha512
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to boot with secureboot enabled, may be the same or different signing key.
SECUREBOOT_SIGN_KEY="/path/to/kernel_key.pem"
SECUREBOOT_SIGN_CERT="/path/to/kernel_key.pem"
குறிப்பு
The SECUREBOOT_SIGN_KEY and SECUREBOOT_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.
குறிப்பு
When generating an Unified Kernel Image with systemd's ukify the kernel image will be signed automatically before inclusion in the unified kernel image and it is not necessary to sign it manually.


கட்டமைப்பு சார்ந்த கருநிரல் உள்ளமைவு

32 இரும நிரல்கள் ஆதரிக்கப்பட வேண்டும் என்றால் IA32 Emulation ஐ தேர்வு செய்வதை உறுதிப்படுத்திக் கொள்ளவும் (CONFIG_IA32_EMULATION). ஜென்டூவானது multilib முறைமையை (கலந்த 32 இருமம் / 64 இருமம்) முன்னிருப்பாக நிறுவுகிறது. அதனால் no-multilib தனியமைப்பைப் பயன்படுத்தாத வரை இது தேவையில்லை.

கருநிரல் செயலாக்கி வகை மற்றும் தனிச்சிறப்புகளைத் தேர்வு செய்தல்
Processor type and features  --->
   [ ] Machine Check / overheating reporting 
   [ ]   Intel MCE Features
   [ ]   AMD MCE Features
   Processor family (AMD-Opteron/Athlon64)  --->
      ( ) Opteron/Athlon64/Hammer/K8
      ( ) Intel P4 / older Netburst based Xeon
      ( ) Core 2/newer Xeon
      ( ) Intel Atom
      ( ) Generic-x86-64
Executable file formats / Emulations  --->
   [*] IA32 Emulation

இதற்கு முன் வட்டை பகிர்வு செய்யும்போது பயன்படுத்தியிருந்தால் GPT பகிர்வு முத்திரை ஆதரவை செயல்படுத்தவும் (CONFIG_PARTITION_ADVANCED மற்றும் CONFIG_EFI_PARTITION):

கருநிரல் GPT கான ஆதரவை செயல்படுத்துதல்
-*- Enable the block layer --->
   Partition Types --->
      [*] Advanced partition selection
      [*] EFI GUID Partition support

முறைமையைத் துவக்குவதற்கு UEFI பயன்படுத்தப்பட்டிருந்தால் லினக்ஸ் கருநிரலில் உள்ள EFI முளை ஆதரவு மற்றும் EFI மாறிகளைச் செயல்படுத்தவும் (CONFIG_EFI, CONFIG_EFI_STUB, CONFIG_EFI_MIXED மற்றும் CONFIG_EFI_VARS):

கருநிரல் UEFI கான ஆதரவை செயல்படுத்துதல்
Processor type and features  --->
    [*] EFI runtime service support 
    [*]   EFI stub support
    [*]     EFI mixed-mode support
 
Firmware Drivers  --->
    EFI (Extensible Firmware Interface) Support  --->
        <*> EFI Variable Support via sysfs
கருநிரல் Enabling SOF Firmware support (CONFIG_SND_SOC_SOF_TOPLEVEL, CONFIG_SND_SOC_SOF_PCI, CONFIG_SND_SOC_SOF_ACPI, CONFIG_SND_SOC_SOF_AMD_TOPLEVEL, CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL)
Device Drivers --->
  Sound card support --->
    Advanced Linux Sound Architecture --->
      <M> ALSA for SoC audio support --->
        [*] Sound Open Firmware Support --->
            <M> SOF PCI enumeration support
            <M> SOF ACPI enumeration support
            <M> SOF support for AMD audio DSPs
            [*] SOF support for Intel audio DSPs


தொகுத்தல் மற்றும் நிறுவுதல்

இப்போது உள்ளமைவு முடிந்துவிட்டதால், கருநிரலை தொகுத்து நிறுவுவதற்கான நேரம் வந்துவிட்டது. உள்ளமைவை விட்டு வெளியேறித் தொகுத்தல் செயல்முறையைத் தொடங்கவும்:

root #make && make modules_install
குறிப்பு
make -jX ஐ பயன்படுத்தி இணை உருவாக்கல்களைச் செயல்படுத்த வாய்ப்புகள் உள்ளது. இதில் X என்பது உருவாக்கல் செயல்பாடுகளால் துவக்க அனுமதிக்கப்படும் இணை வேளைகளின் எண்ணிக்கைகளாகும். இது முன்னர் கூறிய MAKEOPTS மாறியைக் கொண்ட /etc/portage/make.conf ஐ பற்றிய வழிகாட்டுதல்களை ஒத்ததாகும்.

கருநிரல் தொகுத்தலை முடித்தவுடன், /boot/ என்னும் இடத்தில் கருநிரல் படத்தை நகலெடுத்து வைக்கவும். இந்த செயல் make install கட்டளையின் மூலம் கையாளப்படுகிறது:

root #make install

இது கருநிரல் படத்தை System.map கோப்பு மற்றும் கருநிரல் உள்ளமைவு கோப்பு உடன் சேர்த்து /boot/ என்னும் இடத்தில் நகலெடுத்து வைக்கும்.


மாற்றாக: Genkernel ஐ பயன்படுத்துதல்

குறிப்பு
In case it was missed, this section requires the kernel sources to be installed. Be sure to obtain the relevant kernel sources, then return here for the rest of section.

Genkernel should only be considered by users that have a required need that only Genkernel can meet, otherwise it is recommended to use the Distribution kernel or manually compile your own as it will make maintaining a Gentoo system a lot more simple. An example of why genkernel is more difficult to manage is the lack of integration with sys-kernel/installkernel. This means a user will not get the same level of automation as provided by the other methods, such as Unified Kernel Images will need to be created manually when using Genkernel.

Genkernel provides a generic kernel configuration file and will compile the kernel and initramfs, then install the resulting binaries to the appropriate locations. This results in minimal and generic hardware support for the system's first boot, and allows for additional update control and customization of the kernel's configuration in the future.

Be informed: while using genkernel to maintain the kernel provides system administrators with more update control over the system's kernel, initramfs, and other options, it will require a time and effort commitment to perform future kernel updates as new sources are released. Those looking for a hands-off approach to kernel maintenance should use a distribution kernel.

For additional clarity, it is a misconception to believe genkernel automatically generates a custom kernel configuration for the hardware on which it is run; it uses a predetermined kernel configuration that supports most generic hardware and automatically handles the make commands necessary to assemble and install the kernel, the associate modules, and the initramfs file.

இரும பகிர்ந்தளிக்கக்கூடிய மென்பொருள் உரிம குழு

லினக்சு திடப்பொருள் தொகுப்பு முன்பு நிறுவப்பட்டிருந்தால் இந்த நிறுவல் பிரிவிற்கு நேரடியாக செல்லவும்.

As a prerequisite, due to the firwmare USE flag being enabled by default for the sys-kernel/genkernel package, the package manager will also attempt to pull in the sys-kernel/linux-firmware package. The binary redistributable software licenses are required to be accepted before the linux-firmware will install.

This license group can be accepted system-wide for any package by adding the @BINARY-REDISTRIBUTABLE as an ACCEPT_LICENSE value in the /etc/portage/make.conf file. It can be exclusively accepted for the linux-firmware package by adding a specific inclusion via a /etc/portage/package.license/linux-firmware file.

If necessary, review the methods of accepting software licenses available in the Installing the base system chapter of the handbook, then make some changes for acceptable software licenses.

If in analysis paralysis, the following will do the trick:

root #mkdir /etc/portage/package.license
கோப்பு /etc/portage/package.license/linux-firmwareAccept binary redistributable licenses for the linux-firmware package
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE

நிறுவல்

விளக்கங்கள் மற்றும் முன்தேவைகள் ஒருபுறம் இருக்கட்டும். முதலில் sys-kernel/genkernel தொகுப்பை நிறுவலாம்:

root #emerge --ask sys-kernel/genkernel

உற்பத்தி செய்தல்

இப்போது genkernel all என்பதை இயக்கி கருநிரல் மூலத்தைத் தொகுக்கவும். நினைவில் கொள்ளவும், ஏறக்குறைய எல்லா வன்பொருட்களிலும் இயங்கக்கூடிய ஒரு கருநிரலை genkernel தொகுப்பதால் இந்த செயல் முடிய மிக நீண்ட நேரம் ஆகும்!

குறிப்பு
வேர் பகிர்வு/கனவளவு ext2, ext3 அல்லது ext4 ஐ கோப்பு முறைமையாகப் பயன்படுத்தவில்லை என்றால், genkernel --menuconfig all ஐ பயன்படுத்தி கருநிரலை கைமுறையாக உள்ளமைத்து குறிப்பிட்ட கோப்பு முறைமைக்கான ஆதரவை கருநிரலில் சேர்த்தல் இன்றியமையாததாக இருக்கலாம். LVM2 பயனர்கள் --lvm என்னும் வாதத்தைச் சேர்க்க வேண்டியிருக்கும்.
குறிப்பு
Users of LVM2 should add --lvm as an argument to the genkernel command below.
root #genkernel --mountboot --install all

genkernel முடிந்தவுடன், ஒரு கருநிரல், முழு கூறுகளின் தொகுப்பு மற்றும் துவக்க ram வட்டு (initramfs) உருவாக்கப்பட்டிருக்கும். இதில் கருநிரல் மற்றும் துவக்க ram வட்டை ஆவணத்தில் பின்வரும் பகுதியில் துவக்கஏற்றியை உள்ளமைக்கும்போது பயன்படுத்தப்படும். கருநிரல் மற்றும் துவக்க ram வட்டின் பெயரை எழுதி வைத்துக்கொள்ளவும். இந்த தகவல்கள் துவக்க ஏற்றி உள்ளமைவு கோப்பை திருத்தும்போது தேவைப்படும். துவக்கச் செயலுக்குப் பின்னும் "உண்மையான" முறைமை துவங்குவதற்கு முன்னும், உடனே வன்பொருள் தானியக்க-கண்டறிதலை நிகழ்த்தத் துவக்க ram வட்டு தொடங்கப்படும்.

root #ls /boot/vmlinu* /boot/initramfs*
root #ls /lib/modules

Kernel installation

Installkernel

Installkernel may be used to automate, the kernel installation, initramfs generation, unified kernel image generation and/or bootloader configuration among other things. sys-kernel/installkernel implements two paths of achieving this: the traditional installkernel originating from Debian and systemd's kernel-install. Which one to choose depends, among other things, on the system's bootloader. By default systemd's kernel-install is used on systemd profiles, while the traditional installkernel is the default for other profiles.

If unsure, follow the 'Traditional layout' subsection below.

systemd-boot

When using systemd-boot (formerly gummiboot) as the bootloader, systemd's kernel-install must be used. Therefore ensure the systemd and the systemd-boot USE flags are enabled on sys-kernel/installkernel, and then install the relevant package for systemd-boot.

On OpenRC systems:

கோப்பு /etc/portage/package.use/systemd-boot
sys-apps/systemd-utils boot kernel-install
sys-kernel/installkernel systemd systemd-boot
root #emerge --ask sys-apps/systemd-utils

On systemd systems:

கோப்பு /etc/portage/package.use/systemd
sys-apps/systemd boot
sys-kernel/installkernel systemd-boot
root #emerge --ask sys-apps/systemd

GRUB

Users of GRUB can use either systemd's kernel-install or the traditional Debian installkernel. The systemd USE flag switches between these implementations. To automatically run grub-mkconfig when installing the kernel, enable the grub USE flag.

கோப்பு /etc/portage/package.use/installkernel
sys-kernel/installkernel grub
root #emerge --ask sys-kernel/installkernel

Traditional layout, other bootloaders (e.g. lilo, etc.)

The traditional /boot layout (for e.g. LILO, etc.) is used by default if the grub, systemd-boot and uki USE flags are not enabled. No further action is required.


Building an initramfs

In certain cases it is necessary to build an initramfs - an initial ram-based file system. The most common reason is when important file system locations (like /usr/ or /var/) are on separate partitions. With an initramfs, these partitions can be mounted using the tools available inside the initramfs. The default configuration of the Project:Distribution Kernel requires an initramfs.

Without an initramfs, there is a risk that the system will not boot properly as the tools that are responsible for mounting the file systems require information that resides on unmounted file systems. An initramfs will pull in the necessary files into an archive which is used right after the kernel boots, but before the control is handed over to the init tool. Scripts on the initramfs will then make sure that the partitions are properly mounted before the system continues booting.

முக்கியமானது
If using genkernel, it should be used for both building the kernel and the initramfs. When using genkernel only for generating an initramfs, it is crucial to pass --kernel-config=/path/to/kernel.config to genkernel or the generated initramfs may not work with a manually built kernel. Note that manually built kernels go beyond the scope of support for the handbook. See the kernel configuration article for more information.

Installkernel can automatically generate an initramfs when installing the kernel if the dracut USE flag is enabled:

கோப்பு /etc/portage/package.use/installkernel
sys-kernel/installkernel dracut

Alternatively, dracut may be called manually to generate an initramfs. Install sys-kernel/dracut first, then have it generate an initramfs:

root #emerge --ask sys-kernel/dracut
root #dracut --kver=6.6.21-gentoo

The initramfs will be stored in /boot/. The resulting file can be found by simply listing the files starting with initramfs:

root #ls /boot/initramfs*

Optional: Building an Unified Kernel Image

An Unified Kernel Image (UKI) combines, among other things, the kernel, the initramfs and the kernel command line into a single executable. Since the kernel command line is embedded into the unified kernel image it should be specified before generating the unified kernel image (see below). Note that any kernel command line arguments supplied by the bootloader or firmware at boot are ignored when booting with secure boot enabled.

An unified kernel image requires a stub loader, currently the only one available is systemd-stub. To enable it:

For systemd systems:

கோப்பு /etc/portage/package.use/systemd
sys-apps/systemd boot

For OpenRC systems:

கோப்பு /etc/portage/package.use/systemd-utils
sys-apps/systemd-utils boot kernel-install

Installkernel can automatically generate an unified kernel image using either dracut or ukify, by enabling the respective flag. The uki USE flag should be enabled as well to install the generated unified kernel image to the $ESP/EFI/Linux directory on the EFI system partition (ESP).

For dracut:

கோப்பு /etc/portage/package.use/installkernel
sys-kernel/installkernel dracut uki
கோப்பு /etc/dracut.conf
uefi="yes"
kernel_cmdline="some-kernel-command-line-arguments"

For ukify:

கோப்பு /etc/portage/package.use/installkernel
sys-apps/systemd ukify          # For systemd systems
sys-apps/systemd-utils ukify    # For OpenRC systems
sys-kernel/installkernel dracut ukify uki
கோப்பு /etc/kernel/cmdline
some-kernel-command-line-arguments

Note that while dracut can generate both an initramfs and an unified kernel image, ukify can only generate the latter and therefore the initramfs must be generated separately with dracut.

Generic Unified Kernel Image

The prebuilt sys-kernel/gentoo-kernel-bin can optionally install a prebuilt generic unified kernel image containing a generic initramfs that is able to boot most systemd based systems. It can be installed by enabling the generic-uki USE flag, and configuring installkernel to not generate a custom initramfs or unified kernel image:

கோப்பு /etc/portage/package.use/generic-uki
sys-kernel/gentoo-kernel-bin generic-uki
sys-kernel/installkernel -dracut -ukify uki

Secure Boot

The generic Unified Kernel Image optionally distributed by sys-kernel/gentoo-kernel-bin is already pre-signed. How to sign a locally generated unified kernel image depends on whether dracut or ukify is used. Note that the location of the key and certificate should be the same as the SECUREBOOT_SIGN_KEY and SECUREBOOT_SIGN_CERT as specified in /etc/portage/make.conf.

For dracut:

கோப்பு /etc/dracut.conf
uefi="yes"
kernel_cmdline="some-kernel-command-line-arguments"
uefi_secureboot_key="/path/to/kernel_key.pem"
uefi_secureboot_cert="/path/to/kernel_key.pem"

For ukify:

கோப்பு /etc/kernel/uki.conf
[UKI]
SecureBootPrivateKey=/path/to/kernel_key.pem
SecureBootCertificate=/path/to/kernel_key.pem

Rebuilding external kernel modules

External kernel modules installed by other packages via linux-mod-r1.eclass must be rebuilt for each new kernel version. When the distribution kernels are used this may be automated by enabling the dist-kernel flag globally.

கோப்பு /etc/portage/package.use/module-rebuild
*/* dist-kernel

External kernel modules may also be rebuilt manually with:

root #emerge --ask @module-rebuild

கருநிரல் கூறுகள்

கூறுகளை உள்ளமைத்தல்

குறிப்பு
பட்டியலிட வேண்டிய வன்பொருள் கூறுகளை விரும்பினால் கைமுறையாகப் பட்டியலிடலாம். பெரும்பாலான வழக்கில் இணைக்கப்படுவதற்காகக் கண்டறியப்பட்ட எல்லா வன்பொருள் கூறுகளையும் udev ஏற்றும். இருந்தாலும் தானியக்கமாகக் கண்டறியப்பட்ட கூறுகளைப் பட்டியலிடுவதால் எந்தவித தீங்கும் ஏற்படாது. சில நேரங்களில் அயல்நாட்டு வன்பொருட்கள் அதன் இயக்கிகளை ஏற்றுவதற்கு உதவி தேவைப்படுகிறது.

ஒரு வரிக்கு ஒரு கூறு என்னும் வீதத்தில் தானியக்கமாக ஏற்றப்பட வேண்டிய கூறுகளை /etc/modules-load.d/*.conf கோப்புகளில் பட்டியலிடவும். கூறுகளுக்கான கூடுதல் விருப்பத்தேர்வுகள் தேவைப்பட்டால் /etc/modprobe.d/*.conf கோப்புகளில் அமைக்கவும்.

கிடைக்கும் எல்லா கூறுகளையும் காண, பின்வரும் find கட்டளையை இயக்கவும். மறக்காமல் "<கருநிரல் பதிப்பு>" என்பதற்குப் பதிலாகத் தொகுக்கப்பட்ட கருநிரலின் பதிப்பை இடவும்:

root #find /lib/modules/<கர்னல் பதிப்பு>/ -type f -iname '*.o' -or -iname '*.ko' | less

குறிப்பிட்ட கருநிரல் கூறுகளைக் கட்டாயப்படுத்தி ஏற்றுதல்

எடுத்துக்காட்டாக, 3c59x.ko கூறை (இது குறிப்பிட்ட 3Com வலையமைப்பு அட்டை குடும்பத்திற்கான இயக்கியாகும்) தானியக்கமாக ஏற்ற, /etc/modules-load.d/network.conf கோப்பை திருத்தி அதில் கூறின் பெயரை இடவும். உண்மையான கோப்பு பெயர் ஏற்றிக்கு தேவையில்லாததாகும்.

root #mkdir -p /etc/modules-load.d
root #nano -w /etc/modules-load.d/network.conf

Note that the module's .ko file suffix is insignificant to the loading mechanism and left out of the configuration file:

கோப்பு /etc/modules-load.d/network.conf3c59x கூறை கட்டாயபடுத்தி ஏற்றுதல்
3c59x

நிறுவலை முறைமையை உள்ளமைத்தல் இல் தொடரவும்.