Ru HOGYANokat slackware_admin kernelbuilding

Arról, hogy milyen kapom 2.6 kernel.
Szinte teljes mértékben alkalmazni kell a magvakat Slackware 14 3.x és később.

Futok a parancsot egy X terminálban, a megfelelő időben egy grafikus kernel konfigurátor. Jövök a saját nevében, de összegyűjti a kernel root root felhasználóként. Ahhoz, hogy a gyökér, hogy használni a kijelző X, én a következő a terminál X: tudjon root jogosultságot; egyesítik (idegen) Xauthority c fájlt az azonos nevű fájlt a root, és állítsa be a környezeti változó jelez. Ez lehetővé teszi, hogy fut az X alkalmazások «su» terminál.

Ehelyett, akkor hajtsa végre a következő két parancs, amely ugyanazt az eredményt adja:

Letöltés és konfiguráció

Most, amikor egy összeállítást környezetben van konfigurálva, folytassa megszerezni a forráskódot.

Most hogy egy Slackware rendszermag konfigurációs állományában az alapja a konfigurációt. Patrick konfigurációs fájlok elég gyakori. Talán, ha ezt olvasod, a konfiguráció áll rendelkezésre az új kiadás 2.6:

Ehelyett, akkor az aktuális konfigurációt a futó kernel:

Most be van állítva egy meglehetősen gyakori magot (valószínűleg ezért Patrick nevezi őket «kernel-generic»), és meg akarja változtatni néhány alapértelmezett, hogy illeszkedjen az Ön igényeinek. Indítsuk el a grafikus konfigurációs eszköz (ha nem X helyett a szöveges konzolon, futtassa a «make menuconfig» kezdeni az átkokat alapú interaktív program)

Tegyen egy sétát az erdőben beállítást. Amit hajlamosak megváltoztatni (a Slackware 13.37-től), akkor:

Szerelés az ext3 és ext4 kernel (is megköveteli jbd driver) és a vezető Reiser / xfs / jfs fájlrendszerek helyett modul szerelvény - ez szükségtelenné teszi «initrd».
(Lásd: «A fájlrendszerek» szakaszt a konfigurátor).

Támogatása 64GB RAM-mal.
( «Processor type and features»> «Nagy Memory Support (64GB)»). Használja rendszerek 4GB RAM vagy több.

Support érzékenység ( «alacsony késleltetésű») kernelt, ha a számítógép egy desktop / laptop - multimédiás alkalmazások futtatásához sokkal simábban.
( «Processor type and features»> «Preemption modell»> «preemptív kernel»). Egy asztali rendszer számos multimédiás alkalmazások egy hasznos lehetőség, mert a rendszer folyamatosan fogékonyság még nagy terhelés alatt.

Én meg egy időzítő 1000 Hz-es ( «Processzor típusa és jellemzői»> «Timer Frequency»> «1000 Hz»). Fokozott frekvencia hasznos lehet multimédia # '# ​​Desktop' rendszerek.

Taktonezavisimy vagy fordítsa el az idő ( «Processzor típusa és jellemzői»> «tickless rendszer (Dynamic kullancsok)»).

Ha (újra) összegyűjti Slackware kernel, meg kell győződnie arról, hogy a létesítmény az új kernel modulokat fogja hagyni az eredeti ép. Ehhez adjon meg egy egyedi karakterláncot a helyi kernel ( «General setup»> «Helyi verzió - csatolja kernelkiadás»). Ez a paraméter megegyezik a sejtmagba CONFIG_LOCALVERSION .config fájlt. A Slackware ez az érték van beállítva, hogy az érték «-smp» SMP magok.
Végleges verziószáma a kernel (visszatérítendő «umake -r») kernelverziónak «2.6.37.6» helyi változata «-alien» lesz «2.6.37.6-idegen».

... és még valami, mi most nem emlékszem. Ön dönthet úgy, hogy letiltja a legtöbb összegyűjtött az alapértelmezett konfigurációs modulok csökkentésére fordítani az időben, ha az ilyen berendezés nem áll rendelkezésre a számítógépen. Ha van egy laptop, akkor is figyelni, hogy a paramétereket a program felfüggeszti, és a CPU órajel (szakasz «Processor type and features»).

Végül mentse el a konfigurációt, ha ez megfelel neked.

A kernel

