Tipy, triky, návody - pouze návody, nevkládat dotazy! > Správa, údržba a nastavení systému
Kompilace jádra ve zkratce
Erich Stark:
--- Citace: Petr 15. 02. 2009, 22:26:37 ---
--- Citace: Spox 01. 02. 2009, 16:30:10 ---fakeroot make-kpkg --append-to-version "<-suffix>" --revision "<revision#>" --us --uc --initrd kernel_image kernel_headers
--- Konce citace ---
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. :)
--- Konce citace ---
ja som to zadal ako
--- Kód: ---sudo make-kpkg --initrd --stem linux --revision=1.0 kernel_image kernel_headers
--- Konec kódu ---
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.
Petr Slunský:
--- Citace: Petr 15. 02. 2009, 22:26:37 ---
--- Citace: Spox 01. 02. 2009, 16:30:10 ---fakeroot make-kpkg --append-to-version "<-suffix>" --revision "<revision#>" --us --uc --initrd kernel_image kernel_headers
--- Konce citace ---
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. :)
--- Konce citace ---
DOplním tedy v příkladu:
--- Kód: ---fakeroot make-kpkg --append-to-version -spox --revision 01 --us --uc --initrd kernel_image kernel_headers
--- Konec kódu ---
pro bližší vysvětlení jednotlivých opšnů prosím koukni do
--- Kód: ---man make-kpkg
--- Konec kódu ---
Roman Horník:
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: --- 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
--- Konec kódu ---
trace_output.c, řádky 409-420 (jakási chyba na ř. 416):
--- Kód: --- 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();
}
--- Konec kódu ---
Ten samej soubor, řádky 477-507 (jakási chyba na ř. 503, 506):
--- Kód: ---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);
}
--- Konec kódu ---
Google nic relevantního neví, já se v céčku nevyznám, nesetkal se s tím někdo?
Roman Horník:
Jo tak už to vypadá dobře... až na mrtě duplicitních definicí, ale s tím se po(p|s)eru ;)
Ota Trkola:
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.
Navigace
[0] Seznam témat
[*] Předchozí strana
Přejít na plnou verzi