Kompilace kernelu

Zdravím,
přešel jsem na Fedoru z Gentoo (ale jsem skoro začátečník, gentoo jsem zkoušel jenom kvůli zkušenostem) a pokoušel jsem se standartní cestou (jak si pamatuju z gentoo) překompilovat kernel. Zjistil jsem, že zdrojové kódy mám umístěné v /usr/src/kernels/* (narozdíl od dosavadního /usr/src/linux) a to jádro 2.6.27-7, od vývojářů Fedory. Vesele jsem se tedy do tohoto adresáře přepnul, napsal make menuconfig a krásně jsem si kernel nastavil. Překvapením však bylo, že po napsání typického make jsem po dvou řádcích kódu dostal chybovou hlášku

CHK include/linux/version.h
CHK include/linux/utsrelease.h
make[1]: *** No rule to make target `missing-syscalls’. Stop.
make: *** [prepare0] Error 2

a kompilace skončila. Poté, co jsem trochu hledal jsem zjistil, že zdrojové kódy zde nejsou kompletní (?) a že zdrojové kódy kernelu mám yumnout. Yumnul jsem tedy všechno ohledně kernelu, co se dalo, nicméně chyba pokračovala. Stáhl jsem tedy vanilla kernel (ten šel zkompilovat bez problémů), nicméně mi na něm Fedora pak nejela (po tom trojbarevnym načítacím dialogu zůstala prostě černá obrazovka s blikajícím bílým kurzorem v levym horním rohu). Takže, za prvé, nevíte, jak mám zkompilovat Fedora kernel? A za druhé, nevíte, proč mi nejede vanilla kernel?

Myslim si ze vim oboji…:slight_smile:

  1. vetsina ke kompilaci je popsana v prirucce:
    http://wiki.fedora.cz/doku.php?id=navody:prirucka:jadro
    pokud tam je neco spatne tak dej vedet - podle me si nestahl skutecne zdrojove kody jadra (src.rpm) a lepsi by si mel sestavit ho pres rpmbuild,
    nez ciste make.

  2. vanilla jadro ti musi bootovat, problemu bude ale vicero - absence spravneho initrd bude na prvnim miste, dale to, ze pro start systemu pouzivas plymouth a modeset, ktery vubec v jadres nemusis mit atd.

http://fedoraproject.org/wiki/Docs/CustomKernel

To: covex

Tak, zkoušel jsem získat zdrojové kódy pomocí toho návodu, nicméně, rpmko se prostě nainstalovalo, nicméně přákaz “rpmbuild -bp --target=$(uname -m) /usr/src/redhat/SPECS/kernel.spec” nemohl být proveden, protože ta cesta prostě neexistuje - v /usr/src/kernels jsou složky s jednotlivejma verzema jader (stary instalovany 2.6.27-5 a novy 2.6.27-7) a v nich žádnej takovej soubor afaik není.

Tak, plymouth nemám, protože mám nvidii, správný initrd také (když jsem u vanilla kernelu dal make, oba soubory se tam zkopírovaly a dokonce se nastavil /boot/grub/menu.lst). Teď jsem ho zkoušel znova zapnout a píše kernel panic. A to jsem stary nastavení původního kernelu tak nějak importoval. Nonic, ještě se na to podívám, zatím díky.

Před příkazem rpmbuild -bp --target=$(uname -m) /usr/src/redhat/SPECS/kernel.spec
je potřeba vytvořit v cílovém adresáři (v tomto konkrétním případě /usr/src) požadovaný strom do kterého se zdrojové soubory jádra rozexpandují. To je možné pomocí příkazu rpmdev-setuptree. Tento krok není bohužel není zmíněn v naší wiki. Jinak výborná návod je na http://fedoraproject.org/wiki/Docs/CustomKernel.