Autor Téma: ▶ Kompilace jádra - podrobný návod (pro 2.6.x, 3.x, 4.x, 5.x) [Aktualizováno]  (Přečteno 51163 krát)

Offline Domi

  • Nováček
  • *
  • Příspěvků: 4
    • Zobrazit profil
Re: ▶ Kompilace kernelu- podrobnější návod
« Odpověď #45 kdy: 01. 10. 2010, 01:48:15 »
Odklikal, zkompiloval, nainstaloval.... A ejhle chybka (jak necekane   :D)

Kernel panic - not syncing: VFS: Unable to mount root fs.....

Tak kdo poradi, kde jsem udelal chybu? Kompiloval jsem celkem 3x. Poprve jsem to prolezl poradne, podruhe jsem to projel rychle a potreti vyhazel opravdu minimum.

Kdyz zadam: cat /boot/grub/menu.lst
...
title    Debian GNU/Linux, kernel 2.6.35.4-1
root     (hd0,0)
kernel   /boot/vmlinuz-2.6.35.4-1 root=/dev/sda1 ro quiet

a kdyz to porovnam s tim puvodnim, na kterem normalne bezim, tak tam chybi radek
initrd   /boot/initrd.img-2.6.26-2-amd64


reseni:
     mkinitramfs -o /boot/initrd.img-2.6.35.4-1 2.6.35.4-1
     update-grub

Offline Magog

  • Nováček
  • *
  • Příspěvků: 2
    • Zobrazit profil
Re: ▶ Kompilace kernelu- podrobnější návod
« Odpověď #46 kdy: 29. 10. 2010, 18:10:29 »
Pěkně děkuji za velice povedený návod. Už jedu na svém kernelu. Na druhý pokus funkční a menší, než ten tovární. A první pokus by byl asi taky funkční, ale ne o tolik menší.

Offline Ota Trkola

  • Administrátor
  • Aktivní­ uživatel
  • *****
  • Příspěvků: 1.279
    • Zobrazit profil
  • Jabber: otas.pe@jabbim.cz
Re: ▶ Kompilace kernelu- podrobnější návod
« Odpověď #47 kdy: 29. 10. 2010, 20:59:25 »
Tak jsem asi exotický úkaz, ale ani 2.6.36 mi nefunguje. Stále praděpodobně jakýsi problém s ovladačem GK. Nicméně tovární 2.6.36-trunk-686 z experimental mi jede, tak alespoň tak.
Debian Sid Gnome 64bit
Debian Buster Xfce 64bit


Návod na Netinst instalaci

Offline Xgamer

  • Začátečník
  • **
  • Příspěvků: 54
    • Zobrazit profil
Re:▶ Kompilace kernelu- podrobnější návod
« Odpověď #48 kdy: 03. 01. 2011, 21:28:27 »
Super návod :), vďaka nemu som sa naučil kompilovať kernel..:)

Chcem sa spýtať ešte čo je možne zakompilovať priamo do kernelu a čo ako moduly? Ide mi napr. o ovládače grafickej,sietovej karty. O wifi som sa dočital že je to lepšie kompilovať ako modul.
Scio me nihil scire.

Offline poky74

  • Začátečník
  • **
  • Příspěvků: 29
    • Zobrazit profil
  • Jabber: poky@poky.name
Re:▶ Kompilace kernelu- podrobnější návod
« Odpověď #49 kdy: 11. 01. 2011, 20:47:28 »
Tak dá se cokoli jakkoli, pokud tam je ta možnost. Ale platí že je lepší zakompilovávat přímo do jádra, avšak věci s kterými by mohly být problémy (například třeba ta wifi bluetooth atd..) můžou zamrznout a v tu chvíli je dobré mít je jako moduly, jelikož můžeš odmodprobnout a znovu modprobnout a tím se vyhnout restartu ;-)

Offline Drát

  • Nováček
  • *
  • Příspěvků: 15
    • Zobrazit profil
  • Jabber: tinker@jabber.cz
