Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]  (Přečteno 1167 krát)

NoWin

  • Host
Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
« kdy: 28 Prosince 2009, 17:25:01 »
Nazdar,

na fóru Debianu jsem našel krásnej a vcelku jednoduchej návod, kterak zkompilovat kernel, ale nějak se mi nedaří. Odtud 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?
« Poslední změna: 29 Prosince 2009, 00:36:46 od Roman Horník »

Martin - ViPEr*CZ*

Re: Chyba při kompilaci kernelu 2.6.32
« Odpověď #1 kdy: 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.
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

NoWin

  • Host
Re: Chyba při kompilaci kernelu 2.6.32
« Odpověď #2 kdy: 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

Martin - ViPEr*CZ*

Re: Chyba při kompilaci kernelu 2.6.32
« Odpověď #3 kdy: 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ě.
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

NoWin

  • Host
Re: Chyba při kompilaci kernelu 2.6.32
« Odpověď #4 kdy: 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 :)

Martin - ViPEr*CZ*

Re: Chyba při kompilaci kernelu 2.6.32
« Odpověď #5 kdy: 28 Prosince 2009, 19:00:24 »
Tak to jste asi jen použil špatně patch.... ;-)
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

NoWin

  • Host
Re: Chyba při kompilaci kernelu 2.6.32
« Odpověď #6 kdy: 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í :)
« Poslední změna: 28 Prosince 2009, 22:01:23 od Roman Horník »

NoWin

  • Host
Re: Chyba při kompilaci kernelu 2.6.32
« Odpověď #7 kdy: 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 :)
« Poslední změna: 29 Prosince 2009, 00:48:45 od Roman Horník »

Martin Kiklhorn

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Závislák
  • ******
  • Příspěvků: 4807
  • グーグル!ご存知ですか?
    • HEJ
Re: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
« Odpověď #8 kdy: 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/

//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
« Poslední změna: 29 Prosince 2009, 04:28:21 od kiklhorn »
Jsou ve vašem dotazu OPRAVDU VŠECHNY vám dostupné informace o problému?
Linux user since 2007-10-11, Registered #456007
Virtual
| Distribuce
~/slozka znamená /home/"vase jmeno"/slozka
6521 69DE 0F34 FCBC FB1D  DE76 360E 52B2 F71A B8E8

NoWin

  • Host
Re: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
« Odpověď #9 kdy: 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/

//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

Roman Vacho

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 6029
Re: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
« Odpověď #10 kdy: 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 :)
Vyřešená vlákna je vhodné uzavřít "Topic Solved" dole pod vláknem. Děkujeme.

NoWin

  • Host
Re: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
« Odpověď #11 kdy: 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 :)

Roman Vacho

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 6029
Re: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
« Odpověď #12 kdy: 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
Vyřešená vlákna je vhodné uzavřít "Topic Solved" dole pod vláknem. Děkujeme.

pivik

  • Host
Re: Chyba při kompilaci kernelu 2.6.32 [Vyřešeno]
« Odpověď #13 kdy: 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.

 

Provoz zaštiťuje spolek OpenAlt.