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

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ěď #15 kdy: 12. 02. 2009, 19:55:38 »
Kam ses nedostal?

Nebo spíše kam ses dostal?
Debian

Offline Erich Stark

  • Aktivní­ uživatel
  • ****
  • Příspěvků: 546
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #16 kdy: 12. 02. 2009, 20:37:12 »
Najprv mi neslo sa dostat do priecinku /usr/scr/linux potom som ho zmazal a vytvoril este raz..a neviem co vsetko treba nechat zapnute alebo vypnute je tam toho fakt dost..mozno aj kebyze je to po slovensky si nepomozem :-D
a inak som to skusal skompilovat a do /boot/grub/menu.lst som zapisal title (nazov kernelu) a cestu k nemu..pri bootovani ked som ho vybral ze nenaslo mi cestu
" The box said that I needed to have Windows XP or better ... so I installed Debian ."

Offline Boogey

  • Uživatel
  • ***
  • Příspěvků: 159
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #17 kdy: 12. 02. 2009, 20:41:07 »
Po kompilaci musis jeste s nejvetsi pravdepodobnosti vytvorit i prislusny initrd, a to prikazem: mkinitramfs -o /boot/initrd-2.6.X-nazev 2.6.X-nazev
Debian Squeeze 32bit, Kernel 2.6.26-2, (Server)
AMD Duron 700MHz@1Ghz, 640MB ram, GeForce 4 MX 64MB
Apache2, PHP5, Samba, ProFTPd, MySQL, KDE 4.2.2(na testovani)

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ěď #18 kdy: 13. 02. 2009, 23:27:29 »
Po kompilaci musis jeste s nejvetsi pravdepodobnosti vytvorit i prislusny initrd, a to prikazem: mkinitramfs -o /boot/initrd-2.6.X-nazev 2.6.X-nazev

To určitě ne. Kdyby postupoval návodu, který jsem publikoval, tak by to nepotřeboval (kompiluje se se zapnutým --initrd)

Erich má zatím ale problém se základy práce v konsoli, tak to bude muset ještě párkrát zkusit.
Debian

Offline Erich Stark

  • Aktivní­ uživatel
  • ****
  • Příspěvků: 546
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #19 kdy: 14. 02. 2009, 12:58:53 »
Po kompilaci musis jeste s nejvetsi pravdepodobnosti vytvorit i prislusny initrd, a to prikazem: mkinitramfs -o /boot/initrd-2.6.X-nazev 2.6.X-nazev

To určitě ne. Kdyby postupoval návodu, který jsem publikoval, tak by to nepotřeboval (kompiluje se se zapnutým --initrd)

Erich má zatím ale problém se základy práce v konsoli, tak to bude muset ještě párkrát zkusit.

holt mam smolu...Musim sa viac ucit..precitat co najviac podrobnych navodou..ako spravit vsetko za sebou, mozno u niekoho su medziriadky samozrejme ale ja to bohuzial neviem :)..staci mi jeden taky navod..spravim to raz,dva,tri krat a uz to pojde od ruky :)
" The box said that I needed to have Windows XP or better ... so I installed Debian ."

Offline Boogey

  • Uživatel
  • ***
  • Příspěvků: 159
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #20 kdy: 15. 02. 2009, 00:22:43 »
Neboj, to zvladns v pohode. Kuprikladu ja jsem vcera po docela dlouhym experimentovani dokazal nabootovat i bez initrd a pochopil, jak to funguje :D Je potreba si o tom jen neco precist nebo se poptat a taky venovat tomu nejakej cas. Postupne to pujde bez problemu.
Debian Squeeze 32bit, Kernel 2.6.26-2, (Server)
AMD Duron 700MHz@1Ghz, 640MB ram, GeForce 4 MX 64MB
Apache2, PHP5, Samba, ProFTPd, MySQL, KDE 4.2.2(na testovani)