Most fut a szerelvény kernel modulok és azokat a megfelelő helyre.

Mert magok 2.6.x kell lennie ahhoz, hogy végre «hogy» vagy «hogy minden» helyett «make bzImage modulok». Ebben az esetben az alapértelmezett cél kell gyűjteni: vmlinux (tömörítetlen kernel), bzImage (tömörített kernel, amely azt fogja használni) és modulok (összes modulok). Mivel a tömörítetlen kernel, akkor nem kell, én szoktam használni a parancsot «make bzImage modulok».
Ha szeretne többet is megtudhatsz tenni. Akkor végre «hogy segítséget» és vizsgálja meg a kimenetet. Az alapértelmezett make target csillaggal jelölt (*).

szerkesztése lilo.conf

Szerkesztése /etc/lilo.conf-ot és egy új szakasz az új kernel. Ne feledd, ha ott volt egy hiba, az új kernel nem is boot, így a meglévő partíciókat jelenlegi magokat jobb, ha, ahogy van. Az /etc/lilo.conf-ot vége a szakasz, mint ez:

Add hozzá a következő a másik szakasz (add meg az alábbi biztosítani fogja, hogy a jelenlegi - dolgozó - a mag marad, mint az alapértelmezett boot):

Hozzáadása után egy szakaszt az új kernel a /etc/lilo.conf-ban menteni a fájlt, majd futtasd a lilo, hogy a változásokat:

Most itt az ideje, hogy indítsa újra és tesztelje az új kernel! Amikor megjelenik a boot képernyő lilo válassza «newkernel» helyett «linux» default.

Ha az új kernel betöltése, amilyennek lennie kell, akkor lehet, hogy az alapértelmezett letöltött, hozzátéve, a következő sort az elején /etc/lilo.conf-ot és újraindítása «lilo»:

Csomag Slackware kernel-headers

Úgy döntött, hogy összegyűjti, és az új kernel. Lehet, hogy a kérdés, hogy mi köze van a csomagban Slackware kernel-headers.
Válasz: Ne távolítsa el ezt a csomagot!

A kernel headers megtalálható két helyen; Egy - a kernelen belül forrás könyvtárat (esetünkben - katalógus /usr/src/linux-2.6.37.6), mind - a / usr / include / linux. Kernel-headers csomag tartalmazza a header fájlok általában venni a forráskód alapértelmezésben Slackware kernelt. Éppen ezek a header fájlok összeállításához használt a csomag glibc. Az a tény, hogy a kernel-headers csomag telepíti ezeket a fájlokat a / usr / include / linux tegyék független a header fájlokat a kernel forrás könyvtárban.

Amíg a frissített glibc csomag, akkor nem kell frissíteni vagy törölni a megfelelő kernel-headers csomagot.

Hogy vannak a csomagok kernel-headers és glibc?

Egy bizonyos ponton az időben szeretné frissíteni (újrafordítani!) Szoftver a rendszer. Ha ez a szoftver van kötve (ez kapcsolódik) a glibc (mint a legtöbb alapvető szoftver), a sikeres összeállítása függ a rendelkezésre álló megfelelő kernel header fájlok az / usr / include / linux. Egy teljesen más kernel az alapértelmezett helyett mellékelt Slackware nem számít. A csomag kernel-headers tükrözik az állam a rendszerbe az összeállítási glibc. Ha eltávolítja a kernel-headers csomagot. A rendszer működését nem befolyásolja semmilyen módon, de akkor nem lesz képes (újra) összeállítja a legtöbb szoftver.

Szükségem van a rendszermag forráskódját után bármi mag gyűjtötték?

Az előző bekezdésben azt mondtam, hogy lefordítani rendszer szoftver használható header fájlokat a / usr / include / linux. Azonban a kernel forrás szükséges harmadik fél kernel modul szerelvény (madwifi, linux-UVC, ndiswrapper, ... ez a lista nincs vége). Ön nem csak a vezető fordításkor csak az aktuálisan betöltött kernel. Akkor gyűjt illesztőprogramok magok, amíg a helyén a modulok fa (alul / lib / modules) és a forráskód.
Tegyük fel, hogy fogja beszerelni a modult a kernel, ami a verzió megadott környezeti változó $ KVER. Például úgy, hogy ezzel

Egyéb tartalmazó csomagokat kernel modulok