Re:▶ Kompilace kernelu- podrobnější návod
« Odpověď #50 kdy: 24. 06. 2011, 15:32:56 »
Nevim jak se mi to povedlo, stáhnu kernel, rozbalim (do svýho domovskýho adresáře), zkompiluju v pohodě.....ale chci ho zkompilovat znova s malou obměnou a skončim na chybě:

Kód: [Vybrat]
make[1]: *** [drivers] Error 2
make[1]: Leaving directory `/home/dreit/linux-2.6.39.2'
make: *** [debian/stamp/build/kernel] Error 2

Nakonec jsem smazal adresář, rozbalil tam kernel znova...a pořád nejde. Neporadí někdo jak to nakopat takovým způsobem, aby to fungovalo správně?
Stejná chyba se mi ukazovala i když jsem kompiloval podle jinačí postupu, jen s tim rozdílem, že tam se nepovedla ani první kompilace, tady aspoň ta první.


Pokrok:
Kód: [Vybrat]
====== making target debian/stamp/build/kernel [new prereqs: vars]======
This is kernel package version 12.036+nmu1.
The changelog says we are creating 2.6.39.2-1
However, I thought the version is 2.6.39.2
exit 1
make: *** [debian/stamp/build/kernel] Error 1
« Poslední změna: 24. 06. 2011, 15:35:43 od Drát »

Offline vojtam

  • Nováček
  • *
  • Příspěvků: 6
    • Zobrazit profil
Re:▶ Kompilace kernelu- podrobnější návod
« Odpověď #51 kdy: 24. 06. 2011, 15:53:24 »
Ahoj když jsem chtěl kompilovat znova s malou obměnou tak jsem většinou dopadnul úplně stejně nebo s chybou že soubory byly upravovány v budoucnu (čas byl OK).
Takže buď zkus make clean a nebo jsem to dělal tak, že jsem .config soubor vytáhnul adresář smazal, jádro znovu rozbalil nakopíroval .config a spustil make oldconfig a pak spustil kompilaci a jel jsem (pokud by to byla i stejná verze jádra je myslím ten make-clean zbytečný)...

Offline Drát

  • Nováček
  • *
  • Příspěvků: 15
    • Zobrazit profil
  • Jabber: tinker@jabber.cz
Re:▶ Kompilace kernelu- podrobnější návod
« Odpověď #52 kdy: 24. 06. 2011, 16:41:12 »
Něco s tim zatím bez úspěchu zkoušim

Kód: [Vybrat]
  CC [M]  fs/ext3/ioctl.o
  CC [M]  fs/ext3/namei.o
  CC [M]  fs/ext3/super.o
  CC [M]  fs/ext3/symlink.o
  CC [M]  fs/ext3/hash.o
In file included from include/linux/pagemap.h:7:0,
                 from include/linux/buffer_head.h:13,
                 from include/linux/jbd.h:27,
                 from fs/ext3/hash.c:13:
include/linux/mm.h:1243:1: internal compiler error: Neoprávněný přístup do paměti (SIGSEGV)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.
make[3]: *** [fs/ext3/hash.o] Error 1
make[2]: *** [fs/ext3] Error 2
make[1]: *** [fs] Error 2
make[1]: Leaving directory `/home/dreit/kernel/linux-2.6.39.2'
make: *** [debian/stamp/build/kernel] Error 2


Update:

Tak teď to zase háže něco jinýho
Kód: [Vybrat]
  CC      drivers/acpi/acpica/nsnames.o
  CC      drivers/acpi/acpica/nsutils.o
  CC      drivers/acpi/acpica/nsxfname.o
