Vyberte položku Stránka

Budovanie linuxového jadra. Správa linuxového jadra (budovanie, kompilácia, konfigurácia) Pokračovanie len pre členov

Budovanie linuxového jadra
Dobrý deň milí čitatelia. Dnes budem hovoriť o takejto zaujímavej lekcii ako zostaviť linuxové jadro. Prečo možno budete musieť zostaviť jadro sami? V skutočnosti môže byť veľa dôvodov: potreba použiť ďalšie funkcie jadra, optimalizovať jadro pre váš počítač, aktualizovať jadro na najnovšiu verziu. V tomto článku predvediem proces získavania zdrojov, konfigurácie, kompilácie a inštalácie linuxového jadra v systéme ako súčasť úlohy zahrnutia podpory pre cryptoloop (zariadenia na šifrovanie slučky) do jadra.

Získanie zdrojového kódu
Najprv musíme získať zdrojový kód, dá sa to urobiť rôznymi spôsobmi az rôznych zdrojov. Navrhujem zvážiť iba dva: systémové úložiská, oficiálnu stránku jadra. Repozitáre budú mať s najväčšou pravdepodobnosťou verzie jadra staršie ako tie na oficiálnej webovej stránke, ale tieto zdroje by mali obsahovať záplaty a opravy od výrobcu vašej distribúcie Linuxu. Tento prístup je vhodnejší, pokiaľ nepotrebujete nejakú novú technológiu alebo funkciu, ktorú podporujú iba novšie jadrá. Všetky verzie zdrojov jadra, ktoré sú obsiahnuté v repozitároch vášho systému, si môžete zobraziť zadaním do terminálu (platí pre Ubuntu Linux, iné distribúcie môžu mať iný názov balíka):

apt-cache vyhľadávanie linux-source

Príkaz zobrazí zoznam dostupných balíkov:


Ako vidíte, mám iba balík s aktuálnou verziou a balík s verziou 3.5 (v skutočnosti je aktuálna verzia jadra tiež 3.5). Na rozšírenie zoznamu jadier dostupných týmto spôsobom sa oplatí pripojiť ďalšie úložiská. Jadro získame príkazom: sudo apt-get install linux-source

linux-source je názov zdrojového balíka, vo vašom prípade môže byť iný.
Po dokončení príkazu sa v adresári /usr/src objaví súbor, v mojom prípade - linux-source-3.5.0.tar.bz2. Poďme do priečinka, rozbaľme archív a pre pohodlie vytvorte symbolický odkaz:

Cd /usr/src sudo tar -xjvf linux-source-3.5.0.tar.bz2 sudo ln -s linux-source-3.5.0 linux

Ak potrebujete najnovšiu verziu jadra, vždy si ju môžete stiahnuť z kernel.org. Za zmienku stojí, že stránka obsahuje ako stabilné verzie jadier, tak aj verzie určené na testovanie a vylepšovanie (zvyčajne ich názov obsahuje skratku „RC“ – Release kandidát). Ak si neželáte zbytočné problémy so systémom, odporúčam vám stiahnuť si stabilnú verziu:

Uložte zdrojový archív do priečinka /usr/src. Ak chcete rozbaliť výsledný archív, možno budete musieť nainštalovať ďalšie nástroje:

sudo apt-get install xz-utils

Teraz, ako v prípade sťahovania jadra z repozitárov, musíme rozbaliť zdrojový archív a vytvoriť odkaz:

Cd /usr/src sudo tar -xpJf linux-3.8.5.tar.xz sudo ln -s linux-3.8.5.tar.xz linux

konfigurácia a kompilácia.
Tu sa dostávame k tomu najzaujímavejšiemu. Skôr než začneme, nainštalujte si niekoľko ďalších balíkov:

sudo apt-get install build-essential kernel-package libncurses-dev

Vytvoríme novú konfiguráciu založenú na jadre, ktoré momentálne používa systém:

Cd /usr/src/linux sudo make oldconfig

Ak konfigurujete novšiu verziu jadra, než je dostupná v systéme, potom je pravdepodobné, že má parametre, ktoré nie sú v konfigurácii aktuálneho jadra. V takom prípade vás program požiada o výber, predvolené hodnoty môžete ponechať stlačením klávesu Enter. V každom prípade konfigurácia ešte nie je dokončená. Teraz môžeme vykonať potrebné nastavenia cez konfiguračnú ponuku:

sudo make menuconfig

Terminál spustí konfiguračný program:

Tu sú možnosti konfigurácie rozdelené do sekcií, aby sa v nich uľahčila navigácia. Ako som povedal vyššie, potrebujem do jadra zahrnúť podporu pre cryptoloop. Ak to chcete urobiť, prejdite do časti „Ovládače zariadení“ a z nej do podsekcie „Blokovať zariadenia“:

Nájdeme parameter „Cryptoloop Support“, vedľa neho je písmeno „M“, čo znamená, že podpora pre šifrovacie zariadenia bude pridaná ako modul jadra, ktorý možno povoliť príkazom modprobe. Podporu pre túto technológiu musíme zahrnúť priamo do jadra, aby bola vždy podporovaná. Presuňte zameranie na parameter „Cryptoloop Support“ a stlačte medzerník. Písmeno „M“ by malo byť nahradené symbolom „*“, čo znamená, že podpora tejto technológie bude „všitá“ do jadra. Buďte opatrní, medzera znamená, že technológia nebude podporovaná vôbec.

Stlačte kláves "Tab" a stláčajte tlačidlo "Exit", kým sa nezobrazí výzva na uloženie zmien:

Odpovedáme „Áno“. Úspešne sme dokončili konfiguráciu!
Začnime kompilovať. Najprv odstránime súbory, ktoré zostali z predchádzajúcich zostavení, ak zostavu spúšťate prvýkrát, nie je potrebné spúšťať tento príkaz: sudo make-kpkg clean

Začíname s kompiláciou:

sudo make-kpkg -j4 --initrd --append-to-version=-mykernel kernel_image kernel_headers

J4 je príznak, ktorý určuje, koľko vlákien sa má použiť na kompiláciu. Výrazne urýchli kompiláciu na viacjadrových procesoroch. Číslo 4 tu označuje 4 prúdy. Nastavte toľko vlákien, koľko jadier vášho procesora „vidí“ systému.
-mykernel - predpona označujúca, že jadro bolo zostavené ručne, môžete ho zmeniť, v skutočnosti to nič neovplyvní.

Tu začína proces kompilácie. Môže to trvať 10 minút až niekoľko hodín v závislosti od výkonu počítača:

Inštalácia jadra do systému

Po dokončení kompilácie by sa v adresári /usr/src mali objaviť dva súbory s príponou „deb“ Ide o inštalačné balíčky nášho nového jadra a možno ich nainštalovať pomocou pomôcky dpkg:

sudo dpkg -i linux-image-3.8.5-mykernel_3.8.5-mykernel-10.00.Custom_i386.deb
sudo dpkg -i linux-headers-3.8.5-mykernel_3.8.5-mykernel-10.00.Custom_i386.deb

Gratulujem! Jadro je nainštalované, teraz sa systém štandardne spustí s týmto jadrom, ale ak máte problémy s novým jadrom, vždy môžete zaviesť staré jadro tak, že ho vyberiete na spúšťacej obrazovke - Grub. Týmto uzatváram dnešný článok a prajem vám veľa úspechov, milí čitatelia!

V tomto podrobnom sprievodcovi sa naučíte, ako správne zostaviť a nainštalovať jadro vetvy >2.6 na rodinu OS Ubuntu.

Krok 1: Získajte zdroj jadra

Zdroje jadra Ubuntu je možné získať dvoma spôsobmi:

    Inštaláciou archívu z úložiska s automatickým prekrytím najnovších oficiálnych záplat. Týmto sa stiahne balík ~150 MB do aktuálneho priečinka. Ak chcete získať zdroj jadra, ktorého verzia je nainštalovaná na počítači, spustite príkaz: apt-get source linux-image-`uname -r`

    Alebo namiesto `uname -r` môžete zadať konkrétnu verziu z verzií dostupných v úložisku.

Zoznam verzií dostupných v úložisku môžete zobraziť zadaním príkazu: „apt-get source linux-image-“ a bez stlačenia klávesu Enter dvakrát stlačte kláves Tab.

Nezabudnite povoliť zdieľanie zdroja v úložisku (Nastavenia systému → Programy a aktualizácie → Softvér Ubuntu → Zdrojový kód). Dá sa to urobiť z konzoly odkomentovaním riadkov začínajúcich deb-src v súbore /etc/apt/sources.list a následnou aktualizáciou príkazom: “sudo apt-get update”.

    Najnovšia verzia jadra je dostupná od git . Veľkosť sťahovaného balíka je ~500-800 Mb. git klon git://kernel.ubuntu.com/ubuntu/ubuntu- .git

    Kde - názov vydania, napríklad:

    Git klon git://kernel.ubuntu.com/ubuntu/ubuntu-xenial.git

Ostatné jadrá

Existujú aj jadrá, u ktorých nie je zaručené, že budú fungovať pod Ubuntu. Známy je napríklad problém s množstvom populárnych systémových aplikácií (najmä ovládače NVidia, VirtualBox), ktoré sa po inštalácii skompilujú pre nainštalované jadro. Ak ich chcete nainštalovať na jadro, ktoré je pre túto verziu Ubuntu neštandardné (napríklad Ubuntu 16.04 sa dodáva s jadrom 4.4.0), môžu vyžadovať samostatnú manuálnu kompiláciu alebo špeciálne opravy a aplikácia nemusí podporovať najnovšie verzie jadier z kernel.org vôbec.

    Archív zo základnej verzie bez záplat, t.j. napr. "4.8.0", "4.8.10": sudo apt-get install linux-source

Výsledný archív rozbaľte pomocou príkazov:

Cd ~/ tar -xjf linux-2.6.x.y.tar.bz2

Alebo v prípade linux-source:

Cd /usr/src tar -xjf linux-source-2.6.x.y.tar.bz2

Krok 2: Získanie balíkov potrebných na zostavenie

Tento krok je potrebný iba vtedy, ak sa jadro vytvára v počítači po prvýkrát.

Spustite nasledujúce príkazy na inštaláciu základných balíkov:

