Autor Téma: Kompilace jádra ve zkratce  (Přečteno 26862 krát)

Offline Petr Slunský

  • Uživatel
  • ***
  • Příspěvků: 220
  • Linux user #485524
    • Zobrazit profil
  • Jabber: slunsky@njs.netlab.cz
Kompilace jádra ve zkratce
« kdy: 01. 02. 2009, 16:30:10 »
Ahoj, psali jste, abych sem vylepil návod na kompilaci jádra. Na netu je jich sice dost, ale budiž. Příklad používá jako vzor jádro 2.6.20. Upravte na aktuální jádro.

Edit:
Předpoklady pro kompilaci:
Kód: [Vybrat]
sudo aptitude install build-essential kernel-package libncurses5 libncurses5-dev cpp gcc fakeroot

Pro případ, že nepoužíváte "sudo", tak příkaz "aptitude install..." vyvolat jako superuživatel

Kompilace kernelu

1. stáhnout kernel a poslední patch (například níže, postupem času budou jistě novější)

Code:
wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2
wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-2.6.20.1.bz2

2. zkonfigurovat kernel


Nejdříve rozbalit do src adresáře
Code:
cd /usr/src
tar jxf /path/to/linux-2.6.20.tar.bz2


Aplikovat patch
mv linux-2.6.20/ linux-2.6.20.1
cd linux-2.6.20.1/

...na zkoušku
bzcat /path/to/patch-2.6.20.1.bz2 | patch -p1 --dry-run

... a pokud nejsou chyby, tak naostro
bzcat /path/to/patch-2.6.20.1.bz2 | patch -p1


zkopírovat aktuální .configuraci z běžícího kernelu
cp /boot/config-$(uname -r) .config

make menuconfig

... po zkonfigurování
fakeroot make-kpkg clean

fakeroot make-kpkg --append-to-version "<-suffix>" --revision "<revision#>" --us --uc --initrd kernel_image kernel_headers


a pak už jen naistalovat.
« Poslední změna: 09. 01. 2011, 23:12:37 od Petr Slunský »
Debian

Offline Erich Stark

  • Aktivní­ uživatel
  • ****
  • Příspěvků: 546
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #1 kdy: 01. 02. 2009, 17:09:02 »
Niekde som čítal že pred kompiláciou treba doinštalovať aj nejaké ďalšie balíky a knižnice, je to tak?
" The box said that I needed to have Windows XP or better ... so I installed Debian ."

Offline Ahmul

  • Začátečník
  • **
  • Příspěvků: 42
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #2 kdy: 02. 02. 2009, 09:37:09 »
Jaký je správný postup, pokud chci aplikovat nový patch? Doposud jsem to řešil smazáním celého zdrojáku a převedením situace na předchozí případ.


Offline Xgamer

  • Začátečník
  • **
  • Příspěvků: 54
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #3 kdy: 02. 02. 2009, 19:41:05 »
Ja mám pocit že treba nainštalovať baličky fakeroot build-essential a ešte dačo to si už nespominam:D
Scio me nihil scire.

Offline Jakub Lucký

  • Uživatel
  • ***
  • Příspěvků: 198
    • Zobrazit profil
    • Skautský oddíl CXL - Praha 4
Re: Kompilace jádra ve zkratce
« Odpověď #4 kdy: 03. 02. 2009, 11:55:41 »
Tady by mě zajímalo, jak si pak s celou věcí poradí module-assistant, protože s ním instaluju docela dost důležitých věcí
Developers, developers, developers, developers, developers!

Offline Petr Slunský

  • Uživatel
  • ***
  • Příspěvků: 220
  • Linux user #485524
    • Zobrazit profil
  • Jabber: slunsky@njs.netlab.cz
Re: Kompilace jádra ve zkratce
« Odpověď #5 kdy: 03. 02. 2009, 17:21:42 »
Niekde som čítal že pred kompiláciou treba doinštalovať aj nejaké ďalšie balíky a knižnice, je to tak?

Pro úspěch je třeba splnit předpoklady, tj. mít v systému nainstalováno:

Kód: [Vybrat]
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential
Debian

Offline Petr Slunský

  • Uživatel
  • ***
  • Příspěvků: 220
  • Linux user #485524
    • Zobrazit profil
  • Jabber: slunsky@njs.netlab.cz
Re: Kompilace jádra ve zkratce
« Odpověď #6 kdy: 03. 02. 2009, 17:26:02 »
Jaký je správný postup, pokud chci aplikovat nový patch? Doposud jsem to řešil smazáním celého zdrojáku a převedením situace na předchozí případ.



Můj názor je takový, že pokud je patch aplikovatelný proti stejnému zdroji, tak jej samozřejmě aplikovat jde i bez mazání a převodu na předchozí stav. Dělal jsem si tak tickless jádro s hpet a dalšími věcmi pomocí několika patchů.
Postup je vždy stejný, např. ten, co jsem popsal výše.
Debian