Offline Erich Stark

  • Aktivní­ uživatel
  • ****
  • Příspěvků: 546
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #21 kdy: 15. 02. 2009, 11:15:07 »
Neboj, to zvladns v pohode. Kuprikladu ja jsem vcera po docela dlouhym experimentovani dokazal nabootovat i bez initrd a pochopil, jak to funguje :D Je potreba si o tom jen neco precist nebo se poptat a taky venovat tomu nejakej cas. Postupne to pujde bez problemu.

No sak o to ide :-D
Len najhorsie je pochopit niektore veci ci ich zaskrknut v configuracii jadra alebo nie..pravdaze co je to filesystem to viem ale tak vseobecne ostatne :-D
Pocul som ze sa to da aj tak nejak ze pouzijem old config teda ten ktory je aktualny pouzity v systeme a len si tam pridam support mojej wifi karty :)
Ale uz som videl aj viac navodov. napr jeden taky ze sa to skompilovalo a dalo tusim do /boot/... a dalsi taky ze som z toho vsetkeho mal len .deb balicek a to nainstaloval.Aky je medzi tym rozdiel? Asi by mi viac vyhovovalo ten deb balicek pretoze ten si zalohujem a az by sa stalo nieco zo systemom nemusim kompilovat znova ale ho len nainstalujem :)
" The box said that I needed to have Windows XP or better ... so I installed Debian ."

Offline Boogey

  • Uživatel
  • ***
  • Příspěvků: 159
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #22 kdy: 15. 02. 2009, 12:26:49 »
Muzu ti napsat postup, kterym to delam ja:

1) Stahnout jadro
Nejnovejsi vanilka:
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.tar.bz2

2) Rozbalit
Osvedcilo se mi do: /usr/src/
a tam by to melo vytvorit adresar linux-VERZE - tento adresar jiz obsahuje archiv

3) Vyuziti konfigurace aktualniho jadra
v /boot/ je soubor config-VERZE tak ten nakopiruj do rozbalenyho adresare s kernelem pod nazvem .config, cili bez cisla verze a s teckou na zacatku
pokud jedes presne podle navodu, tak: /usr/src/linux-VERZE/.config 

4) Nastaveni kernelu dle potreb:
spustit terminal, nastavit akrualni adresar na /usr/src/linux-VERZE
make menuconfig nebo make xconfig popripade pro gnome make gconfig - je jedno, co pouzije, funguje to obdobne

5) Kompilace kernelu
make -j 3
a cekat, cekat, cekat :D

6) Instalace kernelu do /boot
make install

7) Instalace modulu do /lib/modules/VERZE
make modules_install

8) Pokud pouzivas initrd, tak:
update-initramfs -c -k VERZE

9) Update grubu
update-grub

10) Restart a modlit se :D

Poznamky:
Pokud u menu x/gconfig bude nejaky problem, tak pouzij menuconfig a nebo www.google.cz ;)

Vsechny operace je treba delat jako root.

textem VERZE je mysleno napriklad: 2.6.28.5-mujkernel
Zalezi taky, jak jste to nastavili v configu.
« Poslední změna: 25. 03. 2009, 20:57:01 od Boogey »
Debian Squeeze 32bit, Kernel 2.6.26-2, (Server)
AMD Duron 700MHz@1Ghz, 640MB ram, GeForce 4 MX 64MB
Apache2, PHP5, Samba, ProFTPd, MySQL, KDE 4.2.2(na testovani)

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ěď #23 kdy: 15. 02. 2009, 21:48:16 »
Neboj, to zvladns v pohode. Kuprikladu ja jsem vcera po docela dlouhym experimentovani dokazal nabootovat i bez initrd a pochopil, jak to funguje :D Je potreba si o tom jen neco precist nebo se poptat a taky venovat tomu nejakej cas. Postupne to pujde bez problemu.