sudo apt-get aktualizácia sudo apt-get build-dep linux sudo apt-get install kernel-package

    config- tradičný spôsob konfigurácie. Program zobrazí konfiguračné parametre jeden po druhom a vyzve vás, aby ste pre každý z nich nastavili inú hodnotu. Neodporúča sa pre neskúsených používateľov.

    oldconfig- konfiguračný súbor sa vytvorí automaticky na základe aktuálnej konfigurácie jadra. Odporúčané pre začiatočníkov.

    defconfig- konfiguračný súbor sa vytvorí automaticky na základe predvolených hodnôt.

    menuconfig- pseudografické rozhranie pre manuálnu konfiguráciu, nevyžaduje postupné zadávanie hodnôt parametrov. Odporúča sa na použitie v termináli.

    xconfig- grafické (X) rozhranie pre manuálnu konfiguráciu, nevyžaduje sekvenčné zadávanie hodnôt parametrov.

    gconfig- grafické (GTK+) rozhranie manuálnej konfigurácie, nevyžaduje postupné zadávanie hodnôt parametrov. Odporúča sa na použitie v prostredí GNOME.

    localmodconfig- automaticky vytvorený konfiguračný súbor, ktorý obsahuje len to, čo je potrebné pre toto konkrétne zariadenie. Keď sa zavolá tento príkaz, väčšina jadra bude modulovaná

V prípade, že chcete použiť config, oldconfig, defconfig, localmodconfig alebo localyesconfig, už nepotrebujete žiadne ďalšie balíčky. V prípade zvyšných troch možností je potrebné nainštalovať aj ďalšie balíčky.

menuconfig spustite nasledujúci príkaz:

sudo apt-get install libncurses5-dev

Ak chcete nainštalovať balíky potrebné na použitie gconfig spustite nasledujúci príkaz:

sudo apt-get install libgtk2.0-dev libglib2.0-dev libglade2-dev

Ak chcete nainštalovať balíky potrebné na použitie xconfig spustite nasledujúci príkaz:

Pred Ubuntu 12.04: sudo apt-get install qt3-dev-tools libqt3-mt-dev

sudo apt-get install libqt4-dev

Krok 3. Aplikácia záplat

Tento krok je voliteľný.

Oficiálne záplaty už boli aplikované na zdroje, ak bolo jadro získané príkazom opísaným vyššie:

apt-get zdroj linux-image-`uname -r`

Ak ste ešte nikdy neaplikovali opravy na zdrojový kód, spustite nasledujúci príkaz:

Inštalačná oprava sudo apt-get

Tento príkaz nainštaluje opravný program potrebný na, možno hádate, aplikovanie opráv. Teraz si stiahnite súbor opravy do priečinka, kde ste rozbalili jadro. Môže to byť buď archívny súbor (napr. Bzip2 alebo Gzip) alebo nekomprimovaný záplatový súbor.

V tomto bode sa predpokladá, že ste už súbor uložili do priečinka, kde ste predtým rozbalili jadro a nainštalovali opravný program.
Ak bol súbor, ktorý ste stiahli, vo formáte Gzip (*.gz), spustite nasledujúci príkaz na extrahovanie obsahu archívu:

Oprava Gunzip-2.6.x.y.gz

Ak bol súbor, ktorý ste stiahli, vo formáte Bzip2 (*.bz2), spustite nasledujúci príkaz na extrahovanie obsahu archívu:

Bunzip2 patch-2.6.x.y.bz2

kde 2.6.x.y je verzia opravy jadra. Príslušné príkazy rozbalia súbor opravy do zdrojového priečinka jadra. Pred aplikáciou náplasti sa musíte uistiť, že bude fungovať bez chýb. Ak to chcete urobiť, spustite príkaz:

Patch -p1 -i patch-2.6.x.y --dry-run

kde 2.6.x.y je verzia opravy jadra. Tento príkaz bude simulovať aplikáciu opravy bez zmeny samotných súborov.

Ak sa počas jeho vykonávania nevyskytnú žiadne chyby, zmeny môžu byť bezpečne implementované do samotných súborov. Ak to chcete urobiť, spustite príkaz:

Patch -p1 -i patch-2.6.x.y

kde 2.6.x.y je verzia opravy jadra. Ak sa nevyskytli žiadne chyby, oprava bola úspešne aplikovaná na zdrojový kód.

Pozor! Pred aplikáciou záplaty urobte nasledovné: 1. Stiahnite si z http://www.kernel.org záplatu rovnakej verzie, akú máte v zdrojoch. 2. Spustite nasledujúci príkaz: patch -p1 -R

kde 2.6.x.y je verzia opravy a vaše zdroje

Krok 4. Konfigurácia budúcej zostavy jadra

Spustením príkazu prejdite do priečinka, kde ste rozbalili jadro

Cd ~/linux-2.6.x.y

kde 2.6.x.y je verzia jadra, ktoré ste si stiahli.