Offline Ahmul

  • Začátečník
  • **
  • Příspěvků: 42
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #7 kdy: 03. 02. 2009, 21:58:33 »
Citace
Můj názor je takový, že pokud je patch aplikovatelný proti stejnému zdroji, tak jej samozřejmě aplikovat jde i bez mazání a převodu na předchozí stav. Dělal jsem si tak tickless jádro s hpet a dalšími věcmi pomocí několika patchů.
Postup je vždy stejný, např. ten, co jsem popsal výše.

Myšlena byla spíše situace, kdy vyjde jádro, např. 2.6.28. Člověk nakonfiguruje, zkompiluje a beží na něm. Pak vyjde první oprava. Nikde se nic nemaže, aplikuje se patch, udělá se clean, zkompiluje a jede se. Pak vyjde druhá oprava a tady je problém, protože mám dojem, že ta je oproti původnímu stromu. Takže to řeším právě smazáním celého zdrojáku a převedením na předchozí problém, než se snažit revertovat předchozí opravu.

Offline Petr Slunský

  • Uživatel
  • ***
  • Příspěvků: 220
  • Linux user #485524
    • Zobrazit profil
  • Jabber: slunsky@njs.netlab.cz
Re: Kompilace jádra ve zkratce
« Odpověď #8 kdy: 04. 02. 2009, 18:27:39 »
patche jsou kumulativní. vyzkoušel bych dry-run a viděl bych jestli to prošlo. 2x provedená stejná změna může znamenat stejný výsledek, a nové změny se aplikují v pořádku.
Debian

Offline Ahmul

  • Začátečník
  • **
  • Příspěvků: 42
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #9 kdy: 04. 02. 2009, 18:47:03 »
Výňatek z README ve zdrojácích kernelu

Citace
94    Unlike patches for the 2.6.x kernels, patches for the 2.6.x.y kernels
95    (also known as the -stable kernels) are not incremental but instead apply
96    directly to the base 2.6.x kernel.

Ale jak se píše dále v dokumentaci, tak existují jak patche oproti základnímu stromu, tak inkrementální patche
alias
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/incr
místo
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/
Takže odteď alespoň vím, které patche si mám stahovat:)

Offline Petr Slunský

  • Uživatel
  • ***
  • Příspěvků: 220
  • Linux user #485524
    • Zobrazit profil
  • Jabber: slunsky@njs.netlab.cz
Re: Kompilace jádra ve zkratce
« Odpověď #10 kdy: 05. 02. 2009, 20:41:19 »
myslím, že je to to, co jsem psal. Patche nejsou přírůstkové (incremental) ale souhrnové (kumulativní) a aplikují se vždy proti základnímu stromu. Ale to jistě víte. :)
Debian

Offline Erich Stark

  • Aktivní­ uživatel
  • ****
  • Příspěvků: 546
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #11 kdy: 07. 02. 2009, 21:33:53 »
Inak nedalo by sa do jadra nejak zakompilovat hned aj ovladac na grafiku?
" The box said that I needed to have Windows XP or better ... so I installed Debian ."

Offline tom.i

  • Začátečník
  • **
  • Příspěvků: 39
    • Zobrazit profil
    • Tomíkův BLOG
Re: Kompilace jádra ve zkratce
« Odpověď #12 kdy: 08. 02. 2009, 09:47:59 »
Ja bych se chtel zeptat na jednu vec, kdyz si zkompiluji vanilku (2.6.28 napr.) kdyz do nej budu chtit pridat bezpecnostni aktualizace, ktere vychazeji, nebo dokazal by mi nekdo vysvetlit jak je to s bezpecnostnimi aktualizacemi a jejich implementacemi do vanila kernelu? Je to presne jak je tu napsano?
Diky.
HP 6715b, 2 GB RAM, TL-60 Turion64 X2, 2 GHz, ATI X1250, 15,4" 1680x1050, Debian Lenny 64bit, KDE 4.2

Offline Jakub Lucký

  • Uživatel
  • ***
  • Příspěvků: 198
    • Zobrazit profil
    • Skautský oddíl CXL - Praha 4
Re: Kompilace jádra ve zkratce
« Odpověď #13 kdy: 08. 02. 2009, 11:23:22 »
Ja bych se chtel zeptat na jednu vec, kdyz si zkompiluji vanilku (2.6.28 napr.) kdyz do nej budu chtit pridat bezpecnostni aktualizace, ktere vychazeji, nebo dokazal by mi nekdo vysvetlit jak je to s bezpecnostnimi aktualizacemi a jejich implementacemi do vanila kernelu? Je to presne jak je tu napsano?
Diky.

Takto nainstalovaný kernel si musíte aktualizovat sám... Tedy sledovat chyby a když se objeví, tak stáhnout patch, aplikovat, překompilovat, rebootovat
Developers, developers, developers, developers, developers!

Offline Erich Stark

  • Aktivní­ uživatel
  • ****
  • Příspěvků: 546
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #14 kdy: 12. 02. 2009, 14:40:58 »
Dnes som sa pokusal kompilovat kernel ale ani som sa tam nedostal..je to dost zlozite :(
" The box said that I needed to have Windows XP or better ... so I installed Debian ."