In file included from /home/dreit/kernel/linux-2.6.39.2/arch/x86/include/asm/apic.h:483:0,
                 from /home/dreit/kernel/linux-2.6.39.2/arch/x86/include/asm/smp.h:13,
                 from /home/dreit/kernel/linux-2.6.39.2/arch/x86/include/asm/mmzone_64.h:12,
                 from /home/dreit/kernel/linux-2.6.39.2/arch/x86/include/asm/mmzone.h:4,
                 from include/linux/mmzone.h:792,
                 from include/linux/gfp.h:4,
                 from include/linux/kmod.h:22,
                 from include/linux/module.h:13,
                 from include/acpi/platform/aclinux.h:58,
                 from include/acpi/platform/acenv.h:141,
                 from include/acpi/acpi.h:56,
                 from drivers/acpi/acpica/nsxfname.c:45:
/home/dreit/kernel/linux-2.6.39.2/arch/x86/include/asm/smp.h:1:0: internal compiler error: Neoprávněný přístup do paměti (SIGSEGV)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.
make[4]: *** [drivers/acpi/acpica/nsxfname.o] Error 1
make[3]: *** [drivers/acpi/acpica] Error 2
make[2]: *** [drivers/acpi] Error 2
make[1]: *** [drivers] Error 2
make[1]: Leaving directory `/home/dreit/kernel/linux-2.6.39.2'
make: *** [debian/stamp/build/kernel] Error 2

Chyba bude někde mezi klávesnicí a židlí, ale nějak nechápu co s tim. Nevýhoda softwaru je ta, že do něj nejde kopnout :D


Update2:

Takže to s tim přístupem do paměti dělá naprosto náhodně. Jestli se ale nepletu, tak ovladač od nVidie vyžaduje gcc 4.6  (taknějak to aspoň vyznělo)
« Poslední změna: 24. 06. 2011, 17:03:40 od Drát »

Offline vojtam

  • Nováček
  • *
  • Příspěvků: 6
    • Zobrazit profil
Re:▶ Kompilace kernelu- podrobnější návod
« Odpověď #53 kdy: 24. 06. 2011, 17:25:18 »
Ahoj není možné že je problém pod stolem (tedy v PC) neoprávněný přístup do paměti mi v životě ještě jádro nehodilo...
A pokud to dělá naprosto náhodně, je jistě něco špatně...
Nemůžeš zkusit zkompilovat jádro na jiném stroji?
A jenom pro info kompiluješ ho pomocí make-kpkg ??

Offline Drát

  • Nováček
  • *
  • Příspěvků: 15
    • Zobrazit profil
  • Jabber: tinker@jabber.cz
Re:▶ Kompilace kernelu- podrobnější návod
« Odpověď #54 kdy: 24. 06. 2011, 19:46:12 »
Tak pravda, hardwarově to asi nemám úplně OK, řešil jsem to tady a něco se tam asi opravdu šeredně podělalo.
Rozhodně disk (umřel) jsem vyměnil, RAM jsou v pořádku....a jinde snad už cache není, takže to vypadá opravdu na smrt CPU cache. Ono když Debian nepadá tak člověk zapomene že měl kdy problémy s HW.....dík moc za připomenutí, určitě to bude tím!  ;)
[nakonec jsem zjistil že deska pouštěla do CPU větší napětí než měla]

Zkusim to na jinačim stroji.

make-kpkg samozřejmě :)


btw - čistě teoreticky, když to vyhodí chybu a já to pustim znova, zkompiluje se část kde to spadlo znova, nebo ji to přeskočí a zůstane tam zkompilovaná špatně?

Takhle to dopadá když si sedne lama k Debianu, přiznávám to a kňučim v rohu (fakt jsem si na ty chyby cache moh vzpomenout).
« Poslední změna: 24. 06. 2011, 19:48:54 od Drát »

Offline vojtam

  • Nováček
  • *
  • Příspěvků: 6
    • Zobrazit profil
Re:▶ Kompilace kernelu- podrobnější návod
« Odpověď #55 kdy: 26. 06. 2011, 11:47:16 »
To nic, hlavně že jsme to vyřešili :)
Taky HW chyba je to poslední co by člověka napadlo.

Teoreticky když to začneš kompilovat znovu mělo by se to celé překompilovat (ale myslím že se to možná kompuluje od poslední úspěšně zkompilované části.

Pak dej vedět, jak to dopadlo...
Kdyžtak zbytek vyřešíme..

Offline Drát

  • Nováček
  • *
  • Příspěvků: 15
    • Zobrazit profil
  • Jabber: tinker@jabber.cz
Re:▶ Kompilace kernelu- podrobnější návod
« Odpověď #56 kdy: 28. 06. 2011, 23:41:54 »
U bráchy to funguje (zato mu nejdou jinačí věci ;D ), takže asi opravdu HW. Ale něco mě napadlo - nastavit cyklus co se bude opakovat dokud se v adresáři neobjeví balíčky s jádrem (jentak ze srandy jsem to zacyklil a sledoval, po chvíli a pár pípnutích PC speakeru při přerušení mi to opravdu vyplivlo balíčky...otázka je, jestli v nich nejsou chyby díky tomu přerušování).

Offline Ota Trkola

  • Administrátor
  • Aktivní­ uživatel
  • *****
  • Příspěvků: 1.279
    • Zobrazit profil
  • Jabber: otas.pe@jabbim.cz
Soudruzi, krapet to tady oživíme, když Roman celý návod zaktualizoval.

Mám dotaz. Zkompiloval jsem kernel 3.2.7 za použití distribučního konfiguráku s tím, že jsem vyhodil kernel debuging a virtualizaci. Vše proběhlo hladce, ale mám problém s kompilací wl modulu (broadcom-sta) pro Broadcom wifi. Po zadání # m-a a-i broadcom-sta to po chvíli ukončí chyba /usr/src/linux-headers-3.2.7-1/arch/x86/Makefile_32.cpu: Adresář nebo soubor neexistuje. Pokud by někdo věděl, jak tomu pomoci, ocenil bych to.
 
Debian Sid Gnome 64bit
Debian Buster Xfce 64bit


Návod na Netinst instalaci

Offline jiri

  • Nováček
  • *
  • Příspěvků: 1
    • Zobrazit profil
Zdravim, osobně se přikláním ke kompilaci pomocí make-kpkg --initrd --revision=2 --append-to-version=-mojejadro kernel_image
po tom, co jsem rozbalil kernel a z adresáře /boot/   zkopíroval "config" soubor do adresáře jádra, přejmenoval na ".config" spustil "make xconfig" a dal uložit. Toto fungovalo avšak s příchodem jádra řady 3.x musim vynechat volbu "lguest" (podle kompilátoru ve složce "Documentation" chybí nějaké soubory pro  "lguest") a teprve pote to funguje. Proto bych se rád zeptal, jestli o tom někdo neví něco víc. Např. jak to upravit, aby to šlo sestavit i s touto volbou. Předem děkuji Jirka

Offline vprint

  • Nováček
  • *
  • Příspěvků: 8
    • Zobrazit profil
Jestli můžu, chtěl bych poradit. Jsem takovej lama, ale linux mě pořád víc a víc vtahuje, nejvíc mě nad vodou drží překlad slova Error - jseš blb. Jinak bych už to dávno vzdal.
Chtěl bych si zkompilovat jádro, mám server na specifikovanou věc, a běží to na Atomu 525, deska Mount Washington, 32GB SSD, 2MBRAM
Jelikož vím, že v jádru je neskutečná hromada zbytečností, chtěl bych je nějak obrousit, a hlavně vyhodit cosi jako exim4, má to něco s mailama, ale ty tam nepotřebuju. Běží mě to jenom v řádku, řídím to - jestli se to tak dá říct a neřídí to naopak mě - přes SSH přístup v lokálce.
A teď co mě trápí.  Nevím, jak bych vrátil zpátky instalaci zkompilovaného jádra, pokud to vůbec jde a já to svedu. Mám blbou mánii, nedělat nic, když nevim jak z toho ven.