V tomto bode by ste sa už mali rozhodnúť pre metódu konfigurácie jadra (ak nie, pozrite si ich v časti Získanie potrebných balíkov na zostavenie. V závislosti od toho spustite nasledujúci príkaz na spustenie metódy konfigurácie podľa vášho výberu:

    config- tradičný spôsob konfigurácie. Program zobrazí konfiguračné parametre jeden po druhom a vyzve vás, aby ste pre každý z nich nastavili inú hodnotu. Volá sa príkazom make config

    oldconfig- konfiguračný súbor sa vytvorí automaticky na základe aktuálnej konfigurácie jadra. Odporúčané pre začiatočníkov. Volá sa príkazom make oldconfig

    defconfig- konfiguračný súbor sa vytvorí automaticky na základe predvolených hodnôt pre túto konkrétnu architektúru. Volá sa príkazom make defconfig

    menuconfig- pseudografické rozhranie pre manuálnu konfiguráciu, nevyžaduje postupné zadávanie hodnôt parametrov. Odporúča sa na použitie v termináli. Volanie: urobte menuconfig

    gconfig a xconfig- grafické konfigurátory pre manuálnu konfiguráciu. Zavolajte: urobte gconfig

    Vytvorte xconfig

    resp

    localmodconfig a localyesconfig- automatické konfigurátory. Konfigurácia je vytvorená na základe aktuálne volaných modulov a spusteného jadra. Rozdiel medzi týmito dvoma konfigurátormi je v počte modulov. V prvom prípade bude najmenej 50% jadra a v druhom nie viac ako 2 moduly. Zavolajte: urobte localmodconfig

    Vytvorte localyesconfig

    resp

Po zavolaní sa spustí príslušný konfiguračný program. Vykonajte potrebné nastavenia podľa svojich potrieb, uložte konfiguračný súbor a prejdite na ďalší krok.

Krok 5: Zostavenie jadra

Takže prípravy sú hotové. Teraz môžete spustiť proces zostavovania jadra. Ak to chcete urobiť, spustite príkaz:

Fakeroot make-kpkg -j 5 --initrd --append-to-version=-custom kernel_image kernel_headers #-j<количество ядер процессора>+1

Zostavenie jadra môže trvať od 20 minút až po niekoľko hodín v závislosti od konfigurácie jadra a technických parametrov počítača. Stavanie na viacjadrovom procesore môže byť niekoľkonásobne rýchlejšie

Krok 6 Inštalácia obrázkov jadra a hlavičiek

Po dokončení zostavovania jadra sa vo vašom domovskom priečinku objavia dva deb balíčky. Je potrebné ich nainštalovať. Ak to chcete urobiť, spustite príkazy:

Cd ~/ sudo dpkg -i linux-image-2.6.xy-custom_2.6.xy-custom-10.00.Custom_arc.deb sudo dpkg -i linux-headers-2.6.xy-custom_2.6.xy-custom-10.00. Custom_arc.deb

kde 2.6.x.y je verzia zabudovaného jadra, arc je architektúra procesora (i386 - 32-bit, amd64 - 64-bit).
Ak nepoznáte presný názov balíka, vypíšte pomocou príkazu súbory vo svojom domovskom adresári

a nájdite tieto dva balíčky.

Krok 7 Vytvorte počiatočný disk RAM

Aby Ubuntu správne fungovalo, vyžaduje počiatočný obraz disku RAM. Ak ho chcete vytvoriť, spustite príkaz:

sudo update-initramfs -c -k 2.6.x.y-custom

kde 2.6.x.y je verzia jadra zostavy.

Krok 8 Aktualizácia konfigurácie zavádzača GRUB

Ak chcete sprístupniť novú verziu jadra na výber pri zavádzaní počítača, spustite nasledujúci príkaz:

sudo update-grub

Súbor menu.lst (pre GRUB verzia 1) alebo grub.cfg (pre GRUB verzia 2) bude aktualizovaný, aby odrážal nainštalované operačné systémy a obrazy jadra.

Krok 9 Kontrola jadra

Kompilácia a inštalácia jadra úspešne dokončená! Teraz reštartujte počítač a skúste zaviesť systém s novým jadrom. Aby ste sa uistili, že systém je spustený s novým jadrom, spustite príkaz

Uname-r

Zobrazí sa používaná verzia jadra.

Ak to urobíte správne, môžete odstrániť zdrojové archívy a celý adresár linux-2.6.x.y vo svojom domovskom priečinku. Tým sa na pevnom disku uvoľní približne 5 GB (veľkosť uvoľneného miesta závisí od možností zostavy).

Týmto je proces montáže a inštalácie dokončený, blahoželáme!

Prečo by niekto chcel kompilovať nové jadro? Často to nie je potrebné, pretože predvolené jadro dodávané s Debianom zvláda väčšinu konfigurácií. Debian tiež často ponúka niekoľko alternatívnych jadier. Takže možno budete chcieť najskôr skontrolovať, či neexistuje alternatívny balík obrazov jadra, ktorý lepšie zodpovedá vášmu hardvéru. Môže však byť užitočné skompilovať nové jadro, aby ste:

Nebojte sa vyskúšať kompiláciu jadra. Je to zábavné a výnosné.

Ak chcete skompilovať jadro spôsobom Debianu, potrebujete niekoľko balíkov: a niekoľko ďalších, ktoré sú pravdepodobne už nainštalované (úplný zoznam nájdete).

Táto metóda vytvorí .deb zdrojového kódu vášho jadra a ak máte neštandardné moduly, vytvoríte aj synchronizovaný závislý .deb z nich. Je to lepší spôsob spravovania obrazov jadra; bude obsahovať jadro, súbor System.map a protokol aktívneho konfiguračného súboru pre zostavenie.

Všimnite si, že nie mať kompilovať svoje jadro „spôsobom Debianu“; ale zistili sme, že používanie baliaceho systému na správu vášho jadra je v skutočnosti bezpečnejšie a jednoduchšie. V skutočnosti môžete získať zdrojové kódy jadra priamo od Linusa namiesto , no stále môžete použiť metódu kompilácie.

Všimnite si, že kompletnú dokumentáciu o používaní nájdete pod . Táto časť obsahuje iba krátky návod.

Ďalej budeme predpokladať, že máte nad počítačom voľnú ruku a rozbalíme zdrojový kód jadra niekam do vášho domovského adresára. Budeme tiež predpokladať, že vaša verzia jadra je 3.16. Uistite sa, že ste v adresári, kde chcete rozbaliť zdroje jadra, extrahovať ich pomocou a prejsť do adresára, ktorý bude vytvorený.

Teraz môžete nakonfigurovať svoje jadro. Spustiť, ak je X11 nainštalovaný, nakonfigurovaný a spustený; spustiť inak (budete musieť nainštalovať). Nájdite si čas na prečítanie online pomocníka a starostlivo vyberajte. Ak máte pochybnosti, zvyčajne je lepšie zahrnúť ovládač zariadenia (softvér, ktorý spravuje hardvérové ​​periférie, ako sú ethernetové karty, radiče SCSI atď.), o ktorých si nie ste istí. Buďte opatrní: ostatné možnosti, ktoré nesúvisia s konkrétnym hardvérom, by mali byť ponechané na predvolenej hodnote, ak im nerozumiete. Nezabudnite vybrať "Kernel module loader" v "Loadable module support" (predvolene nie je vybraté). Ak nie je zahrnutý, vaša inštalácia Debianu bude mať problémy.

Vyčistite zdrojový strom a resetujte parametre. Aby ste to urobili, urobte.

Teraz skompilujte jadro: . Číslo verzie „1.0“ je možné ľubovoľne zmeniť; toto je len číslo verzie, ktoré budete používať na sledovanie zostavovania jadra. Podobne môžete namiesto slova „vlastné“ (napr. názov hostiteľa) vložiť ľubovoľné slovo, ktoré sa vám páči. Kompilácia jadra môže chvíľu trvať v závislosti od výkonu vášho počítača.

Po dokončení kompilácie si môžete nainštalovať vlastné jadro ako akýkoľvek iný balík. Ako root urobte . Táto časť je voliteľnou podarchitektúrou v závislosti od nastavení jadra. nainštaluje jadro spolu s ďalšími peknými podpornými súbormi. Napríklad sa správne nainštaluje (užitočné pri ladení problémov s jadrom) a nainštaluje sa s vašou aktuálnou konfiguračnou sadou. Váš nový balík jadra je tiež dostatočne šikovný na to, aby automaticky aktualizoval váš zavádzač, aby používal nové jadro. Ak ste vytvorili balík modulov, budete musieť nainštalovať aj tento balík.

Je čas reštartovať systém: pozorne si prečítajte všetky varovania, ktoré mohol spôsobiť vyššie uvedený krok, potom .

Viac informácií o jadrách Debianu a kompilácii jadra nájdete v príručke Debian Linux Kernel Handbook. Pre viac informácií o, si prečítajte dokumentáciu pokuty v .

Ak si pamätáte, nie je to tak dávno, čo sme sa naučili zostaviť jadro FreeBSD zo zdrojového kódu. Otázkou je, prečo sa nenaučiť robiť to isté s jadrom Linuxu? Dôvody na zostavenie linuxového jadra zo zdroja sú vo všeobecnosti rovnaké – získanie najnovšej verzie jadra, urgentná aplikácia bezpečnostných záplat, optimalizácia pre špecifické úlohy a špecifický hardvér, ako aj túžba podieľať sa na vývoji jadra, aj v úlohe QA.

Dôležité! Dodržiavanie pokynov v tomto príspevku môže viesť k strate vašich údajov. Urobte si zálohy a pamätajte, že všetko robíte na vlastné nebezpečenstvo a riziko. Všetko popísané nižšie bolo testované na Ubuntu 14.04 LTS. Ale na iných verziách Ubuntu, ako aj iných distribúciách Linuxu by rozdiely mali byť minimálne.

Nastavenie bootloadera

Upravte /etc/default/grub takto:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=10
#GRUB_HIDDEN_TIMEOUT_QUIET=pravda
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i-s2>/dev/null ||echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="tichý splash"
GRUB_CMDLINE_LINUX=""

Po úprave hovoríme:

sudo update-grub

Výsledkom je, že pred zavedením systému budete vyzvaní na 10 sekúnd, aby ste vybrali jadro, z ktorého chcete zaviesť systém. Veľmi užitočné, ak si pokazíte konfiguráciu jadra a chcete spustiť predchádzajúcu verziu!

Nainštalujte závislosti

Budeme potrebovať minimálne tieto balíčky:

sudoapt-get installgccmakebc fakeroot dpkg-dev\
libncurses5-dev libssl-dev

Na mnohých systémoch však už budú prítomné všetky.

Získanie zdroja

wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.4.tar.xz
tar-xz-xvf linux-4.6.4.tar.xz
cd linux-4.6.4

Alebo, ak chcete to najnovšie, môžete získať zdroj priamo z Git:

# Zrkadlo: https://github.com/torvalds/linux
git clone'git://git.kernel.org/pub/scm/linux/kernel/git/'\
'torvalds/linux.git'
cd linux

Súdiac podľa skutočnosti, že som nemohol nájsť značku v4.6.4 v Git, vydania jadra Linuxu sa vyrábajú výlučne vo forme komprimovaných archívov tar.

Ak by ste namiesto vanilkového jadra chceli vytvoriť jadro so záplatami od Canonical:

git klon git://kernel.ubuntu.com/ubuntu/ubuntu-trusty.git
cd ubuntu-dôveryhodný
git tag|menej
git checkout Ubuntu-lts-4.4.0-31.50_14.04.1

Z vlastnej skúsenosti, ak používate Ubuntu, pokojne môžete použiť jadro vanilky. Je nepravdepodobné, že s tým budete mať nejaké problémy.

Poznámka: Je zaujímavé, že z existujúcich pomerne populárnych distribúcií Linuxu sa zdá, že iba Gentoo, Slackware a Arch Linux používajú jadro bez vlastných záplat.

Každopádne, teraz máte zdrojový kód.

Kompilácia a inštalácia jadra

Vyberte možnosti, s ktorými sa jadro vytvorí:

V prípade potreby zmeňte nastavenia, kliknite na Uložiť a potom na Ukončiť. V dôsledku toho sa vytvorí súbor obsahujúci parametre, ktoré sme vybrali.

o aktualizovať kernel (používate už nejaký druh jadra?) je vhodné vziať konfiguráciu aktuálneho jadra a nastaviť nové možnosti na ich predvolené hodnoty:

zcat/proc/config.gz > ./.config
urob olddefconfig

Nakoniec zbierame:

make-j4 bindeb-pkg LOCALVERSION=-vlastné

Jadro je zostavené pomerne dlho. Na mojom notebooku trvala montáž 1 hodinu a 15 minút. Avšak od tejto doby O Zvyšok je vynaložený na vytvorenie obrovského balíka jadra so symbolmi ladenia.

Manuálne zostavenie a konfigurácia jadra Linuxu

Zostavenie tohto balíka je možné deaktivovať zakomentovaním parametra CONFIG_DEBUG_INFO v konfigurácii. Nezabudnite, že tento balík vyžaduje SystemTap a ďalšie užitočné nástroje.

Okrem samotného jadra môžete zbierať aj dokumentáciu:

# existuje aj `make pdfdocs` a ďalšie, pozri `make help`
vytvoriť htmldocs
Chromium-browser Documentation/DocBook/index.html

Po dokončení montáže dcérska spoločnosť adresár vidíme niečo ako:

linux-firmware-image-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-headers-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-image-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-image-4.4.13-custom-dbg_4.4.13-custom-1_amd64.deb
linux-libc-dev_4.4.13-custom-1_amd64.deb

Všetky deb-balíky okrem dbg-verzie jadra sme umiestnili s bežnými a reštartujeme. Po reštarte sa pozrieme na výstup príkazu. Uisťujeme sa, že sme skutočne zaviedli nové jadro. Ak s novým jadrom niečo nie je v poriadku, v bootloaderi jednoducho vyberieme ten, s ktorým bol systém predtým spustený. Po zavedení so starým jadrom rýchlo odstránime balíčky nového jadra a voila - systém sa vrátil do predchádzajúceho stavu.

Okrem toho po načítaní nového jadra môžete na ňom spustiť testy:

sudomake kselftest
sudomake kselftest-clean

Gratulujeme, teraz viete, ako zostaviť jadro Linuxu!

Záver

Materiály o vnútorných častiach linuxového jadra:

  • KernelNewbies.org, stránka pre nováčikov v jadre Linuxu s vlastným mailing listom, IRC kanálom, fórom, wiki a ďalšími;
  • LKML.org, stránka na pohodlné čítanie zoznamu adries vývojárov jadra Linuxu cez prehliadač. Pozor, často to kazí formátovanie písmen! V tomto zmysle je archív zoznamu adries na marc.info oveľa lepší;
  • Linux Cross Reference, stránka na pohodlné čítanie kódu jadra Linuxu cez prehliadač;
  • Kniha Linux Kernel Development, 3rd Edition je najnovšia kniha o jadre Linuxu v angličtine (2010, jadro 2.6.x), existuje preklad do ruštiny;
  • Kniha Linux-Treiber entwickeln, 4. vydanie je novšia (2015, jadro 4.x), ale je napísaná v nemčine a nemá preklad;
  • Bezplatná kniha Linux Insides od Alexandra Kuleshova a.k.a @0xAX sa zdá byť najprístupnejšia a najaktuálnejšia, no momentálne sa pripravuje;
  • Niekedy môžete nájsť niečo užitočné v dokumentácii Linux Kernel HTML Documentation, oficiálnej dokumentácii zo zdrojov Linuxového jadra;
  • Príklady pre knihu Linux Device Drivers, 3rd Edition, ktoré sa snažia aktualizovať, plus zdroje pre 4. vydanie, ktoré sa práve pripravuje;

Vytvárate jadro zo zdrojového kódu a ak áno, prečo? 🙂

Doplnenie: Tiež by vás mohol zaujímať článok Škandalózna pravda o ladení kódu jadra v systéme Linux.

Tagy: Linux, Ring0.

Kompilácia linuxového jadra


Mnohí to považujú za zbytočnú stratu času s cieľom ukázať sa ako šikovný a pokročilý „linuxoid“. V skutočnosti je kompilácia jadra veľmi dôležitá vec. Povedzme, že ste si kúpili nový notebook, ktorý nemá funkčnú webovú kameru. Vaše činy? Pozeráte sa do vyhľadávača a hľadáte riešenie tohto problému. Pomerne často sa môže ukázať, že vaša webová kamera beží na novšej verzii jadra, ako máte vy. Ak neviete, akú verziu máte, zadajte do terminálu uname -r, výsledkom čoho bude verzia jadra (napríklad linux-2.6.31-10). Kompilácia jadra sa tiež široko používa na zvýšenie výkonu: faktom je, že distribúcie jadra sú predvolene kompilované „pre každého“, z tohto dôvodu obsahuje veľké množstvo ovládačov, ktoré možno nepotrebujete. Ak teda dobre poznáte svoj hardvér, môžete vo fáze konfigurácie vypnúť nepotrebné ovládače. Je tiež možné povoliť podporu pre viac ako 4 gigabajty RAM bez zmeny bitovej hĺbky systému.

Ako zostaviť linuxové jadro? Budovanie linuxového jadra

Takže, ak stále potrebujete mať svoje vlastné jadro, začnime kompilovať!


Prvá vec, ktorú musíte urobiť, je získať zdrojový kód pre požadovanú verziu jadra. Zvyčajne musíte získať najnovšiu stabilnú verziu. Všetky oficiálne verzie jadra sú dostupné na kernel.org.

Ak už máte nainštalovaný X server (domáci počítač), môžete prejsť na stránku vo svojom obľúbenom prehliadači a stiahnuť si požadovanú verziu v archíve tar.gz (komprimovaný gzip). Ak pracujete v konzole (napríklad ste ešte nenainštalovali X server alebo konfigurujete server), môžete použiť textový prehliadač (napríklad elinks).

Môžete tiež použiť štandardného správcu sťahovania wget:


tar -zxvf cesta_k_archivu

Konfigurácia jadra.

Kompilácia.
urobiť && vykonať inštaláciu
Čakáme od 20 minút do niekoľkých hodín (v závislosti od výkonu počítača). Jadro je nainštalované. Ak chcete, aby sa objavil v zozname grub(2), zadajte (ako root)
update-grub


Archív článkov:
máj 2017
marec 2017
apríla 2016
marec 2016
október 2013
september 2013
Máj 2013
marec 2013
novembra 2012
júla 2012
júna 2012
apríla 2012
marec 2012
február 2012
apríla 2011
marec 2011
február 2011
januára 2011
decembra 2010
november 2010
október 2010
september 2010
august 2010
júla 2010
júna 2010
máj 2010
apríla 2010
marec 2010

Náhodné:

Virtuálne planetárium Stellarium: prehľad nových funkcií

BOINC: výpočtová technika pre vedu

Gambas: Základný vývoj na linuxe

Sériové diagramy SSH 2.0

Linuxnow.ru: Plány do budúcnosti

Zrazu vám dochádza voľné miesto na disku? Možno je problém v protokoloch.

Kolegovia: všetci
Linux pre každého

Naše bannery:


Nastaviť banner

Konfigurácia jadra Linuxu

Kontrola zdrojových balíkov

Prekompilovanie jadra vyžaduje jeho zdroje.

Blog o správe systému. Články o Linuxe, Windowse, úložiskách NetApp a virtualizácii.

Red Hat umiestňuje zdroje jadra do jedného balíka rpm, ale štandardne sa neinštaluje. Názov tohto balíka:

kernel-source-2.4.2-2.1386.rpm

Na rekompiláciu jadra potrebujete okrem zdrojového kódu aj kompilátor, ktorý pozostáva z dvoch komponentov:

urobiť užitočnosť;

samotný kompilátor jazyka C je gcc alebo egcs.

Vytvorenie záložnej kópie aktuálneho jadra sa vykonáva v troch fázach:

1. Vytvorenie záložnej kópie zdrojov jadra, ktorá vám umožní obnoviť ju v prípade poškodenia konfigurácie.

2. Vytvorenie záložnej kópie samotného jadra ako známeho pracovného prostriedku na spustenie systému.

3. Vytvorenie novej položky pre zavádzač operačného systému, ktorý možno použiť na zavedenie systému zo zálohy jadra.

Vytvorenie zálohy zdroja sa vykonáva skopírovaním zdrojového adresára jadra na disk. Obnova sa vykonáva kopírovaním v opačnom smere.

Keď sa jadro prekompiluje, staré jadro sa zapíše do súboru s príponou .old. Túto kópiu jadra však zatiaľ nemožno použiť na zavedenie systému. To vysvetľuje potrebu vykonať vyššie uvedené operácie.

Zavádzač operačného systému typu LILO, bežne používaný na zavádzanie Linuxu, sa konfiguruje prepojením so súborom jadra v koreňovom súborovom systéme.

Po zálohovaní jadra musíte do súboru /etc/lilo.conf pridať ďalšiu položku, ktorá vám umožní spustiť Linux so starým jadrom:

otvorte súbor /etc/lilo. conf v textovom editore

vytvorte kópiu celého oddielu;

zmeniť dve pozície v kópii:

nahraďte názov súboru jadra názvom jeho záložnej kópie (spolu s príponou);

nahradiť označenie oddielu niečím ako linux. pôvodný (pôvodný Linux) alebo linux-previous (starý Linux).

riadky začínajúce na initrd by sa mali nahradiť vhodnými záložnými súbormi, ako napríklad initrd-2 .4.2-2. orig. img;

zapíšte zmeny do /etc/lilo. conf.

zadajte príkaz /sbin/lilo na zadanie novej položky do zavádzača. Keď spustíte príkaz lilo, na obrazovke sa zobrazia označenia obrázkov zadaných do zavádzača operačného systému.

Pri ďalšom reštarte systému sa nové ID jadra zobrazí v popise zavádzača LILO.

Konfigurácia nového jadra

Konfigurácia rozhoduje o tom, ktoré funkcie zahrnúť do jadra, ktoré nezahrnúť atď. Môžete si vybrať medzi konfiguráciou starého jadra a inštaláciou/konfiguráciou nového jadra. Napríklad pomocou Red Hat Linux 7.1 môžete prekonfigurovať existujúce jadro 2.4.2 s novými možnosťami. Môžete si tiež stiahnuť a nainštalovať nové jadro 2.4.4. Aj keď sú podrobnosti o konfigurácii v týchto dvoch prípadoch odlišné, použité nástroje a samotná metodológia konfigurácie sú rovnaké.

Linux má tri samostatné konfiguračné nástroje, z ktorých každý má svoje vlastné charakteristiky.

Nástroj s rozhraním príkazového riadku. Používateľ neustále odpovedá na otázky týkajúce sa funkcií, ktoré je potrebné zahrnúť do jadra. Tento nástroj je užitočný pre tých, ktorí vedia pracovať s jadrom, a pre tých, ktorí majú konfiguračné skripty pre tento nástroj.

Pomôcka s ponukou textového režimu. Viacúrovňová ponuka tohto nástroja vám umožňuje nastaviť a preinštalovať parametre jadra v ľubovoľnom poradí.

GUI nástroj. Toto je najatraktívnejšia pomôcka, ale beží iba na grafickom systéme X Window.

Uvedené nástroje vytvárajú rovnaký konfiguračný súbor, aký používa nástroj make pri kompilácii úplných alebo čiastočných jadier.

Možnosti jadra

Keď kontrolujete nastavenia v akomkoľvek konfiguračnom programe (príkazový riadok, textový alebo GUI), musíte mať jasno v tom, aký vplyv majú tieto nastavenia na fungovanie jadra.

Identifikácia parametrov v každom programe je odlišná, ale vo všetkých troch je prezentovaná rovnaká sada parametrov. Parametre sú rozdelené do dvoch hlavných skupín:

modulárny;

nemodulárne.

Ak programový blok zodpovedajúci tomuto parametru nie je načítaný ako modul jadra, môže ísť o jednu z dvoch vecí:

[*] neoddeliteľná súčasť jadra;

Neoddeliteľnou súčasťou jadra.

Znaky v hranatých zátvorkách (spolu so zátvorkami) zodpovedajú označeniam možností v ponuke konfiguračných programov (okrem pomocného programu príkazového riadka).

Pre modulárne parametre existujú tri možnosti nastavenia (podľa ich znázornenia v ponuke konfiguračných nástrojov):

<>nie je súčasťou jadra a nie je vytvorený ako modul, ktorý je možné načítať neskôr:

<*>je súčasťou jadra, takže nie je potrebné ho načítať neskôr ako modul:

<М>Zahrnuté ako modul, ale nie ako súčasť jadra. Blok je možné kedykoľvek nainštalovať alebo odstrániť z jadra.

Niekedy nie je možné zmeniť hodnotu parametra, kým nie je nastavený iný parameter. Napríklad podporu pre konkrétne zariadenie SCSI môžete nainštalovať až po povolení podpory pre tieto zariadenia vo všeobecnosti.

Keď sú v systéme nainštalované potrebné nástroje (utilita make a kompilátor gcc) a zdrojové texty, môžete spustiť jeden z konfiguračných nástrojov a začať konfigurovať jadro.

GUI konfigurátor

Spustenie konfiguračného programu s grafickým rozhraním sa vykonáva v nasledujúcom poradí.

Spustite systém X Windows (s ľubovoľným grafickým prostredím a pracovnou plochou).

Otvorte okno emulátora terminálu (okno príkazového riadka).

Rovnako ako pri spustení predchádzajúcej pomôcky sa na obrazovke rozbliká niekoľko správ o kompilácii pomôcky a po niekoľkých minútach sa otvorí jej hlavné okno.

Ryža. 8. Pomôcka na konfiguráciu jadra s grafickým rozhraním: tlačidlá menu na nastavenie hodnôt parametrov

Grafická pomôcka sa príliš nelíši od pomôcky menuconf ig. Tu sú možnosti tiež kategorizované; kliknutím na konkrétnu kategóriu sa otvorí dialógové okno so zoznamom možností, z ktorých každá môže byť nastavená na hodnotu, ktorá určuje, či sa má príslušný nástroj použiť ako súčasť jadra, ako načítateľný modul alebo vôbec.

Takéto dialógové okno je znázornené na obr.

Ryža. 9. Dialógové okná ako toto nastavujú možnosti konfigurácie jadra

Jadro 2.4.2 v Red Hat Linuxe štandardne podporuje symetrickú multiprocesorovú architektúru. Ak má váš počítač iba jeden procesor, musíte príslušnú možnosť nastaviť na n.

Napravo od každej možnosti je tlačidlo Pomocník.

Veľkou výhodou grafického konfiguračného nástroja (najmä pre konfigurátorov jadra prvýkrát) je, že menu zobrazuje závislosti medzi rôznymi možnosťami. Napríklad v časti Blokovať zariadenia nemôžete nainštalovať podporu RAID zabudovanú do jadra, kým nie je povolená možnosť Podpora viacerých ovládačov zariadení.

Ak je v obslužnom programe menuconfig závislosť parametrov na sebe znázornená odsadením názvov parametrov v menu, potom v grafickom nástroji je jednoducho nemožné nastaviť nepovolené kombinácie parametrov. Práca s grafickým nástrojom pomáha pochopiť závislosti medzi rôznymi modulmi.

Na konci hlavnej ponuky grafickej pomôcky sú príkazy podobné príslušným príkazom pomôcky z ponuky textového režimu.

Uložiť a skončiť (ukončiť s uložením). Vytvorenie konfiguračného súboru jadra a vypnutie pomôcky.

Ukončiť bez uloženia. Vypnutie pomôcky bez vytvorenia konfiguračného súboru jadra.

Bez vytvorenia konfiguračného súboru jadra pomocou jedného z uvedených nástrojov nie je možné prekompilovať jadro.

Načítať konfiguráciu zo súboru. Načítava sa predtým vytvorený konfiguračný súbor.

Uložiť konfiguráciu do súboru. Zápis konfiguračných údajov do súboru so zadaným názvom (na ďalšie použitie alebo prenos kolegovi). Toto nemá vplyv na potrebu vykonať príkaz Save and Exit, ktorý vytvorí konfiguračný súbor na prekompilovanie jadra.

Kompilácia a spustenie nového jadra

Po dokončení konfigurácie musíte vyhľadať nový konfiguračný súbor (.config) umiestnený v adresári /usr/src/linux-2 .4.2 (v závislosti od čísla verzie). Ak je konfiguračný súbor .config na svojom mieste, môžete použiť príkaz make na rekompiláciu jadra.

Rekompilácia jadra zvyčajne trvá od 15 minút do niekoľkých hodín. Závisí od rýchlosti procesora, veľkosti RAM a množstva ďalších faktorov, preto je vhodné všetky príkazy zadané pri kompilácii spojiť do jedného oddeleného bodkočiarkou, aby sa vykonávali postupne.

Spustenie procesu rekompilácie

Nižšie uvedené príkazy sú určené na vytvorenie nového jadra prekompilovaním všetkých jeho modulov a ich zápisom do príslušných systémových adresárov. (Tam budú dostupné pre príkazy jadra.)

Na prekompilovanie systému budú zadané nasledujúce príkazy.

# urobiť dep; vyčistiť; urobiť bzlmage; vytvárať moduly; make modules_install

Každý príkaz make môže byť zadaný samostatne po dokončení predchádzajúceho.

Po zadaní týchto príkazov budú na obrazovke blikať riadky popisujúce adresáre, ku ktorým má prístup program make, spustenie kompilátora gcc. na kompilovanie rôznych zdrojových súborov a prepojenie rôznych blokov. Dokončenie každého z týchto príkazov bude trvať niekoľko minút.

Teraz môžete pomocou príkazu vytvoriť zavádzací disk pre nové jadro

Pred vykonaním tohto príkazu musíte do jednotky vložiť naformátovanú disketu. Hotový zavádzací disk musí byť otestovaný. Reštartujte počítač bez vybratia diskety z jednotky.

Po vykonaní príkazov na kompiláciu jadra a návrate na príkazový riadok sa vytvorí nové jadro. Ak chcete zaviesť systém s novým jadrom, musíte ho presunúť do štandardného adresára, z ktorého sa spustí. To sa vykonáva zadaním príkazu

# cf /usr/src/linux-2.4.2/arch/i386/boot/bzlmage /boot/vmlinuz-2.4.2-2

Nakoniec, ak chcete aktualizovať zavádzaciu mapu, spustite príkaz lilo:

V názve obrazu jadra, ktorý chcete skopírovať, môžete zadať číslo verzie. Je dôležité, aby sa názov tohto súboru zhodoval s názvom uvedeným v súbore /etc/lilo.conf.

Testovanie nového jadra

Po presunutí nového súboru jadra do predvoleného adresára (špecifikovaného v súbore lilo.conf) možno systém reštartovať s týmto jadrom.

Ihneď po reštarte skontrolujte fungovanie nových nástrojov, pre ktoré bola spustená rekompilácia. Môžete urobiť nasledovné.

Porovnanie objemov starých a nových jadier. Množstvo pamäte obsadenej operačným systémom by ste mali skontrolovať zadaním príkazu free.

Pripojenie súborového systému alebo pokus o prístup k zariadeniu bez načítania modulu jadra na jeho podporu (ak je podpora pre toto zariadenie zabudovaná v jadre).

Používanie sieťových prostriedkov (ako sú IP aliasy), ktoré neboli prítomné v starom jadre.

Možno bude potrebné skontrolovať časovú pečiatku aktuálneho súboru jadra. Ak to chcete urobiť, zadajte príkaz uname. To vám umožní uistiť sa, že systém momentálne beží s prekompilovaným jadrom. Časová pečiatka a dátum jadra sa musia zhodovať s časom, kedy bolo prekompilované.

Ak odpoveď príkazu uname naznačuje, že systém nebol spustený s novým jadrom, pozrite sa do zavádzača LILO. Skontrolujte, či je názov zavádzacieho jadra správny v súbore /etc/lilo.conf.

VIDIEŤ VIAC:

Kompilácia a inštalácia linuxového jadra zo zdrojového kódu v Debiane

Materiál od Bryansk Linux Users Group a www.rm.pp.ru

Každá distribúcia má svoje vlastné špecifiká zostavovania jadra a tento článok sa zameriava presne na to, ako to urobiť v Debian Etch. Odhaľuje tiež otázku, ako aplikovať tú alebo onú opravu na jadro, keď je potrebné podporovať určitú funkčnosť alebo nový hardvér vo vašom systéme. Článok je určený predovšetkým pokročilejším používateľom a nie sú zaručené, že tento spôsob bude fungovať ako má a všetky popísané úkony a zodpovednosť padnú na vás.

  1. Poznámka
  2. Metóda jedna. Zabudovanie jadra do balíčkov .deb
  3. Aplikácia náplastí
  4. Konfigurácia jadra
  5. Kompilácia jadra
  6. Inštalácia nového jadra
  7. Metóda dva. „tradičným“ spôsobom
  8. Problémy
  9. Odkazy

Poznámka

Opísané budú dve metódy zostavovania jadra. Najprv bude popísaný variant zostavenia balíkov .deb, ktoré môžu byť nainštalované na vašom alebo inom systéme.

Druhý spôsob je takzvaný „tradičný“ spôsob.

Metóda jedna. Zabudovanie jadra do balíčkov .deb

Inštalácia potrebných balíkov na kompiláciu jadra

Najprv aktualizujme zoznamy balíkov:

# aktualizácia apt-get

Nainštalujte balíky, ktoré potrebujeme:

# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

Sťahovanie zdrojov jadra

Prejdite do adresára /usr/src, prejdite na stránku www.kernel.org a vyberte požadovanú verziu jadra. V tomto prípade sa bude brať do úvahy verzia linux-2.6.23.1.tar.bz2. Sťahovanie:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2

Rozbaľte zdroje a vytvorte symbolický odkaz:

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (odstrániť predchádzajúci symbolický odkaz) # ln -s linux-2.6.23.1 linux # cd /usr/src/linux

Aplikácia náplastí

Voliteľné a nerobte to zbytočne!

Niekedy sú potrebné ovládače alebo funkcie, ktoré aktuálne jadro nepodporuje, ako napríklad virtualizačná technológia alebo iné špecifiká, ktoré nie sú v aktuálnom vydaní. V každom prípade sa to koriguje aplikáciou takzvaných náplastí (ak existujú).

Povedzme teda, že ste si stiahli požadovanú opravu (nazvime ju napríklad patch.bz2) do /usr/src. Použite stiahnutú opravu na naše zdroje (stále by ste mali byť v adresári /usr/src/linux):

# bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch.bz2 | patch-p1

Prvý príkaz je len test a na zdroje sa nepoužijú žiadne zmeny. Ak sa po prvom príkaze nevrátili žiadne chyby, môžete spustiť druhý príkaz a použiť opravu. V žiadnom prípade nevykonávajte druhý príkaz, ak sa po prvom vyskytli chyby!

Týmto spôsobom môžete použiť záplaty na zdroje jadra. Napríklad existujú niektoré funkcie, ktoré sú dostupné iba v jadre 2.6.23.8 a zdrojové kódy neobsahovali potrebné funkcie, ale bol vydaný patch-2.6.23.8.bz2. Túto opravu môžete použiť na zdroje jadra 2.6.23, ale nie na 2.6.23.1 alebo 2.6.23.3 atď. Viac si o tom môžete prečítať na:

Predpony (predzáplaty) - ekvivalent k alfa vydaniam; opravy sa musia použiť na zdroje úplného predchádzajúceho vydania s 3-cifernou verziou (napríklad opravu 2.6.12-rc4 možno použiť na zdroje verzie 2.6.11, ale nie na verziu 2.6.11.10.)

To znamená, že ak chceme zostaviť jadro 2.6.23.8, musíme si stiahnuť zdrojové kódy pre verziu 2.6.23 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6. 23.tar.gz) aplikovaný druhým spôsobom „tradičným“ spôsobom!

