Handbook:Parts/Installation/Kernel/Dist-Kernel/hu
Terjesztési (Disztribúció) kernelek
Terjesztési (disztribúció) kernelek ebuild-ek, amelyek lefedik a kernel kicsomagolásának, beállításának, kódfordításának és telepítésének teljes folyamatát. Ennek a módszernek az elsődleges előnye, hogy a szoftvercsomag-kezelő részeként a @world frissítés során a kernelek új verziókra frissülnek. Ez nem igényel több beavatkozást, mint egy emerge parancs futtatása. A terjesztési (disztribúció) kernelek alapértelmezett beállítása a legtöbb hardvert támogatja, azonban két mechanizmust kínálnak a testreszabáshoz: savedconfig és config snippets. További részletekért, a beállítással kapcsolatban, tekintse meg a projekt oldalt.
Opcionális: Aláírt kernelmodulok
A kész terjesztési (disztribúció) kernelben (sys-kernel/gentoo-kernel-bin) található kernel modulok már alá vannak írva. A forráskódból fordított kernelek moduljainak aláírásához engedélyezze a modules-sign USE jelölőzászlót, és opcionálisan adja meg, hogy melyik kulcsot kívánja használni az aláíráshoz az /etc/portage/make.conf fájlban.
/etc/portage/make.conf
Kernelmodul-aláírás engedélyezéseUSE="modules-sign"
# Opcionálisan, egyéni aláírási kulcsok használatához.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Csak akkor szükséges, ha a MODULES_SIGN_KEY a tanúsítványt se nem tartalmazza.
MODULES_SIGN_HASH="sha512" # Alapértelmezés szerint sha512.
Ha a MODULES_SIGN_KEY nincs megadva, akkor a kernel építési rendszer egy kulcsot fog generálni, amely a /usr/src/linux-x.y.z/certs könyvtárban kerül tárolásra. Ajánlott manuálisan generálni egy kulcsot annak biztosítása érdekében, hogy minden kernel kiadásnál ugyanaz legyen a kulcs. Egy kulcsot a következő parancs futtatásával lehet generálni:
root #
openssl req -new -nodes -utf8 -sha256 -x509 -outform PEM -out kernel_key.pem -keyout kernel_key.pem
A MODULES_SIGN_KEY és a MODULES_SIGN_CERT lehetnek különböző fájlok. Ebben a példában az OpenSSL által generált pem fájl tartalmazza mind a kulcsot, mind a hozzá tartozó tanúsítványt, így mindkét változót ugyanarra az értékre állítjuk be.
Az OpenSSL néhány kérdést fog feltenni a kulcsot generáló felhasználóról, ajánlott ezeket a kérdéseket a lehető legrészletesebben megválaszolni.
Tárolja a kulcsot egy biztonságos helyen, legalábbis úgy, hogy a kulcsot csak a root felhasználó olvashassa. Ezt a következő parancs futtatásával ellenőrizheti:
root #
ls -l kernel_key.pem
-r-------- 1 root root 3164 Jan 4 10:38 kernel_key.pem
Ha ez bármi mást ad vissza, mint a fentieket, akkor javítsa a jogosultságokat a következő parancs futtatásával:
root #
chown root:root kernel_key.pem
root #
chmod 400 kernel_key.pem
Opcionális: Kernel képfájl aláírása (Secure Boot)
Az előre bináris kódra lefordított terjesztési (disztribúció) kernelben (ami a sys-kernel/gentoo-kernel-bin szoftvercsomagban található) a kernelképfájl már alá van írva a Secure Boot használatához. A forráskódból fordított kernelképfájl aláírásához engedélyezze a secureboot USE jelölőzászlót, és opcionálisan adja meg, hogy melyik kulcsot kívánja használni az aláíráshoz a /etc/portage/make.conf fájlban. Vegye figyelembe, hogy a kernelképfájl secureboot használatához történő aláírása megköveteli, hogy a kernelmodulok is alá legyenek írva, ugyanaz a kulcs használható mind a kernelképfájl, mind a kernelmodulok aláírásához:
/etc/portage/make.conf
Egyéni aláíró kulcsok engedélyezéseUSE="modules-sign secureboot"
# Opcionálisan, egyéni aláírási kulcsok használatához.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Csak akkor szükséges, ha a MODULES_SIGN_KEY se nem tartalmazza a tanúsítványt.
MODULES_SIGN_HASH="sha512" # Alapértelmezés szerint sha512.
# Opcionálisan, a secureboot engedélyezett indításához ugyanaz vagy más aláírási kulcs is használható.
SECUREBOOT_SIGN_KEY="/path/to/kernel_key.pem"
SECUREBOOT_SIGN_CERT="/path/to/kernel_key.pem"
A SECUREBOOT_SIGN_KEY és a SECUREBOOT_SIGN_CERT különböző fájlok is lehetnek. Ebben a példában az OpenSSL által generált pem fájl mind a kulcsot, mind a hozzá tartozó tanúsítványt tartalmazza, így mindkét változót ugyanarra az értékre állítjuk be.
Ebben a példában ugyanazt a kulcsot használjuk a kernelképfájl aláírására, amelyet a kernelmodulok aláírására generáltunk. Lehetőség van egy második, külön kulcs generálására és használatára is a kernelképfájl aláírására. Az előző szakaszban használt OpenSSL parancs ismét használható.
Tekintse meg a fenti szakaszt az új kulcs generálásának utasításaiért. A lépések megismételhetők, ha külön kulcsot kell használni a kernelképfájl aláírására.
A Secure Boot engedélyezett sikeres indításához a használt bootloader betöltőprogramot is alá kell írni, és a tanúsítványt el kell fogadnia a UEFI firmware-nek vagy a Shim-nek. Ezt később a kézikönyvben el lesz magyarázva.
Egy terjesztési (disztribúció) kernel telepítése
Egy Gentoo foltokkal ellátott kernel fordításához a forráskódból írja be a következő parancsot:
root #
emerge --ask sys-kernel/gentoo-kernel
Azok a rendszergazdák, akik szeretnék elkerülni a kernel forráskódok helyi lefordítását, használhatnak előre binárisra lefordított kernel képfájlokat:
root #
emerge --ask sys-kernel/gentoo-kernel-bin
A Terjesztési Kernelek, mint például a sys-kernel/gentoo-kernel és a sys-kernel/gentoo-kernel-bin, alapértelmezés szerint elvárják, hogy egy initramfs fájl mellett legyenek telepítve. Mielőtt az emerge futtatásra kerülne a kernel telepítéséhez, a felhasználóknak biztosítaniuk kell, hogy a sys-kernel/installkernel be legyen állítva egy initramfs fájlgenerátor (például Dracut) használatára, ahogy az a installkernel szekcióban le van írva.
Frissítés és takarítás
Miután a kernel telepítve van, a jövőben a szoftvercsomag-kezelő automatikusan frissíteni fogja azt az újabb verziókra. Az előző verziók megmaradnak, amíg a szoftvercsomag-kezelőt nem kérjük a régi csomagok eltávolítására. Az adathordozónk területének a felaszabadítása érdekében a régi szoftvercsomagokat a --depclean opcióval futtatott emerge parancs időnkénti használatával lehet eltávolítani:
root #
emerge --depclean
Alternatív megoldásként a régi kernelverziók kifejezett eltávolításának érdekében futtassuk a következő parancsot:
root #
emerge --prune sys-kernel/gentoo-kernel sys-kernel/gentoo-kernel-bin
Az emerge alapértelmezés szerint csak a kernel létrehozási könyvtárát távolítja el. Nem távolítja el a kernel modulokat, sem a telepített kernelképfájlokat. A régi kernelfájlok teljes tisztításához az app-admin/eclean-kernel eszköz használható.
Telepítés utáni/frissítési feladatok
Egy terjesztési kernel frissítése képes automatikusan újra létrehozni a más szoftvercsomagok által telepített külső kernelmodulokat (például: sys-fs/zfs-kmod vagy x11-drivers/nvidia-drivers). Ez az automatizált viselkedés a dist-kernel USE jelölőzászló engedélyezésével válik elérhetővé. Szükség esetén ugyanez a jelölőzászló az initramfs fájlnak az újragenerálását is elindítja.
Amennyiben Ön terjesztési kernelt használ, akkor erősen ajánlott, hogy ezt a jelölőzászlót globálisan engedélyezze a /etc/portage/make.conf fájlban:
/etc/portage/make.conf
USE=dist-kernel engedélyezéseUSE="dist-kernel"
Initramfs vagy az Egységes kernelképfájl manuális újraépítése
Ha szükséges, akkor indítsa el manuálisan az újraépítéseket a kernel frissítése után a következő parancs végrehajtásával:
root #
emerge --ask @module-rebuild
Ha bármilyen kernel modulokra (pl. ZFS) szükség van a korai indítás (early boot) során, akkor az initramfs újraépítését a következő parancs futtatásával végezze el:
root #
emerge --config sys-kernel/gentoo-kernel
root #
emerge --config sys-kernel/gentoo-kernel-bin
A Distribution Kernel sikeres telepítése után itt az ideje továbblépni a következő szakaszra: Rendszer beállítása.