Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: NoWin 28 Prosince 2009, 17:25:01

Název: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
Přispěvatel: NoWin 28 Prosince 2009, 17:25:01
Nazdar,

na fóru Debianu (http://forum.debian-linux.cz/index.php/topic,66.0.html) jsem našel krásnej a vcelku jednoduchej návod, kterak zkompilovat kernel, ale nějak se mi nedaří. Odtud (http://ftp://ftp.kernel.org/pub/linux/kernel/v2.6/) jsem stáhnul kernel 2.6.32 a na něj patch (ale patchoval jsem trochu jinak, automatizovaně- bzcat /usr/src/patch-2.6.32.bz2 | patch -p1 -E -t), konfigurace se mi pravděpodobně povedla (RT SMP kernel s podporou pouze mýho HW), 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?
Název: Re: Chyba při kompilaci kernelu 2.6.32
Přispěvatel: Martin - ViPEr*CZ* 28 Prosince 2009, 17:33:59
Kernel nekomplikuju.... není důvod....ale co se týká chyby:

Citace
‘const struct userstack_entry’ has no member named ‘tgid’

ve struktuře userstack_entry není definovaný člen tgid.... to samé ty další struktury vykazují neznámé členy.
Název: Re: Chyba při kompilaci kernelu 2.6.32
Přispěvatel: NoWin 28 Prosince 2009, 17:57:46
Kernel nekomplikuju.... není důvod....ale co se týká chyby:

Citace
‘const struct userstack_entry’ has no member named ‘tgid’

ve struktuře userstack_entry není definovaný člen tgid.... to samé ty další struktury vykazují neznámé členy.
Díky, to jsem tak nějak pochopil, ale jak a kde to definovat? Céčko je pro mně španělská vesnice, já radši GNU Bash ;D
Kernel chci zkompilovat proto, aby byl co nejmenší, nechci tam mít zbytečnosti, jako ovladač pro Braillův terminál, různý specifický blbůstky pro noteknihy (mám stolní PC), bezdrát, PPP (mám to přes LAN), podporu pro archaický kusy železa, procesory, o kterých jsem v životě neslyšel, nebo už dávno vyšly z módy, disketový a páskový mechaniky...

Klidně bych sem hodil obsah dotyčných zdrojáků, ale když mají dohromady cca 3000 řádků ;D
Název: Re: Chyba při kompilaci kernelu 2.6.32
Přispěvatel: Martin - ViPEr*CZ* 28 Prosince 2009, 18:35:46
Tady co jsi to poslal tak nikde... chce to doplnit do definice té dané struktury... i když nevím co jsi kde upravoval, že ten zdroják je špatně.
Název: Re: Chyba při kompilaci kernelu 2.6.32
Přispěvatel: NoWin 28 Prosince 2009, 18:48:17
Tady co jsi to poslal tak nikde... chce to doplnit do definice té dané struktury... i když nevím co jsi kde upravoval, že ten zdroják je špatně.
Kromě smazání duplicitních definic jsem nic jinýho neupravoval, ALE opatchoval jsem to znovu, ovšem místo -t jsem použil -f a ono to funguje!

Akorát teď mažu duplicitní definice u dalších souborů, ale dokud je to jenom tohle, je to v pořádku :)
Název: Re: Chyba při kompilaci kernelu 2.6.32
Přispěvatel: Martin - ViPEr*CZ* 28 Prosince 2009, 19:00:24
Tak to jste asi jen použil špatně patch.... ;-)
Název: Re: Chyba při kompilaci kernelu 2.6.32
Přispěvatel: NoWin 28 Prosince 2009, 19:08:50
Tak to jste asi jen použil špatně patch.... ;-)
Je to možný, jsou i novější, ale zatím to zkouším s tímhle, protože si nejsem 100%-ně jistej, jestli budu moct na opatchovaný zdrojáky jádra nastrkat novější a novější patche a jestli můžu použít patche i pro 2.6.33. Ale to si ohmátnu, zatím je to jenom pokus, jestli jsem to nakonfiguroval dobře a jestli mi Debík na tohle jádro pojede ;)