Bizonyára Ön telepíti egy vagy több csomagot, amely tartalmazza a modulok nem része az alapértelmezett kernel. Például a Slackware állítja «svgalib-helper»; ha már telepítve van a vezetők vezeték nélküli hálózat, általában ezek is kernel modulokat.

Tartsuk szem előtt, hogy ezek nem részei a modul elérhető lesz a kernel és a kernel betöltése. Meg kell újrafordítani a forráskódot modulok megfelelő új verziószámot.

Kap egy listát az összes csomagot tartalmazó modulok a futó kernel, akkor a parancs (ez kell végezni egy forgalmas régi mag):

Mindezen csomagok igényelnek újrafordítás, ha azt akarjuk, hogy a modulok is alkalmasak az új kernel.

Ha újrafordítani a csomag tartalmazza a kernel modult használja upgradepkg nem telepítik. és installpkg. aki nem törli az eredeti változata a modult.

upgradepkg eltávolítani a régi kernel modult, ami még mindig szükség lehet újraindítani a régi kernel. Ez a trükk azon a feltételezésen alapul, hogy a kernel verzió része a verzió mező a csomag neve, mint ez: svgalib_helper-1.9.25_2.6.37.6 -i486-1.txz (tudom, hogy a példa a hibás, mert ez a csomag nem több).

A fent leírt módszer semmi köze kernel modult, amit lefordítani és telepíteni manuálisan, ahelyett, hogy a csomag a számukra. Néha szabadalmaztatott grafikus meghajtók, például az Nvidia vagy ATI. lehet ok az aggodalomra, ha elfelejti újrafordítani az új kernel fut az X Window ... különösen, ha a számítógép alapértelmezett csizmát grafikus végrehajtási szintje (futási szint) 4.

Ebben az esetben indítsa újra vissza futási szintre 3. letölthető a legfrissebb verziója a grafikus illesztőprogram és összeállítja / illesztőprogram telepítéséhez. Ez lehetővé teszi, hogy a rendszerindítás során a grafikus bejelentkező képernyő. Azok számára, akik elfelejtették, hogy a rendszerindítás során a következő szintű teljesítményt egyszerű: Ha a LILO képernyőn írja a címkén a kernel (a fenti példánkban a newkernel) és a teljesítmény szint száma: Newkernel Space 3 Írja be.

létrehozása initrd

Ha a mag nem tartalmazza a vezető a root fájlrendszert, vagy ha a vezető a SATA busz, vagy valami más, összeszerelt modulok a kernel panic bootoláskor, hogy nem tudja, hogy hozzáférjenek a szükséges lemez, partíció és / vagy fájlokat. Általában ez így néz ki

és ez azt jelenti, hogy meg kell gyűjteni az initrd (rövid «eredetileg Ram Disk») - a lemezt memória inicializálása tartalmazza a szükséges modulokat. Ezután az út az initrd hozzáadjuk a megfelelő szakaszában /etc/lilo.conf-ban. a kernel betöltésére képes volt megtalálni és letölteni illesztőprogramok hozzáférést a lemezeket. Készítsen initrd egész egyszerűen az alábbiakban mutatok két változatban, egy az esetet, amikor a root partíció használ fájlrendszer Reiser, a másik - az ext3. Az alábbiakban adok parancsot a kernel verzió 2.6.37.6, ha az új kernel változat eltér, módosítsa a verziószámot a parancsokat kell.

Menj a / boot.

Kövesse «mkinitrd» /boot/initrd.gz a fájl létrehozásához. tartalmazó tömörített fájlrendszert a meghatározott modulok a parancssorban:

A Reiser fájlrendszer vagy

ha a root partíció használata ext3 fájlrendszer.

Add a vonal «initrd = /boot/initrd.gz» részén newkernel /etc/lilo.conf. A módosítások mentéséhez és fuss lilo; Fogom használni a korábban megadott példa részén lilo.conf.

A következő alkalommal, amikor elindítja az új kernel panic megáll.

Ha már használja az initrd az aktuális kernel, akkor két lehetőség van:

Hozzon létre egy másik initrd a parancs fent bemutatott nevének megadásával a létrehozott initrd fájlt (ami nem egyezhet meg az alapértelmezett meglévő fájl nem íródik)

majd módosítsa a szakaszt a lilo.conf a következő módon:

