Handbook:Parts/Installation/Kernel/Dist-Kernel/hu

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:Parts/Installation/Kernel/Dist-Kernel and the translation is 100% complete.

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.

FILE /etc/portage/make.confKernelmodul-aláírás engedélyezése
USE="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
Note
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:

FILE /etc/portage/make.confEgyéni aláíró kulcsok engedélyezése
USE="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"
Note
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.
Note
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
Important
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
Tip
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:

FILE /etc/portage/make.confUSE=dist-kernel engedélyezése
USE="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.