Použiť patch-2.6.23.8.bz2 na jadro 2.6.23:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.22.8.bz2 # cd /usr/src/linux # bzip2 -dc /usr/ src/patch-2.6.23.8.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | patch-p1

Konfigurácia jadra

Pre nové je dobré použiť aj existujúci konfiguračný súbor bežiaceho jadra. Preto skopírujeme existujúcu konfiguráciu do /usr/src/linux:

# make clean && make mrproper # cp /boot/config-`uname -r` ./.config

# make menuconfig

po ktorej sa načíta grafické menu konfigurácie jadra. V ponuke konfigurátora zvoľte "Načítať alternatívny konfiguračný súbor" a kliknite na "OK". Potom (ak je to potrebné) vykonajte potrebné zmeny v konfigurácii jadra prechádzaním cez ponuky (podrobnosti o konfigurácii jadra nájdete na www.google.com). Keď skončíte a stlačíte "Exit", zobrazí sa otázka "Chcete uložiť novú konfiguráciu jadra?", odpovedáme kladne "Áno".

Budovanie linuxového jadra

Kompilácia jadra

Zostavenie jadra sa vykonáva iba dvoma príkazmi:

# make-kpkg clean # fakeroot make-kpkg --initrd --append-to-version=-cybermind kernel_image kernel_headers