No sak o to ide :-D
Len najhorsie je pochopit niektore veci ci ich zaskrknut v configuracii jadra alebo nie..pravdaze co je to filesystem to viem ale tak vseobecne ostatne :-D
Pocul som ze sa to da aj tak nejak ze pouzijem old config teda ten ktory je aktualny pouzity v systeme a len si tam pridam support mojej wifi karty :)
Ale uz som videl aj viac navodov. napr jeden taky ze sa to skompilovalo a dalo tusim do /boot/... a dalsi taky ze som z toho vsetkeho mal len .deb balicek a to nainstaloval.Aky je medzi tym rozdiel? Asi by mi viac vyhovovalo ten deb balicek pretoze ten si zalohujem a az by sa stalo nieco zo systemom nemusim kompilovat znova ale ho len nainstalujem :)

:) když budeš postupovat podle návodu, který jsem publikoval, tak budeš mít i .config zkopírovaný, jak o tom píšeš...

Pokud se ti nelíbí můj návod (který funguje 100%), nebo návod od Boogeyho, tak zkus třeba tento:

http://forum.ubuntu.cz/index.php/topic,25304.0.html
Debian

Offline Petr

  • Začátečník
  • **
  • Příspěvků: 53
    • Zobrazit profil
    • Kulturistika, posilování
Re: Kompilace jádra ve zkratce
« Odpověď #24 kdy: 15. 02. 2009, 22:26:37 »
fakeroot make-kpkg --append-to-version "<-suffix>" --revision "<revision#>" --us --uc --initrd kernel_image kernel_headers

Nejsem v tom zatím nějak moc zběhlej a tento řádek mi není moc jasný, teda spíše "suffix". Díky za radu. :)
Nic není zadarmo a vše souvisí se vším.

Offline Erich Stark

  • Aktivní­ uživatel
  • ****
  • Příspěvků: 546
    • Zobrazit profil
Re: Kompilace jádra ve zkratce
« Odpověď #25 kdy: 16. 02. 2009, 16:30:57 »
fakeroot make-kpkg --append-to-version "<-suffix>" --revision "<revision#>" --us --uc --initrd kernel_image kernel_headers

Nejsem v tom zatím nějak moc zběhlej a tento řádek mi není moc jasný, teda spíše "suffix". Díky za radu. :)

ja som to zadal ako

Kód: [Vybrat]
sudo make-kpkg --initrd --stem linux --revision=1.0 kernel_image kernel_headers
A zatial sa mi to kompiluje  ::)


EDIT: Tak uspesne som nabehol do noveho kernelu ale neni som az tak spokojny ako boli moje ocakavania..je to evidentne pomalsie..tak rozmyslam ze ostanem na tom starom.
« Poslední změna: 16. 02. 2009, 18:07:56 od Erich Stark »
" The box said that I needed to have Windows XP or better ... so I installed 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ěď #26 kdy: 17. 02. 2009, 21:09:29 »
fakeroot make-kpkg --append-to-version "<-suffix>" --revision "<revision#>" --us --uc --initrd kernel_image kernel_headers

Nejsem v tom zatím nějak moc zběhlej a tento řádek mi není moc jasný, teda spíše "suffix". Díky za radu. :)
DOplním tedy v příkladu:

Kód: [Vybrat]
fakeroot make-kpkg --append-to-version -spox --revision 01 --us --uc --initrd kernel_image kernel_headers
pro bližší vysvětlení jednotlivých opšnů prosím koukni do
Kód: [Vybrat]
man make-kpkg
Debian

Offline Roman Horník

  • Hlavní moderátor
  • Aktivní­ uživatel
  • *****
  • Příspěvků: 1.327
    • Zobrazit profil
  • Jabber: roman.hornik@jabber.cz