Ale díky za spolupráci!

P.S.: Jo a Martine, prosím, žádný vykání :)
Název: Re: Chyba při kompilaci kernelu 2.6.32
Přispěvatel: NoWin 29 Prosince 2009, 00:36:20
Á, tak už jedu na kernel 2.6.32-666 ;D

Moje postřehy?

Negativní vlastnosti: musím ještě ladit. Nefunguje mi TV karta (ta mi ale taky předtím nešla, ale systém ji viděl), nemůžu připojit oddíl /dev/sda5, na němž mám /home (to nasere; prej kvůli tomu, že tam není podpora velkejch souborů, i když tam bylo psáno tuším něco o 2TiB), startx nějak nefunguje, musím potupně přes GDM

Pozitivní vlastnosti: v RAM zabere kernel cca o 16MiB místa, vmlinuz a initrd mají velikost sice o 200KiB menší, ale načítají se tak 2× rychlejc, vygenerovaný balíky image a headers mají dohromady 32MiB a systém se mi zdá bejt o trochu živější.

No nic, jdu laborovat :)
Název: Re: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
Přispěvatel: Martin Kiklhorn 29 Prosince 2009, 04:17:59
pro rychlý test jak nové jádro poběží je instaluji přes v Ubuntu vyzkoušené deb balíky z http://kernel.ubuntu.com/~kernel-ppa/mainline/ (http://kernel.ubuntu.com/~kernel-ppa/mainline/)

//edit: a pro návody "kterak kernel kompilovati sobě" ani nemusíte chodit daleko - http://forum.ubuntu.cz/index.php/topic,25304.0.html
a http://wiki.ubuntu.cz/Aktualizace%20kernelu
Název: Re: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
Přispěvatel: NoWin 29 Prosince 2009, 04:44:13
pro rychlý test jak nové jádro poběží je instaluji přes v Ubuntu vyzkoušené deb balíky z http://kernel.ubuntu.com/~kernel-ppa/mainline/ (http://kernel.ubuntu.com/~kernel-ppa/mainline/)

//edit: a pro návody "kterak kernel kompilovati sobě" ani nemusíte chodit daleko - http://forum.ubuntu.cz/index.php/topic,25304.0.html
a http://wiki.ubuntu.cz/Aktualizace%20kernelu
Díky, už se mi vaří třetí kernel, už v druhým jsem udělal pár bugfixů, vygenerovaný balíky měly 24.6MiB a o trochu se snížila spotřeba paměti. Ale zkusím i kvejkrův návod, taky vypadá pěkně.
Zatím jenom pokusuju, dokud mi nepřijde napájecí kabel na novej HDD, tam si udělám čerstvou instalaci Sida (tady to mám zabordelený) a jako dárek mu dám... kernel ručně vyřezanej ;D
Název: Re: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
Přispěvatel: Roman Vacho 29 Prosince 2009, 09:11:58
No nejhorší je, že těch parametrů kernelu je tolik, že i člověk znalý svého HW musí buď a nebo, nebo googlit :)
Název: Re: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
Přispěvatel: NoWin 29 Prosince 2009, 09:49:53
No nejhorší je, že těch parametrů kernelu je tolik, že i člověk znalý svého HW musí buď a nebo, nebo googlit :)
Ono toho zas není tolik, čekal jsem větší zlo :)
Název: Re: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
Přispěvatel: Roman Vacho 29 Prosince 2009, 13:12:19
No nejhorší je, že těch parametrů kernelu je tolik, že i člověk znalý svého HW musí buď a nebo, nebo googlit :)
Ono toho zas není tolik, čekal jsem větší zlo :)

Nj jenže já bych chtěl zná šecky ty ovladače a možnosti na 100% a štve mě, že to není možné :D
Název: Re: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
Přispěvatel: pivik 29 Prosince 2009, 14:16:59
A proč na sida nepoužiješ kernel 2.6.32 kterej tam je a funguje dobře? Já bych se do kompilace nepouštěl.