Za --append-to-version= môžete napísať ľubovoľný názov, ale musí začínať znamienkom mínus (-) a nesmie obsahovať medzery.

Proces kompilácie a zostavovania .deb balíčkov môže trvať pomerne dlho. Všetko bude závisieť od konfigurácie jadra a možností vášho procesora.

Riešenie problému s vytvorením initrd.img

Nedávno sa v Debiane objavila chyba spočívajúca v tom, že po nainštalovaní balíčkov s jadrami zostavenými tu popísaným spôsobom sa nevytvorí im zodpovedajúci súbor /boot/initrd.img. Ak chcete opraviť už nainštalované jadro, budete musieť vytvoriť initrd.img manuálne:

update-initramfs -c -k<полная-версия-ядра>

Na vyriešenie problému "pre budúcnosť" - zakomentujte, ako je znázornené, druhý z riadkov citovaných nižšie v súbore /etc/kernel/postinst.d/initramfs-tools:

# kernel-package odovzdá ďalší argument; hack, aby sa nespustil pod balíkom jadra #[ -z "$2" ] || výstup 0

Inštalácia nového jadra

Keď sa zostava jadra úspešne dokončí, v adresári /usr/src sa vytvoria dva balíčky .deb:

# cd /usr/src # ls -l

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - samotné jadro a linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind_86kerdeomb -386.deb header potrebné na zostavenie ďalších modulov (napríklad pri zostavovaní modulov ovládačov nVidia). Ich inštalácia:

# dpkg -i linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb # dpkg -i linux-headers-2.6.23.1-cybermind_2-Custom01min_2.6.23.03.8

(Tieto balíky je teraz možné nainštalovať na iný systém bez toho, aby ste ich museli znova zostavovať.)

Všetko, inštalácia je dokončená, menu bootloader, inštalácia nového RAM disku a kernelu prebehne automaticky. Zostáva iba reštartovať:

Metóda dva. „tradičným“ spôsobom

Všetky body popísané vyššie vykonáme PRED bodom „Kompilácia jadra“.

# make all # make modules_install # make install

Ako obvykle, zostavenie môže trvať dlho, v závislosti od konfigurácie jadra a možností procesora.

Hlavnou nevýhodou tejto metódy je, že ak často aktualizujete jadrá, po chvíli sa ich nahromadí veľké množstvo a budete chcieť odstrániť nepoužívané. Aby ste to uľahčili, môžete jadro a ďalšie súbory, ktoré sú nainštalované do systému, zostaviť pomocou príkazov „make modules_install“ a „make install“ do balíka deb (alebo skôr do dvoch od jadra 2.6.27), ako je prvý metódu, ale tu použijeme so skriptami jadra:

# make all # make deb-pkg

V adresári o úroveň vyššie nad zdrojovým adresárom sa objavia dva súbory .deb. Skompiloval som jadro v adresári /usr/src/linux-2.6.27.10 a dostal som súbory v adresári /usr/src/

# linux-2.6.27.10_2.6.27.10-1_amd64.deb # linux-firmware-image_2.6.27.10-1_all.deb

Jadro sa nainštaluje pomocou príkazu

# dpkg -i linux-2.6.27.10_2.6.27.10-1_amd64.deb

Staré jadrá sa dajú odstrániť napríklad zo synaptického

Ďalšie kroky

Jadro je zostavené a nainštalované, ale teraz potrebujete vytvoriť RAM disk (bez ktorého jadro jednoducho nenabehne) a musíte aktualizovať bootloader GRUB. Ak to chcete urobiť, postupujte takto:

# depmod 2.6.23.1 # apt-get install yaird

Nainštalujte RAM disk:

# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1

Poďme aktualizovať bootloader jednoducho a bezbolestne:

Všetko, bootloader a nové jadro sú pripravené, zostáva len reštartovať:

Problémy

Ak sa po reštarte vami zvolené nové jadro nespustí, reštartujte a vyberte predchádzajúce jadro a môžete skúsiť prejsť celým procesom znova a zostaviť funkčné jadro. V tomto prípade nezabudnite vymazať riadky nefunkčného jadra v /boot/grub/menu.lst.

Kompilácia linuxového jadra

Prečo si vôbec kompilovať jadro sám?
Možno hlavná otázka, ktorá sa kladie pri kompilácii jadra, je: „Prečo by som to mal robiť?“.
Mnohí to považujú za zbytočnú stratu času s cieľom ukázať sa ako šikovný a pokročilý „linuxoid“. V skutočnosti je kompilácia jadra veľmi dôležitá vec. Povedzme, že ste si kúpili nový notebook, ktorý nemá funkčnú webovú kameru. Vaše činy? Pozeráte sa do vyhľadávača a hľadáte riešenie tohto problému. Pomerne často sa môže ukázať, že vaša webová kamera beží na novšej verzii jadra, ako máte vy. Ak neviete, akú verziu máte, zadajte do terminálu uname -r, výsledkom čoho bude verzia jadra (napríklad linux-2.6.31-10). Kompilácia jadra sa tiež široko používa na zvýšenie výkonu: faktom je, že distribúcie jadra sú predvolene kompilované „pre každého“, z tohto dôvodu obsahuje veľké množstvo ovládačov, ktoré možno nepotrebujete. Ak teda dobre poznáte svoj hardvér, môžete vo fáze konfigurácie vypnúť nepotrebné ovládače.

Je tiež možné povoliť podporu pre viac ako 4 gigabajty RAM bez zmeny bitovej hĺbky systému. Takže, ak stále potrebujete mať svoje vlastné jadro, začnime kompilovať!

Získanie zdrojového kódu jadra.
Prvá vec, ktorú musíte urobiť, je získať zdrojový kód pre požadovanú verziu jadra. Zvyčajne musíte získať najnovšiu stabilnú verziu. Všetky oficiálne verzie jadra sú dostupné na kernel.org. Ak už máte nainštalovaný X server (domáci počítač), môžete prejsť na stránku vo svojom obľúbenom prehliadači a stiahnuť si požadovanú verziu v archíve tar.gz (komprimovaný gzip). Ak pracujete v konzole (napríklad ste ešte nenainštalovali X server alebo konfigurujete server), môžete použiť textový prehliadač (napríklad elinks). Môžete tiež použiť štandardného správcu sťahovania wget:
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.1.tar.gz
Upozorňujeme však, že musíte poznať presné číslo verzie, ktorú potrebujete.

Rozbalenie archívu zdrojového kódu.
Po prijatí archívu so zdrojovým kódom musíte archív rozbaliť do priečinka. Dá sa to urobiť z grafických správcov súborov (dolphin, nautilus atď.) alebo cez mc. Alebo použite tradičný príkaz tar:
tar -zxvf cesta_k_archivu
Teraz máte zdrojový priečinok, prejdite do neho pomocou cd kernel_source_code_dir (na zoznam adresárov v priečinku použite príkaz ls).

Konfigurácia jadra.
Po zmene do zdrojového adresára jadra musíte vykonať konfiguráciu jadra na "20 minút". Jeho účelom je ponechať len potrebné ovládače a funkcie. Všetky príkazy už musia byť vykonané v mene superužívateľa.

make config - konzolový režim konfigurátora.

make menuconfig - režim konzoly ako zoznam.

make xconfig - grafický režim.

Po vykonaní potrebných zmien uložte nastavenia a ukončite konfigurátor.

Kompilácia.
Je čas na záverečnú fázu montáže – kompiláciu. To sa vykonáva pomocou dvoch príkazov:
urobiť && vykonať inštaláciu
Prvý príkaz skompiluje všetky súbory do strojového kódu a druhý nainštaluje nové jadro do vášho systému.
Čakáme od 20 minút do niekoľkých hodín (v závislosti od výkonu počítača).

Konfigurácia a kompilácia linuxového jadra

Jadro je nainštalované. Ak chcete, aby sa objavil v zozname grub(2), zadajte (ako root)
update-grub
Teraz po reštarte stlačte "Escape" a v zozname uvidíte nové jadro. Ak sa jadro nezapne, stačí nabootovať so starým jadrom a nakonfigurovať opatrnejšie.

KernelCheck - kompilácia jadra bez vstupu do konzoly.
KernelCheck vám umožňuje zostaviť jadro v plne grafickom režime pre Debian a jeho založené distribúcie. Po spustení KernelCheck ponúkne najnovšie verzie jadra a záplaty a po vašom súhlase si stiahne zdrojový kód, spustí grafický konfigurátor. Program zabuduje jadro do balíkov .deb a nainštaluje ich. Musíte len reštartovať.

Archív článkov:
máj 2017
marec 2017
apríla 2016
marec 2016
október 2013
september 2013
Máj 2013
marec 2013
novembra 2012
júla 2012
júna 2012
apríla 2012
marec 2012
február 2012
apríla 2011
marec 2011
február 2011
januára 2011
decembra 2010
november 2010
október 2010
september 2010
august 2010
júla 2010
júna 2010
máj 2010
apríla 2010
marec 2010

Náhodné:

Aurorae: nástroj na zdobenie okien pre KDE

Sblog bude prepísaný do .NET