Bővítmények az új kernel a meglévő initrd fájlt. Így kap egy képet initrd tartalmazó modulok több magot. Mindössze annyit kell tennie, hogy erre -, hogy távolítsa el a lehetőséget «-c», amelynek célja az előtisztító a / boot / initrd-fa.

Írtam egy shell script (mkinitrd_command_generator.sh).
A script nem csinál semmit a rendszer. Ez elemzik a futó Slackware rendszer és egy példát mutat a parancsot mkinitrd. Ha ezt a parancsot, az initrd jön létre, amely tartalmazni fogja az összes kernel modulok és könyvtárak a rendszer indítására a generikus kernel Slackware.
Itt egy példa a Start parancs és kimenet:

Meg kell azonban jegyeznünk, hogy a titkosított root partíció LUKS állapítottak meg.
Ez a szkript tartalmazza a csomag mkinitrd megjelenése óta Slackware 12.2.

Alternatív modulok bootoláskor

Mielőtt Slackware 11.0 modulok a kernel betöltése vagy hotplug alrendszer (hotplug) vagy modprobe parancsot /etc/rc.d/rc.modules fájlt. A jelenléte teljes rc.modules fájl 2.4.x és 2.6.x változata a kernel nem volt a legjobb megoldás.

12.0 és egy ezt követő nem érhető el 2.4 kernel. Loading kernel modulok és parancsok feltéve udev modprobe. Modulok nincs betöltve az udev, még lehet előírni a rc.modules fájlt. Csak most, ezeket a fájlokat lehet több, mint egy. Slackware ellenőrzi, hogy létezik a következő végrehajtható fájlokat ebben a sorrendben:

Ha /etc/rc.d/rc.modules.local. akkor indul

Ellenkező esetben, ha /etc/rc.d/rc.modules-$(uname -r). akkor indul

Ellenkező esetben, ha /etc/rc.d/rc.modules. akkor indul

$ (Uname -r) - a változat a jelenlegi kernel. Ha a kernel verzió 2.6.37.6-SMP. A Slackware ellenőrzi /etc/rc.d/rc.modules-2.6.37.6-smp fájlt. Így előfordulhat, hogy különleges rc fájlt a különböző magok, amely lehetővé teszi, hogy konfigurálja a rendszer optimális.

A Slackware 13.37 /slackware/a/kernel-modules-smp-2.6.37.6_smp-i686-1.txz /etc/rc.d/rc.modules-2.6.37.6-smp csomag telepíti a fájlt. Akkor használja példaként, ha azt akarjuk, hogy létrejöjjön az egyedi kernelt igénylő letöltése az egyes modulok modprobe.

/etc/rc.d/rc.modules-2.6.38.2.alien fájlt fogja használni, ha letölti az új 2.6.38.2.alien mag.

GPG

kernel forráskódarchívum aláírt kulcs OpenPGP «Linux Kernel Archives Ellenőrző kulcs» (szűrés gomb bejegyzések a Linux kernel). Ez lehetővé teszi, hogy megbizonyosodjon arról, hogy letöltötte a forráskód archívumot az eredeti, és nem nyúltak hozzá. Ebben a fejezetben egy eljárás az ilyen ellenőrzés.

Először importálja a kulcsot GnuPG OpenPGP vagy másolása a legfontosabb, hogy az aláírás oldalon vagy az importáló ez egy kulcsfontosságú kiszolgáló. Id 0x517D0F0E kernel gombot. Egy példa a következő:

A kimenet lesz, mint ez:

Ezután töltse az aláírás fájl a futó kernel file:

és győződjön meg arról, hogy ugyanabban a könyvtárban, mint a mag fájlt.

Az utolsó lépés az e sorozatban gpg aláírás fájlt, és ellenőrizze, hogy megjelenik:

A kimenet lesz, mint ez:

Ha megadja gnupg bizalom ezt a gombot, az utolsó rész nézne más. Számomra, hozzátéve, hogy a legfontosabb, hogy a megbízható listára nem praktikus sysl, ha nem felel meg az egyik fő fejlesztők, aki birtokában van a kulcs, és hogy lehet bemutatni egy hiteles hatóság.

Azonban a forráskód archív valóban aláírta a kulcsot, amit csak importált. És ez jó hír.

Ez lefordítva orosz: Serg Bormant