Re: Kompilace jádra ve zkratce
« Odpověď #27 kdy: 28. 12. 2009, 15:17:50 »
Krásnej návod, ale nějak se mi to nepovedlo. Ze stejnýho serveru jsem stáhnul kernel 2.6.32 a na něj patch (bzcat /usr/src/patch-2.6.32.bz2 | patch -p1 -E -t), konfigurace se mi pravděpodobně povedla, ale během kompilace na mne vyskočila chyba, že ve dvou souborech jsou nějaký duplicitní definice, což se mi povedlo opravit, ale s další chybou si nevím rady:
Kód: [Vybrat]
  CC      kernel/trace/trace_output.o
kernel/trace/trace_output.c: In function ‘seq_print_userip_objs’:
kernel/trace/trace_output.c:416: error: ‘const struct userstack_entry’ has no member named ‘tgid’
kernel/trace/trace_output.c: In function ‘trace_print_lat_fmt’:
kernel/trace/trace_output.c:503: error: ‘struct trace_entry’ has no member named ‘lock_depth’
kernel/trace/trace_output.c:506: error: ‘struct trace_entry’ has no member named ‘lock_depth’
make[3]: *** [kernel/trace/trace_output.o] Error 1
make[2]: *** [kernel/trace] Error 2
make[1]: *** [kernel] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.32.666'
make: *** [debian/stamp/build/kernel] Error 2

trace_output.c, řádky 409-420 (jakási chyba na ř. 416):
Kód: [Vybrat]
if (trace_flags & TRACE_ITER_SYM_USEROBJ) {
struct task_struct *task;
/*
* we do the lookup on the thread group leader,
* since individual threads might have already quit!
*/
rcu_read_lock();
task = find_task_by_vpid(entry->tgid);
if (task)
mm = get_task_mm(task);
rcu_read_unlock();
}

Ten samej soubor, řádky 477-507 (jakási chyba na ř. 503, 506):
Kód: [Vybrat]
int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry)
{
int hardirq, softirq;
int ret;

hardirq = entry->flags & TRACE_FLAG_HARDIRQ;
softirq = entry->flags & TRACE_FLAG_SOFTIRQ;

if (!trace_seq_printf(s, "%c%c%c",
      (entry->flags & TRACE_FLAG_IRQS_OFF) ? 'd' :
(entry->flags & TRACE_FLAG_IRQS_NOSUPPORT) ?
  'X' : '.',
      (entry->flags & TRACE_FLAG_NEED_RESCHED) ?
'N' : '.',
      (hardirq && softirq) ? 'H' :
hardirq ? 'h' : softirq ? 's' : '.'))
return 0;

if (entry->preempt_count)
ret = trace_seq_printf(s, "%x", entry->preempt_count);
else
ret = trace_seq_putc(s, '.');

if (!ret)
return 0;

if (entry->lock_depth < 0)
return trace_seq_putc(s, '.');

return trace_seq_printf(s, "%d", entry->lock_depth);
}

Google nic relevantního neví, já se v céčku nevyznám, nesetkal se s tím někdo?
Debian Sid 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3

Offline Roman Horník

  • Hlavní moderátor
  • Aktivní­ uživatel
  • *****
  • Příspěvků: 1.327
    • Zobrazit profil
  • Jabber: roman.hornik@jabber.cz
Re: Kompilace jádra ve zkratce
« Odpověď #28 kdy: 28. 12. 2009, 18:58:40 »
Jo tak už to vypadá dobře... až na mrtě duplicitních definicí, ale s tím se po(p|s)eru ;)
Debian Sid 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3

Offline Ota Trkola

  • Administrátor
  • Aktivní­ uživatel
  • *****
  • Příspěvků: 1.261
    • Zobrazit profil
  • Jabber: otas.pe@jabbim.cz
Re: Kompilace jádra ve zkratce
« Odpověď #29 kdy: 30. 04. 2010, 17:52:07 »
Z kompilace kernelu jsem vyléčenej, několikrát jsem to zkoušel a ani jednou se mi to nepovedlo, jen jsem si nadělal chlívek, kterej sem musel odstraňovat.
Debian Gnome 64bit

Návod na Netinst instalaci