Linuxnow.ru: Plány do budúcnosti

Bolgenos. Vyvrátenie Teleconu

Rýchle zotavenie GRUB 2

Free Software Foundation a copyleft.

Kolegovia: všetci
Linux pre každého

Naše bannery:


Nastaviť banner

Niekedy možno budete musieť zostaviť svoj vlastný Linuxové jadro. Dôvody môžu byť nasledovné:

  • potrebujete čisté jadro, žiadne distribučné záplaty;
  • chcete použiť svoje vlastné náplasti (ktorých je veľa);
  • chcete zostaviť jadro pre vašu hardvérovú konfiguráciu, vyhodiť z neho prebytok a/alebo ho upraviť pre určité úlohy;
  • chcete do jadra zahrnúť experimentálny ovládač alebo súborový systém, ktorý nie je v jadre "vanilka" jadro (napr. ZFS alebo Zvyšovač 4);
Pri zostavovaní jadra nie je nič ťažké. Dôležité je len pochopiť, prečo sa to robí, a tiež sa nedotýkať tých parametrov, ktorým nerozumiete. V tejto poznámke popíšem dva príklady zabudovania jadra Založené na Debiane distribúcie. V prvom príklade ukážem, aké ľahké je vytvoriť čisté, takzvané „vanilkové“ jadro (ako napr. Linus Torvalds) a v druhej - ako aplikovať vlastné záplaty a optimalizovať jadro. Hneď napíšem dve upozornenia:
  • pri každej aktualizácii budete musieť jadro znovu zostaviť (stiahnite si "aktualizačný patch", aplikujte ho a zostavte jadro);
  • prebudované jadro nemusí fungovať, ak sa vo vašom systéme používajú nejaké hacky na zabezpečenie prevádzkyschopnosti jedného alebo druhého zariadenia;
  • ak je jadro nakonfigurované nesprávne, najmä v prípade negramotných alebo bezmyšlienkových záplat, môžete buď získať systém, ktorý sa spomalí na hrôzu, alebo ho úplne stratiť.
VŠETKY ČINNOSTI VYKONÁVATE NA VLASTNÉ RIZIKO!

Jednoduché zostavenie jadra bez záplatovania.

Zdrojový kód linuxového jadra sa nachádza na kernel.org. Existujú tiež "aktualizačné záplaty". čo potrebujeme? Sťahovanie z lokality tarball(archív) s najnovšou stabilnou verziou jadra (v čase písania tohto článku ide o verziu 4.3 ). Sťahujeme akýmkoľvek pohodlným spôsobom. Ďalej potrebujeme nástroje na montáž:

sudo apt install build-essential gcc kernel-package patch
sudo apt-get build-dep linux

Po nainštalovaní všetkých potrebných nástrojov rozbaľte archív s kódom jadra do ľubovoľného vhodného adresára. Nechaj to tak /home/user/KERNEL, kde "užívateľ"- meno používateľa systému. Potom otvorte terminál a prejdite tam:

cd /home/user/KERNEL

Zostáva zostaviť jadro:

fakeroot make-kpkg -j 3 --initrd --append-to-version=-custom kernel_image kernel_headers #-j 3

Číslo 3 po j- to je počet jadier vášho procesora + 1. To znamená, že pre dvojjadro je to 3, pre 4 jadro je to 5 atď.
- zvyk- tu môžete zadať vhodný názov pre jadro, aby ste ho ľahšie odlíšili od distribučného.
kernel_image a kernel_headers sú samotné jadro a jeho hlavičkové súbory, resp. hlavičky potrebné na vytváranie ovládačov a modulov jadra, ako aj na niektoré iné účely. Po vykonaní tohto príkazu sa začne objavovať niekoľko otázok o konfigurácii jadra. Keďže všetko nechávame v predvolenom nastavení, stačí stlačiť Enter, kým sa nezačne zostavovanie. V závislosti od výkonu vášho počítača môže montáž trvať 15-20 minút až niekoľko hodín. Po zostavení v adresári /home/user budú dvaja deb balík: jadro a hlavičky. Nainštalujte ich príkazom:

sudo dpkg -i linux-image-4.3*deb linux-headers-4.3*deb
sudo update-grub

A reštartujte. V ponuke GRUB bude teraz možné vybrať iné jadro na zavedenie systému.

Vytváranie jadra pomocou opráv a dodatočnej konfigurácie.

Tentoraz zostavíme optimalizované jadro pre prácu so zvukom a videom, ako aj pre väčšiu odozvu systému. Na tento účel použijeme dve záplaty: takzvanú záplatu v reálnom čase ( PREEMPTOVAŤ RT) a oprava kompilátora GCC pridať ďalšie možnosti optimalizácie CPU. Po prvé, čo je náplasť? Oprava je textový súbor vytvorený programom dif, obsahujúci zmeny kódu v určitých častiach, ktoré sa pri aplikácii náplasti zadávajú na správne miesta. Pretože RT náplasť vychádza s veľkým oneskorením, jeho najnovšia verzia je pre jadro 4.1. To však nie je až také dôležité. Rovnakým spôsobom stiahneme jadro 4.1 z kernel.org a rozbalíme ho do adresára /home/user/KERNEL-CUSTOM. Teraz si stiahnite záplaty. PREEMPT_RT a GCC Patch . Zo stiahnutých archívov potrebujeme súbory s príponou .patch, ktoré musia byť umiestnené v zdrojovom adresári jadra. Teda v /home/user/KERNEL-CUSTOM. Pred aplikáciou opráv sa musíte uistiť, že nedôjde k žiadnym chybám. Otvorený terminál:

cd /home/user/KERNEL-CUSTOM
patch -p1 -i patch-4.1.13-rt15.patch --dry-run


Možnosť --suchý chod umožňuje simulovať aplikáciu opravy bez vykonania zmien v súboroch. Ak sa nenašli žiadne chyby (pozri snímku obrazovky) - použite opravu bez možnosti --suchý chod. Urobte to isté s druhou náplasťou. Neaplikujte viac ako jednu náplasť súčasne! Teraz musíme nakonfigurovať naše jadro. Na výber máme z nasledujúcich možností:

makeconfig- otázky týkajúce sa konfigurácie jedného alebo druhého podsystému jadra sa budú postupne zobrazovať v termináli. Mimoriadne dlhý a zdĺhavý proces. Zabudnime na to :)
urob oldconfig- použije sa konfigurácia aktuálne spusteného jadra. Keďže si staviame vlastné od nuly, aj tento spôsob je zbytočný.
urobiť defconfig- podobne ako v predchádzajúcom, iba hodnoty budú predvolené. Spôsob, akým to nastavili vývojári jadra. Analóg prvého spôsobu montáže.
urobte menuconfig- pseudografické rozhranie založené na knižnici Ncurses. Na obrazovke sa zobrazí rozhranie s pohodlnou hierarchickou ponukou. Ovládanie pomocou smerových kláves, medzerníka a klávesu TAB. Odporúča sa, ak kompilujete jadro na systéme, ktorý nemá grafický shell.
urobte gconfig GTK, odporúčané v GNOME, Mate, Xfce, Cinnamon, Unity a ďalších prostrediach, ktoré používajú GTK.
urob xconfig- založené na GUI Qt. Odporúčané v KDE. Keďže môj systém používa KDE, použijem túto metódu. Okrem toho existuje niekoľko ďalších metód, ale ich aplikácia sa nelíši. Takže po nanesení náplastí sa rozbehnite urob xconfig a toto máme pred sebou:


Najskôr vypnite dynticks. Pre toto ideme Subsystém časovača a vyberte si Pravidelné tiká časovača


Teraz najchutnejšie. Poďme do Typ a vlastnosti procesorov, hľadá položku Rodina procesorov a špecifikujte svoj rad procesorov. Napríklad, ak máte Intel Core i5-4xxx, špecifikujte Hasswell(4. generácia procesora). Ak si nie ste istý presne, môžete si položku vybrať Natívne optimalizácie automaticky detekované GCC. V tomto prípade pri zostavovaní kompilátor určí, čo váš procesor podporuje, a zahrnie všetky jeho funkcie.


Choďte nižšie a zapnite možnosť Úplné preemptívne jadro (RT). Tvrdý režim v reálnom čase.


Prejdite nižšie a v odseku Frekvencia časovača nastavte frekvenciu prerušenia systému na 1000 Hz


Úplne vypnite akúkoľvek úsporu energie. To je dôležité! Vľavo hľadáme položku Možnosti správy napájania a ACPI a zrušte začiarknutie ACPI. Vypnite tiež úsporu energie CPU.

To je všetko. Ak chcete (a pozorne si preštudujte dokumentáciu), môžete vykonať ďalšie zmeny v konfigurácii (zakázať nepotrebné ovládače, povoliť ďalšie podsystémy atď.). Teraz uložte konfiguráciu cez Súbor-Uložiť, zatvorte konfigurátor a zostavte jadro:

fakeroot make-kpkg -j 3 --initrd --append-to-version=-rt-custom kernel_image kernel_headers #-j 3
sudo update-grub

Na mojom počítači s procesorom Intel Core i3-550 (3,2 GHz) bol nárast výkonu dosť citeľný. Čo je však najdôležitejšie, pri práci v LMMS a Kdenlive, zmizlo periodické zadrhávanie, desynchronizácia audio a video stôp, ako aj zamŕzanie pri veľkej záťaži pevného disku. Záver - funguje to! Nakoniec popíšem dve upravené jadrá, ktoré sú v kruhoch Linuxu veľmi obľúbené:

PF-kernel- najobľúbenejšia sada patchov od Ukrajinca Alexandra Natalenka (aka post-factum) . Ide o sadu opráv, ktoré nie sú zahrnuté v hlavnom jadre, ale poskytujú zvýšenú odozvu systému, poskytujú alternatívny subsystém hibernácie, ktorý je rýchlejší ako hlavný, a tiež znižujú využitie pamäte pomocou rovnakej techniky zlučovania stránok. Sada obsahuje:

  • Plánovač procesov BFS od Con Kolivasa s ďalšími opravami od Alfreda Chena;
  • BFQ I/O Scheduler od Paola Valenteho, Arianny Avanzini a Maura Marinoniho;
  • hibernačný subsystém TuxOnIce od Nigela Cunninghama;
  • implementácia rovnakej techniky spájania stránok v UKSM od Nai Xia;
  • patch od Graysky, ktorý rozširuje zoznam procesorov na optimalizáciu jadra kompilátorom (ten, ktorý sme použili vyššie)
Upravené jadrové úložisko. Oficiálna stránka.

zen-kernel- druhá najpopulárnejšia, ale prvá sada z hľadiska počtu záplat. Zen Kernel používa kombináciu viacerých projektov, aktualizuje kód prostredníctvom úložiska git a má niekoľko vecí špecifických pre Zen, ktorých cieľom je uspokojiť väčšinu potrieb používateľov v jednom jadre. Niektoré funkcie opráv: drm-next, bezdrôtové testovanie, výber plánovača CPU (CFS/BFS), plánovač BFQ I/O, aufs, unionfs, reiser4, tuxonice, PHC a mnoho ďalších vecí, ktoré sú skvelé pre optimalizáciu desktopov alebo notebookov. To všetko je dostupné ako jediná náplasť na vanilkové jadro. Oficiálna stránka. úložisko GIT. Balíky pre Debian/Ubuntu .

Na dnes snáď všetko. Viac informácií nájdete v odkazoch na článok. Všetko popísané v článku som testoval na mnohých konfiguráciách.

Keď mi ľudia hovoria o vážnych brzdách Linuxu v porovnaní s Windowsom nainštalovaným na tom istom počítači, položím jednu jedinú otázku: „Máte jadro, ktoré si sami zostavíte alebo je nafúknuté na nemožnosť, ktoré sa štandardne dodáva s distribúciou?“ Zvyčajne je odpoveď: "Samozrejme, čo je v distribúcii!"

Okrem toho je zároveň s veľkým prekvapením vnímané, že v záujme zlepšenia fungovania systému by nebolo na škodu prebudovať jadro pre váš konkrétny počítač, aby ste deaktivovali obrovské množstvo toho, čo je absolútne nepotrebné. pre váš hardvér, ale len spomaľuje jeho prácu ... Okamžite sa ponúka rozumná otázka, prečo do neho vývojári distribučného kitu zaradili také pomalé jadro, že bežný používateľ, ktorý si tento distribučný kit sám nainštaloval, ho musí prekompilovať sám? .. A otázka sa zdá byť logická, ale nie celkom ...

Vývojári distribúcie do nej zvyčajne zahŕňajú také jadro, ktoré dokáže bez problémov rozpoznať maximálny možný hardvér, a to ako na počítači, ktorý si váš starý otec kúpil, aby sa vo voľnom čase sekol v „Call of duty“ pri sledovaní správ v televízii, tak aj najnovšie systém, ktorý ste si kúpili, aby ste zo svojho počítača vyťažili maximum. Prirodzene, v tomto prípade sa jadro ukáže ako totálne nafúknuté a počas prevádzky sa strašne spomalí, pretože zakaždým sa systém musí „hrabať“ vo veľkej hromade záznamov a ovládačov vnútri jadra, čo nemôže potešiť ani vás. alebo váš počítač ... A zostavenie vlastného jadra vám umožní vypnúť všetko nepotrebné a ponechať len potrebnú funkcionalitu ... Faktom je, že keď je spustený operačný systém Linux, jadro je jediná oblasť pamäte, ktorá sa nevymieňa , takže je celkom logické, aby to bolo čo najmenšie. Dúfam, že som vedecky populárnym spôsobom vysvetlil absolútnu potrebu prestavby jadra? ..

Zvyčajne, keď si začínajúci pestovatelia tučniakov po prvýkrát uvedomujú dôležitosť zostavovania jadra, začínajúci pestovatelia tučniakov sa vzdávajú, pretože veria, že to vyžaduje veľa vedomostí a času, a vo všeobecnosti je to zamestnanie pre správcov s červenými očami, ktorí zaspia len pre pár. hodín s notebookom pod pažou, a to určite nie pre človeka, ktorý ešte Linuxu rozumie málo... Ponáhľam sa vás však uistiť, že všetko je veľmi jednoduché a netreba sa báť ani toho najzložitejšieho postupu. Stačí poznať kompletnú konfiguráciu vášho počítača a vyhradiť si hodinu na starostlivú konfiguráciu jadra. Inštalátor zostaví jadro a vy mu musíte dať stroj k dispozícii len na pol hodiny. 🙂

Takže, ako som sľúbil skôr, poviem vám o procese nastavenia a kompilácie vlastného jadra ... Poďme na to!

Prvá vec, ktorú potrebujeme, je skutočný zdrojový kód pre nové jadro, ktoré čoskoro spustí váš Linux. Môžete si ho stiahnuť úplne zadarmo na http://www.kernel.org. Musíte si stiahnuť najnovšie stabilné jadro (zvyčajne je prvé v zozname, kde je napísané „Najnovšia stabilná verzia linuxového jadra je ...“). Odporúčam vám vziať archív tar.bz2, ale len preto, že je menší. Ak už máte skompilované jadro, tak si jednoducho stiahnete záplaty, teda záplaty, aby ste nestiahli celé jadro, ktoré je objemovo dosť veľké... V skutočnosti odporúčam použiť celé jadro, pretože som čítal, že pri kompilácii jadra s patchmi sa môžu vyskytnúť rôzne problémy, často priamo súvisiace s jednoduchým zakrivením rúk, avšak bez príslušných znalostí je lepšie neriskovať ...

Takže jadro bolo stiahnuté ... Nastavili sme príkaz:

sudo chmod 777 /usr/src

Potom ho presuňte (stiahnutý archív) do priečinka /usr/src. Rozbaľte archív príkazom:

tar -jxvf xxxxx.tar.bz2

V tomto príkaze je xxxxx.tar.bz2 názov súboru archívu jadra... Po dokončení rozbaľovania budú vaše zdroje v adresári /usr/src/xxxxx.

Skôr ako začnete ladiť jadro, zistite si presné špecifikácie vášho počítača:
1) typ procesora,
2) čipset základnej dosky,
3) typ grafickej karty,
4) typ sieťovej dosky,
5) typ zvukovej karty,
6) typ pevných diskov,
7) USB zariadenia a ďalšie…

Keď je všetko nainštalované a preštudované, môžete prejsť k samotnej konfigurácii jadra.

Ideme do adresára /boot a vidíme tam súbor s niečím podobným názvom config-2.6.24-19-generic. On je to, čo potrebujeme. Skopírujte ho do zdrojového adresára /usr/src/xxxxx a premenujte ho na .config.

Najprv tiež otvoríme súbor Makefile a do riadku "EXTRAVERSION=" pridáme naše meno pre jadro, napríklad EXTRAVERSION=-mykernel. Tento riadok nemá žiadnu inú funkciu, okrem pohodlia pri identifikácii vlastného jadra.

Tento príkaz spustí rozhranie konfiguračnej konzoly. Ak dávate prednosť grafickému konfigurátoru, na jeho spustenie musíte použiť príkaz:

Existuje ďalšia možnosť nastavenia konzoly:

Táto možnosť je veľmi užitočná len vtedy, keď už existuje vygenerovaný konfiguračný súbor.config (môžete použiť súbor nastavení zo starého jadra). V tejto voľbe sú kladené iba otázky týkajúce sa funkcií, ktoré sa objavili od verzie jadra, pre ktorú bol vytvorený konfiguračný súbor.

Ak chcete, aby jadro fungovalo stabilne a čo najrýchlejšie, pristupujte k otázke konfigurácie zodpovedne. Pozorne si prečítajte každú položku. Ak niečomu nerozumiete, hľadajte odpovede na internete. Môžete napríklad nájsť popisy mnohých nastavení a tipy, ako ich čo najlepšie využiť. Mimochodom, v tej istej časti "3.4 Príklad ladenia jadra" je niekoľko tipov na optimalizáciu jadra.

Po konfigurácii vyberieme položku „Uložiť konfiguráciu do nového súboru“, kde zadáme názov iného súboru ako .config, napríklad.config_mykernel. Potom premenujeme .config na .config_old. A získate dva súbory – .config_old a .config_mykernel. Mimochodom, rozdiely medzi štandardom a vašou konfiguráciou je možné vidieť takto:

diff .config .config_mykernel

Teraz skopírujte súbor configuration.config_mykernel ako súbor .config. Tie. skončíte s tromi konfiguračnými súbormi. Pri kompilácii sa použije súbor .config. Súbory .config_ubuntu a .config_mykernel nám v budúcnosti pomôžu pri novej kompilácii. To len pre prípad, že by sa ukázalo, že nové jadro je nefunkčné.

Kompilácia jadra by sa mala vykonávať pod superužívateľom. Prečo sa stať rootom a začať proces zostavovania jadra:

sudo -s -H
make-kpkg --initrd --revision=mykernel.1 kernel_image kernel_headers

v tomto riadku je mykernel.1 názov jadra. Môžete písať, čo chcete.

Operácia kompilácie trvá pomerne dlho, v závislosti od výkonu počítača mi to zvyčajne trvalo asi pol hodiny ...

Na konci procesu sa vytvoria dva deb súbory s jadrom nakonfigurovaným špeciálne pre vaše potreby. Gratulujeme, jadro je pripravené.

Teraz musíte nainštalovať zostavené jadro do systému:

sudo dpkg -i linux-image-xxxxx.deb
sudo dpkg -i linux-headers-xxxxx.deb

Nahraďte presnými názvami súborov deb, ktoré ste vytvorili. Potom reštartujeme a v ponuke uvidíme naše jadro. Ak máte všetko nabité podľa očakávania, myslím, že okamžite pocítite nárast výkonu. Ak však máte nainštalovanú napríklad kartu od nVidie, tam to s najväčšou pravdepodobnosťou skončí... Napríklad po spustení mojej verzie jadra som mal len čiernu obrazovku a nulové emócie...

Toto bolo opravené inštaláciou proprietárnych ovládačov od nVidie. Existujú dve možnosti ich inštalácie: pod novým jadrom (v tomto prípade bude grafický server fungovať iba pod vaším jadrom (odporúča sa, ak neplánujete pracovať v inom ako svojom vlastnom jadre) a pod niekoľkými vašimi existujúcimi jadrami (v tomto prípade sa systém spustí v novom jadre, ktoré ste vytvorili, aj v tom predchádzajúcom) Ale to je úplne iný príbeh ...



chyba: Obsah je chránený!!